Git Product home page Git Product logo

Comments (12)

Richard87 avatar Richard87 commented on May 14, 2024 1

Ahh, I misunderstood. I thought it would try to match the node's internal ip with the droplets private ip (for example), not check if the name is the same as the private ip :)

Btw, my error came from line 269:
https://github.com/digitalocean/digitalocean-cloud-controller-manager/blob/master/do/loadbalancers.go#L269

So it didn't get to the section to match addresses at all.

from digitalocean-cloud-controller-manager.

andrewsykim avatar andrewsykim commented on May 14, 2024

After updating kubelet config you need to

sudo systemctl daemon-reload
sudo systemctl kubelet restart

Can you try that and let me know if that works?

from digitalocean-cloud-controller-manager.

Richard87 avatar Richard87 commented on May 14, 2024

Hi, yeah, I tried that a few times, no success...

(also I could see in systemctl status kubelet that --cloud-provider external was in use...

from digitalocean-cloud-controller-manager.

andrewsykim avatar andrewsykim commented on May 14, 2024

The problem here is that the name of your droplets don't match the name of your worker nodes. This is a requirement as mentioned here

from digitalocean-cloud-controller-manager.

Richard87 avatar Richard87 commented on May 14, 2024

Okay, I'll give it a try...

It is important that the node name on Kubernetes matches either the droplet name, private ipv4 ip or the public ipv4 ip, otherwise cloud controller manager cannot find the corresponding droplet to nodes.

But maybe the readme should be updated then?

Also, can it be installed "after" the fact (after kubernetes is in use), or do I need to set this up before starting the kubelet the first time?

from digitalocean-cloud-controller-manager.

andrewsykim avatar andrewsykim commented on May 14, 2024

Good question, the flags need to be set on the initial registration. You can do it on an existing cluster but you need to delete the node object before starting the kubelet back up.

from digitalocean-cloud-controller-manager.

Richard87 avatar Richard87 commented on May 14, 2024

Ok, it works :)

But the readme is still wrong... Or there is a bug:

Kubernetes node names must match the droplet name, private ipv4 ip or public ipv4 ip
7190ad6

from digitalocean-cloud-controller-manager.

andrewsykim avatar andrewsykim commented on May 14, 2024

Sorry, I don't follow. What is wrong about it?

from digitalocean-cloud-controller-manager.

Richard87 avatar Richard87 commented on May 14, 2024

the readme says the droplet name doesn't need to match the node name, it sais, name, public ip or private ip.

To me that means that ccm can match the droplet based on public/private ip, and the name is not important anymore?

from digitalocean-cloud-controller-manager.

andrewsykim avatar andrewsykim commented on May 14, 2024

Kubernetes node names must match the droplet name, private ipv4 ip or public ipv4 ip

To me, that implies the Kubernetes node name (usually the hostname of the VM) has to match the actual name of the droplet OR the IPv4 address OR the IPv6 address. For example, if the droplet name is worker01 with private IP 10.11.12.13 and public IP 1.2.3.4 then you can name the Kubernetes node either worker01, 10.11.12.13 or 1.2.3.4.

from digitalocean-cloud-controller-manager.

Richard87 avatar Richard87 commented on May 14, 2024

Yeah, that's what I thought to, in other words, as long as private/public ip can match, it doesn't matter what the node name is?

But that doesn't work for the load balancer, it still requires the node name to match the droplet name...

from digitalocean-cloud-controller-manager.

andrewsykim avatar andrewsykim commented on May 14, 2024

hmmm... that should work based on the code here. Can you show me a cluster that uses private/public IPs for the node name and the LoadBalancer is not adding backends?

from digitalocean-cloud-controller-manager.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.