如何将GKE入口与Nginx入口一起使用? [英] How to use GKE Ingress along with Nginx Ingress?
问题描述
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屋!