Kubernetes上的NGINX负载平衡

时间:2018-11-06 17:52:38

标签: nginx kubernetes google-cloud-platform

我在Kubernetes中运行了一些服务。我需要在它们前面安装NGINX,以便根据URL重定向流量,处理SSL加密和负载平衡。

在该情况下,有一个有效的nginx.conf。我所缺少的是在gcloud上建立架构的正确方法。

使用nginx启动StatefulSet并让Loadbalancing Service公开NGINX是否正确?我是否理解正确,gcloud LB会将已配置的端口(例如80 + 443)传递给我的NGINX服务,在那里我可以处理其余的并将流量转发到后端服务?

1 个答案:

答案 0 :(得分:1)

您真的不需要StatefulSetDeployment就可以了,因为nginx已经由gcloud TCP负载均衡器进行了管理,如果您的某个nginx Pod出于某种原因停在了gcloud下方负载平衡器不会将流量转发给它。由于您已经具有gcloud负载均衡器,因此必须使用NodePort Service类型,并且必须将gcloud负载均衡器指向该特定端口上K8s群集上的所有节点。

请注意,您的nginx.conf必须知道如何路由到K8s群集内部的所有服务。我建议您设置一个nginx ingress controller,基本上可以通过Ingress资源为您管理nginx.conf,也可以将其公开为LoadBalancer服务类型。