Question

How to reuse DO LoadBalancer previously created through Kubernetes?

Hi,

when creating a Kubernetes cluster and using a load balancer to host any public service, its easy to imagine that there would be anything going terribly wrong with the cluster. In that case I would like to create a new cluster and reuse the LoadBalancer to still have the same Public IP has before. Is there a possibility to request a specific load balancer name to be reused within the service definition? Or is elastic ip support for LoadBalancers planned?

This would increase fix possibilities in cases where there are infrastructure issues.

Dennis

Show comments

Submit an answer

This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Sign In or Sign Up to Answer

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Accepted Answer

Hi Dennis,

Thanks for your question. I’m Tyler, the product manager for our Load Balancer product. At this point in time, it’s not possible to re-use an existing LB. It has to be generated as a new LB in order to get registered in k8s properly and things to be routed correctly. This wouldn’t be impossible, per se, but it’s not something we’re looking to add soon, unfortunately.

I will say that we are considering working on adding floating IP support to Load Balancers, which completes part of your request. This would be something that would likely happen in mid-2019.

Want to learn more? Join the DigitalOcean Community!

Join our DigitalOcean community of over a million developers for free! Get help and share knowledge in Q&A, subscribe to topics of interest, and get courses and tools that will help you grow as a developer and scale your project or business.

I tried the following approach to resolve the issue with keeping the same DOLB its IP and so on. Looks like works for me.

  1. Setup your DOLB manually
  2. Change service type to NodePort, provide prefered nodePort values.
  3. Provide your externalIP for DOLB, you can probably provide it using properties
  4. On your DOLB setup forwarding rules, in my case is
TCP on port 443  TCP on port 30443
TCP on port 80  TCP on port 30080
  1. On yor DOLB setup health checks, in my case is
tcp://0.0.0.0:30080
  1. Enjoy your Load Balancer and not-changing IP you can use to configure DNS.
apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-backend-protocol: tcp
    service.beta.kubernetes.io/aws-load-balancer-type: nlb
  name: kong-proxy
  namespace: kong
spec:
  ports:
    - name: proxy
      **nodePort: 30080**
      port: 80
      protocol: TCP
      targetPort: 8000
    - name: proxy-ssl
      **nodePort: 30443** 
      port: 443
      protocol: TCP
      targetPort: 8443
  externalIPs: 
    - 111.111.111.111 # IP of your DO manually created load balancer 
  selector:
    app: ingress-kong
  **type: NodePort**

Hi, I’m analyzing k8s infrastructure in DO to start using it as a permanent solution. I’m facing this issue now and it doesn’t look good to not be able to reuse a previous IP address. If the cluster has any issues and there’s a need to regenerate it (or maybe there’s a need to do a cleanup), the traffic will be “dead” until DNS change takes effect for the new load balancer. Is there any fix planned for this situation?

It would be great to be able to make sure that the LB IP address is reserved for our Organization and can be reused any time. Any Solution (floating IP?)works for us, but please make it possible.

In some cases we can’t control the Domain settings directly so the downtime could be significant if we have to switch to another IP for any unforeseen reason.