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