在我们的 Google Cloud(由 kubernetes 支持)的多个项目、工作负载和服务(负载均衡器)配置中,我们专门配置了负载均衡器,但配置似乎发生了变化。
我们专门将节点添加到我们的负载均衡器中,一段时间后,我们所有的节点(来自不同的池)最终都连接到全部我们的负载均衡器。在它们被神奇地添加回负载均衡器后,我们(再次)删除它们,然后过了一段时间,它们又全部回来了。
我意识到有很多缺失的实施信息,但希望有一些众所周知的模式,有人认为我们可能没有遵循。我会尽力发布配置详细信息。
答案1
当您在 Google Cloud 上使用 Kubernetes 和 手动创建的负载均衡器时Services
,type: NodePort
它与您用于服务的负载均衡器几乎相同type: Load Balancer
,但在第二种情况下,LB 由 Kubernetes 创建和管理,您不需要关心它。
由于Service
类型NodePort
为绑定地址,因此应将它们作为后端添加到 LB。检查文档,路径“Proxy-mode: iptables”。也许在您的情形下,Kubernetes 尝试管理它并将您的所有节点添加到 LoadBalancers,因为它们处理对其服务的请求。实际上,我还没有看到手动创建 LoadBalancers 并指向 Kubernetes 的安装。
在 Google Cloud 上,我强烈建议你使用入口(基于 Google Load Balancer 或 Nginx)或带有 的服务type: Load Balancer
,如果您不需要自定义路由。
你可以像这样实现它(对于 Nginx Ingress):
Nginx Ingress Controller
使用服务进行部署type: LoadBalancer
。它将为您创建LoadBalancer
所有流量的入口点。Service
使用部署您的应用程序type: ClusterIP
。- 创建一个入口为您的应用程序创建对象
Service
并在其中写入所有路由规则。