-1

我有一个关于在 hostNetwork 中使用 LoadBalancer 服务的问题

如果我们设置 hostNetwork: true,那么 Pod 将绑定到主机网络 - 外部服务连接到该网络。如果我们只需要一个运行的 pod 实例——那么我相信我们不需要 LoadBalancer 服务来让外部服务连接到 pod。我在这里看不到任何负载平衡器服务的用例,或者我缺少什么?

4

1 回答 1

0

hostNetwork=true 不是在集群外公开 pod 的推荐方法。它有一些限制:

  1. 同一端口上的特定节点上只能运行 1 个 pod 实例
  2. 您必须使用 nodeIP 来访问 pod,但是,节点 IP 可以更改。
  3. 如果 pod 失败,k8s 调度程序可能会在不同的节点上生成它。

在集群外部公开 pod 的推荐方法是通过 Kubernetes 服务控制器。无论 Service.spec.type 属性如何,所有服务控制器都充当负载平衡器(它们将平衡所有“就绪”pod 的流量)。Service.spec.type 属性可以是以下之一:

ClusterIP、NodePort、LoadBalancer、ExternalName

LoadBalancer 类型意味着 k8s 将使用云提供商 LoadBalancer 将服务暴露在集群之外(例如,如果 k8s 集群在 AWS 上运行,则为 AWS Elastic Load balancer)。

LoadBalancer:使用云提供商的负载均衡器向外部公开服务。自动创建外部负载均衡器路由到的 NodePort 和 ClusterIP 服务。

更多关于 k8s 服务类型

于 2019-07-16T16:53:24.767 回答