在GKE托管Kubernetes集群中创建Ingress是否自动生成LoadBalancer Service?
GKE中Ingress与LoadBalancer Service的关系说明
核心要看你用的Ingress Controller类型,你的示例里指定了nginx作为ingressClassName,对应NGINX Ingress Controller,和GKE原生Ingress的逻辑完全不同:
针对你示例中的NGINX Ingress Controller:
它不会自动创建Kubernetes LoadBalancer Service。你得手动给NGINX Ingress Controller的Pod部署一个LoadBalancer类型的Service,这样外部公网流量才能通过GCP提供的负载均衡器打到NGINX Ingress Controller上,再由它根据Ingress规则转发到后端的path1、path2服务。没有这个LoadBalancer Service,你的Ingress规则就算配置好了,公网也访问不到。如果用GKE原生Ingress Controller(不指定ingressClassName或指定
gce类):
这种场景下,GKE不会创建Kubernetes LoadBalancer Service,而是直接在GCP层面创建Cloud应用负载均衡器(ALB),自动完成负载均衡器和集群内后端服务的关联配置,不需要你额外手动创建LoadBalancer Service。
你的示例Ingress配置如下:
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: mcu-all annotations: nginx.ingress.kubernetes.io/rewrite-target: / spec: ingressClassName: nginx rules: - host: mcu.com http: paths: - path: /path1 pathType: Prefix backend: service: name: path1 port: number: 8080 - path: /path2 pathType: Prefix backend: service: name: path2 port: number: 8080
内容的提问来源于stack exchange,提问作者Brian K
相关产品推荐
相关产品推荐

