Comments (12)
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.
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.
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.
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.
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.
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.
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.
Sorry, I don't follow. What is wrong about it?
from digitalocean-cloud-controller-manager.
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.
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.
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.
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)
- do-loadbalancer-protocol: 'http2' results in 'http2' --> 'http' HOT 4
- Extending Loadbalancer timeout duration HOT 1
- Misconfigured cloud-controller-manager.yml (HA deployment that uses daemonset) HOT 1
- Change release pipeline to promote dev manifests
- Protect load balancer from being deleted HOT 7
- udp loadbalancer failing to create HOT 8
- Controller manual mode HOT 17
- Allow the region to be explicitly specified instead of using the Region metadata API HOT 5
- K8 annotations for load balancer name / id do not work as expected HOT 4
- Typos in README.md
- IPv6 address missing in nodes status HOT 9
- Prevent duplicate do-loadbalancer-name annotation from changing LB ownership
- do-loadbalancer should accept a certificate name as an alternative to the certificate ID
- Wrong validation regex for service.beta.kubernetes.io/do-loadbalancer-allow-rules HOT 2
- Feature Request: Create a Helm chart for DO CCM HOT 1
- Cloud Controller Manager doesn't add droplets to Load Balancer HOT 6
- `k8s.gcr.io` is no longer used HOT 2
- CI: Bypass branch protection on release workflow execution
- do-loadbalancer-allow-rules doesn't work (firewall is not configured) HOT 1
- Confusion with do-loadbalancer-hostname HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from digitalocean-cloud-controller-manager.