我想为我的k8s暴露服务保留静态IP地址。如果我在暴露k8s服务时没有弄错,它会获得随机的公共IP地址。我经常重新部署我的应用程序并更改IP。但我希望得到永久的公共IP地址。我的任务是通过永久IP地址(或DNS名称)获取我的应用程序。
这是特定于云提供商的,但是根据您的问题标记,您似乎正在使用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