为什么GKE会为我创建的每个入口提供不同的IP?

时间:2018-05-11 14:11:22

标签: kubernetes load-balancing google-kubernetes-engine kubernetes-ingress

我在我的GKE上使用多个ingress资源,比如我在不同的命名空间中有2个入口。我创建了入口资源,如下面的yaml所示。使用下面的yaml中使用的注释,我清楚地提到我正在使用GKE附带的GCE控制器(https://github.com/kubernetes/ingress-gce)。但每次我创建一个入口我都会获得不同的IP,例如有时我得到133.133.133。 133 ,有时我得到133.133.133。 134 即可。它只在这两个IP之间交替(由于配额限制,它可能只在两个IP之间)。当我只想保留一个IP并仅在此IP上负载均衡/终止多个应用程序时,这是一个问题。

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    kubernetes.io/ingress.class: gce
  name: http-ingress
spec:
  backend:
    serviceName: http-svc
    servicePort: 80

1 个答案:

答案 0 :(得分:1)

在您的Ingress资源中,您可以指定您需要Load Balancer以使用具有kubernetes.io/ingress.global-static-ip-name注释的特定IP地址,如下所示:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    kubernetes.io/ingress.class: gce
    kubernetes.io/ingress.global-static-ip-name: static-ip-name
  name: http-ingress
spec:
  backend:
    serviceName: http-svc
    servicePort: 80

您需要首先使用gcloud工具创建全局静态IP。请参见步骤2(b):https://cloud.google.com/kubernetes-engine/docs/tutorials/configuring-domain-name-static-ip