GKE入口:https://cloud.google.com/kubernetes-engine/docs/concepts/ingress
Nginx入口:https://kubernetes.github.io/ingress-nginx/
为什么要使用GKE进入
GKE Ingress可以与Google的托管SSL证书一起使用。这些证书部署在负载均衡器的边缘服务器中,这导致TTFB(到达第一个字节的时间)非常低
GKE Ingress有什么问题
HTTP /域路由是使用非常昂贵的“转发规则”在负载均衡器中完成的。每条规则的费用约为7.2美元。每个域需要一个规则。
为什么要使用Nginx Ingress
Nginx Ingress还创建(TCP / UP)负载平衡器,在这里我们可以使用入口控制器指定HTTP /域的路由。由于路由是在集群内部完成的,因此将域添加到规则中不会产生任何额外费用
Nginx Ingress有什么问题
要启用SSL,我们可以使用cert-manager。但是如上所述,Google的托管证书在边缘服务器中部署证书,这导致非常低的延迟
我的问题
是否可以同时使用它们?这样HTTPS会首先请求命中GKE入口,该入口将终止SSL并将流量路由到Nginx入口,该流量会将其路由到相应的Pod
答案 0 :(得分:1)
无法将Ingress
指向另一个Ingress
。此外,在您的特定情况下,也无法将GCE ingress class
指向Nginx,因为它relies in an HTTP(S) Load Balancer(只能具有GCE实例/ instances groups(基本上是GKE中的节点池)),或将GCS buckets设为backends。
如果要使用GKE部署Nginx入口,它将启动Network Load Balancer,这对于HTTP(S)负载均衡器而言不是有效的后端。
因此无法通过Ingress
或GCP基础架构功能来实现。但是,如果需要先击GCE ingress class
,然后再使用Nginx管理进一步的路由,则可能要考虑让Nginx作为Kubernetes Service / Deployment来管理传入的流量一次在群集网络内。
您可以创建ClusterIP服务,以使用本地本地hostnames重定向到群集中的其他服务/应用程序来内部访问Nginx部署并从那里进行访问。