为什么要为 Ingress 资源分配外部 IP?

为什么要为 Ingress 资源分配外部 IP?

我有一个 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 文档中所述这里

相关内容