何时使用 NodePort、ClusterIP、LoadBalancer、Headless 作为 Ingress 后端?

x30*_*00n 2 kubernetes kubernetes-service

以下示例将向外部公开服务。那么为什么在这种情况下被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
Run Code Online (Sandbox Code Playgroud)

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

小智 5

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

集群 IP 是默认的服务类型。它在集群内部 IP 上公开服务,并使其只能在集群内部使用。

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

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

点击此链接可获取有关不同服务类型的更多信息。

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

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