为k8s外部服务保留静态IP地址

时间:2019-03-18 12:54:45

标签: kubernetes google-kubernetes-engine

我想为k8s公开服务保留静态IP地址。 如果在公开k8s服务时没有记错,它将获得随机的公共IP地址。我经常重新部署我的应用程序,并且IP发生变化。 但是我想获得永久的公共IP地址。 我的任务是通过永久IP地址(或DNS名称)获取我的应用程序。

1 个答案:

答案 0 :(得分:4)

这是特定于云提供商的,但是从您问题的标签看来,您正在使用Google Cloud Platform的Kubernetes Engine(GKE)。我的回答是针对这种情况的。

摘自Setting up HTTP Load Balancing with Ingress教程:

gcloud compute addresses create web-static-ip --global

在您的Ingress清单中:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: basic-ingress
  annotations:
    kubernetes.io/ingress.global-static-ip-name: "web-static-ip"
spec:
  backend:
    serviceName: web
    servicePort: 8080

如果使用Service instead of Ingress,则可以执行类似的操作:

apiVersion: v1
kind: Service
metadata:
  name: helloweb
  labels:
    app: hello
spec:
  type: LoadBalancer
  loadBalancerIP: "web-static-ip"
  selector:
    app: hello
    tier: web
  ports:
  - port: 80
    targetPort: 8080