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.

Tyler C
DigitalOcean Employee
DigitalOcean Employee badge
November 16, 2018
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.

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?

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Featured on Community

Get our biweekly newsletter

Sign up for Infrastructure as a Newsletter.

Hollie's Hub for Good

Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.

Become a contributor

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

Welcome to the developer cloud

DigitalOcean makes it simple to launch in the cloud and scale up as you grow — whether you're running one virtual machine or ten thousand.

Learn more