我有一个 GKE 集群,其中运行着nginx-ingress
来自 Kubernetes 社区的控制器(通过 Helm)。我为其设置了一个预先预留的区域 IP,如下所示:
helm install stable/nginx-ingress \
--set controller.service.loadBalancerIP=my.reserved.regional.ip
然后我添加了一些带有kubernetes.io/ingress.class: "nginx"
注释的 Ingress 资源(没有其他内容),并将它们指向集群中的无头服务(a type: ClusterIP
)。
这工作正常,我可以通过负载均衡器 IP 访问基于 vhost 的入口。
不过,我很疑惑为什么Ingress资源也分配了一个外部IP:
==> v1beta1/Ingress
NAME HOSTS ADDRESS PORTS AGE
ingress-admin admin.my-domain.com 35.195.255.71 80 24m
ingress-api api.my-domain.com 35.195.255.71 80 24m
这是正常的吗?IP 响应 ping 但不提供 HTTP(我的服务提供)。我需要对 Ingress 资源做些什么来避免这种情况?
答案1
欢迎在 StackExchange 上关注 @Achton。
为了使 Ingress 资源中的保留静态外部 IP 地址与分配给 Ingress Controller 的 LB 服务的 IP 地址相同,在使用 helm chart 安装 nginx-ingress controller 时,应该再设置一个配置参数,即:
--set controller.publishService.enabled=true
如 NGINX Ingress Controller 文档中所述这里