简体   繁体   中英

How can I create Kubernetes load balancer with an ephemeral IP in GKE?

How can I configure a LoadBalancer to retrieve a ephemeral rather than static IP?

I need this so I don't have to WAIT FOR GOOGLE TO INCREASE THE QUOTA FROM 1 IP ADDRRESS... (It's been a long day...)

  Normal   EnsuringLoadBalancer        3m (x7 over 8m)  service-controller  Ensuring load balancer
  Warning  CreatingLoadBalancerFailed  3m (x7 over 8m)  service-controller  Error creating load balancer (will retry): failed to ensure load balancer for service default/subzero-react: failed to ensure a static IP for load balancer (*****************(default/subzero-react)): error creating gce static IP address: googleapi: Error 403: Quota 'STATIC_ADDRESSES' exceeded. Limit: 1.0 in region us-central1., quotaExceeded

Upon removing the loadBalancerIp field and recreating the service, it still remains in pending.

This is the output of kubectl get service ****** -o yaml :

kubectl get service **** -o yaml
apiVersion: v1
kind: Service
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"labels":{"app":"api"},"name":"subzero-react","namespace":"default"},"spec":{"ports":[{"name":"http","port":80}],"selector":{"app":"initial-pp3subzero"},"type":"LoadBalancer"}}
  creationTimestamp: 2018-11-19T18:04:24Z
  labels:
    app: api
  name: *****************
  namespace: default
  resourceVersion: "584211"
  selfLink: /api/v1/namespaces/default/services/**********
  uid: 8c140d40-ec25-11e8-b7b3-42010a8000c2
spec:
  clusterIP: 10.7.242.176
  externalTrafficPolicy: Cluster
  ports:
  - name: http
    nodePort: 31853
    port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: ******************
  sessionAffinity: None
  type: LoadBalancer
status:
  loadBalancer: {}

To not assign a static IP on a GCP load balancer with Kubernetes (default behavior) you generally don't need to specify anything in the loadBalancerIP service spec as described here and here .

You can delete your service and re-create it without the loadBalancerIP or you can patch it:

$ kubectl patch service <service-name> -p '{"spec": { "loadBalancerIP": null }}'

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM