【问题标题】:When to use NodePort, ClusterIP, LoadBalancer, Headless as backend to Ingress?何时使用 NodePort、ClusterIP、LoadBalancer、Headless 作为 Ingress 的后端?
【发布时间】:2021-12-16 01:19:43
【问题描述】:

以下示例将在外部公开服务。那么为什么在这种情况下允许NodePort/LB,这不是多余的吗?

  rules:
  - host: lab.example.com
    http:
      paths:
      - path: /service-root
        backend:
          serviceName: clusterip-svc
          servicePort: 8080
      - path: /service-one
        backend:
          serviceName: nodeport-svc
          servicePort: 8080
      - path: /service-two
        backend:
          serviceName: headless-svc
          servicePort: 8080

使用NodePortClusterIPLoadBalancerHeadless 作为 Ingress 的后端有什么特别的优势吗?

【问题讨论】:

    标签: kubernetes kubernetes-service


    【解决方案1】:

    那么为什么在这种情况下允许使用 NodePort/LB,那不是吗? 多余的?

    大多数情况下没有人这样做,因为每个人都管理并保持入口作为集群的单一入口点。在 ingress 之后,大部分 ClusterIP 服务仍将运行,这取决于您要如何设置它。

    使用 NodePort、ClusterIP、 LoadBalancer 或 Headless 作为 Ingress 的后端?

    我不知道有什么好处,因为每种类型都有自己的好处。如果您提供不检查任何类型的服务,则 ingress 将转发流量。

    节点端口,负载均衡器可用于特定要求。

    【讨论】:

      【解决方案2】:

      服务是一种定义 Pod 逻辑集和访问它们的策略的方法。 Pod 是临时资源,因此无论其 IP 地址如何,服务都可以连接到它们。他们通常使用选择器来做到这一点。 Kubernetes 中有不同类型的服务,这些是主要区别。

      集群 IP 是一种默认的服务类型。它在集群内部 IP 上公开 Service,并使其仅在集群内部可用。

      NodePort 在每个节点的 IP 上的静态端口上公开服务。此选项还创建 ClusterIP 服务,NodePort 路由到该服务。

      LoadBalancer 更进一步,使用云提供商的负载平衡器将服务公开到外部。 NodePort 和 ClusterIP 资源是自动创建的。

      关注this link以获取有关不同服务类型的更多信息。

      还有无头服务。当您不需要负载平衡和单个服务 IP 时,您将使用这些。您可以按照文档中的this 部分进行进一步说明。

      回答您的问题 - 这取决于您的用例,您可能会发现使用这些服务的不同优势。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-03-14
        • 1970-01-01
        • 1970-01-01
        • 2021-05-02
        • 2018-02-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多