微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将nginx与Kubernetes(GKE)和Google HTTPS负载均衡器配合使用

我们利用Ingress创建HTTPS负载均衡器,直接转发到我们的(通常是nodejs)服务.但是,最近我们希望在Google负载均衡器不提供的nodejs前面更多地控制流量.

>标准化的自定义错误页面
>标准重写规则(例如将http重定向到https)
>从负载均衡器运行状况检查中解除pod readyinessProbes(因此,当没有健康的pod时,我们仍然可以提供自定义错误页面).

我们在堆栈的其他部分使用Nginx,所以这似乎是一个不错的选择,我已经看到了几个Nginx用于Kubernetes前端服务的例子,通常是两种配置中的一种.

>每个pod中的Nginx容器直接将流量转发到localhost上的应用程序.
>一个单独的Nginx部署&服务,独立扩展并将流量转发到适当的Kubernetes服务.

每种方法的优缺点是什么?如何确定哪种方法最适合我们的用例?

解决方法:

vincent H之后,我建议将Google HTTPS Load Balancer流水线化为Nginx入口控制器.

正如您所提到的,这可以独立扩展;有它自己的健康检查;并且您可以标准化您的错误页面.

我们通过使用单个kubernetes.io/ingress.class:“gce”入口对象来实现这一目标,该对象具有我们的Nginx入口控制器的认后端.我们所有其他入口对象都使用kubernetes.io/ingress.class注释:“Nginx”.

我们使用此处记录的控制器:https://github.com/kubernetes/ingress/tree/master/controllers/nginx.使用custom /etc/nginx/template/nginx.tmpl可以完全控制入口.

For complete transparency, we haven’t (yet) setup custom error pages in the Nginx controller, however the 07002 appears straight forward.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐