【发布时间】:2019-01-13 08:47:16
【问题描述】:
我正在尝试在我的 GKE 集群中设置 nginx 入口控制器,我想使用静态全局 IP 地址,但我正在努力弄清楚如何使用。
经过大量研究,大多数指南/stackoverflow/博客只是说“在您的入口资源上使用kubernetes.io/ingress.global-static-ip-name 注释”,但这并没有做任何事情。
以下是我的 Ingress 资源示例
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: my-ingress
namespace: my-namespace
annotations:
kubernetes.io/tls-acme: "true"
kubernetes.io/ingress.class: "nginx"
kubernetes.io/ingress.allow-http: "false"
nginx.org/websocket-services: "ws-svc"
kubernetes.io/ingress.global-static-ip-name: my-global-gce-ip
spec:
tls:
- secretName: my-secret
hosts:
- mysite.com
rules:
- host: mysite.com
http:
paths:
- path: /
backend:
serviceName: web
servicePort: 80
服务总是得到一个临时 IP 地址,每当我重新创建控制器时它就会被丢弃。 我怀疑这里的问题是注解仅适用于 GCE 类型的 Ingress,而不适用于 nginx(即使没有说明)
接下来,我尝试在我的入口资源中手动设置 IP,如 guide 所示,但是当我查看创建的服务时,外部 IP 地址仅显示为 pending,一些 github 问题似乎是由于事实上,它是一个全球性而非区域性 IP。
考虑到这一切,有没有办法使用 nginx 入口控制器在 GKE 集群上拥有静态 global ip?
【问题讨论】:
-
你是对的,设置 kubernetes.io/ingress.global-static-ip-name 注解只适用于 GCE ingress。根据代码,似乎 nginx 入口控制器不支持,可以设置静态 IP 地址。我已经要求 Kubernetes 工程师检查尽可能多的功能请求。
-
谢谢@Mohibul。这将有助于在文档中明确它是特定于 GCE 的,首先。我希望尽快找到使用静态 IP 和 nginx 入口控制器的解决方案
-
我了解到 GKE 网络团队不支持或不使用 ingress-nginx。您对 ingress-nginx 的任何功能请求都应该在他们的 Github 存储库中提交。请在此处打开功能请求[1]。 [1]:github.com/kubernetes/ingress-nginx/issues
标签: kubernetes-ingress google-kubernetes-engine static-ip-address