如何将GKE入口与Nginx入口一起使用? [英] How to use GKE Ingress along with Nginx Ingress?

查看:13
本文介绍了如何将GKE入口与Nginx入口一起使用?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

GKE入口:https://cloud.google.com/kubernetes-engine/docs/concepts/ingress

Nginx入口:https://kubernetes.github.io/ingress-nginx/

为什么选择GKE入口

GKE Inress可以与Google的托管SSL证书一起使用。这些证书部署在负载均衡器的边缘服务器中,导致TTFB(到第一个字节的时间)非常低

GKE Inress出了什么问题

HTTP/域路由是在负载均衡器中使用转发规则完成的,这是非常昂贵的。每条规则的费用约为7.2美元。每个域都需要一条规则。

为什么选择Nginx Inress

Nginx Inress还创建(TCP/UP)负载均衡器,我们可以在其中使用入口控制器指定HTTP/域的路由。由于路由是在群集内完成的,因此将域添加到规则中不会产生额外成本

Nginx Inress出了什么问题

要启用SSL,我们可以使用cert-Manager。但正如我上面提到的,Google的托管证书在边缘服务器中部署证书,这导致了非常低的延迟

我的问题

可以同时使用这两个吗?因此HTTPS请求首先命中GKE入口,GKE入口将终止SSL并将流量路由到Nginx入口,后者将其路由到相应Pod

推荐答案

无法将一个Ingress指向另一个Ingress。此外,在您的特定情况下,也不可能将GCE ingress class指向nginx,因为它relies in an HTTP(S) Load Balancer只能有GCE实例/instances groups(基本上是GKE中的节点池),或者GCS bucketsASbackends

如果要使用GKE部署Nginx入口,将启动一个Network Load Balancer,该后端不是HTTP(S)负载均衡器的有效后端。

通过Ingress和GCP基础设施功能都不可能做到这一点。但是,如果您需要先命中GCE ingress class,然后使用Nginx管理进一步的路由,您可能需要考虑让Nginx作为KubernetesService/Deployment在进入集群网络后管理传入流量。

您可以创建ClusterIP服务用于内部访问您的Nginx部署,并从那里使用群集本地hostnames重定向到群集内的其他服务/应用程序。

这篇关于如何将GKE入口与Nginx入口一起使用?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆