在 Google 云平台上将 HTTP 负载均衡器与 Kubernetes 结合使用

Using HTTP Load Balancer with Kubernetes on Google Cloud Platform

我已经按照 GKE tutorial 使用 beta Ingress 类型创建 HTTP 负载平衡器,并且在使用 nginx 图像时工作正常。我的问题是关于为什么 Ingress 是必要的。

我可以创建一个容器引擎集群,然后创建一个使用 Kubernetes 创建的实例组作为服务后端的 HTTP 负载均衡器,一切似乎都运行良好。 当使用 Kubernetes 仅部分过程似乎工作正常时,为什么我要经历所有使用 Ingress 的麻烦?

虽然您可以自己创建 "unmanaged" HTTP 负载均衡器,但是当您添加新部署(pods 服务)并希望将流量路由到它们时会发生什么(可能使用 URL 地图)?

当你的一个服务因为某种原因宕机而新服务分配另一个节点端口时会发生什么?

Ingress 的伟大之处在于它为您管理 HTTP 负载均衡器,同时跟踪 Kubernetes 的资源并相应地更新 HTTP 负载均衡器。

入口对象有两个主要用途:

  1. 用于可重复部署比自己配置 HTTP 平衡器更简单,因为您可以编写一个简短的声明性 yaml 文件来描述您希望平衡的样子,而不是 7 gcloud 的脚本命令。

  2. 它(至少在某种程度上)可以跨云提供商移植。

如果您 运行 在 GKE 上并且不关心第二个,您可以权衡入口对象和声明性语法的易用性与通过配置获得的额外自定义手动负载平衡器。