在GKE上使用nginx入口控制器时,负载均衡器的不健康节点

时间:2018-01-10 05:43:18

标签: nginx kubernetes google-kubernetes-engine kubernetes-health-check gke-networking

我已经在this guide之后设置了nginx入口控制器。

入口运行良好,我也可以访问defaultbackend服务和我自己的服务。

但在审核在Google云端控制台中创建的对象时,尤其是自动创建的负载均衡器对象时,我注意到其他节点的运行状况检查失败: enter image description here

这是因为入口控制器进程只在一个节点上运行,所以它是唯一通过运行状况检查的进程吗? 如何让其他节点通过?

1 个答案:

答案 0 :(得分:8)

你的假设是正确的。健康节点确实是运行nginx pod的节点。

您使用的指南使用externalTrafficPolicy: Local配置服务。(https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/provider/gce-gke/service.yaml

该策略将kube-proxy配置为永远不会将服务的流量路由到其到达的节点。因此,当负载均衡器流量到达没有nginx pod的节点时,运行状况检查失败,负载均衡器停止向它们发送流量。

此配置的优点是可以避免额外的网络跃点到达nginx pod。如果您需要更多节点来处理流量,您可以确保在那里运行nginx pod。如果您不介意额外的网络跃点,您也可以更改externalTrafficPolicy