How does the external Cloud Controller Manager interact with Kubernetes?

0
11
Asked By CloudySky123 On

I'm trying to understand how the external Cloud Controller Manager (CCM) interacts with the Kubernetes architecture. Specifically, which component is responsible for calling my CCM to register nodes? I've implemented the cloud-provider interface, but I'm not clear on whether it's the kube controller manager that directly calls my CCM or if it works differently. Could someone clarify how this interaction works?

3 Answers

Answered By K8sWhiz On

Also, if you're building a custom CCM for a bare-metal cluster, make sure to disable cloud controllers in the kube-controller-manager—this helps avoid any race conditions. Your CCM must have the right RBAC permissions to update Node objects and manage LoadBalancer services. Plus, don’t forget to handle the NodeLifecycle to clean up after terminated instances, or you'll end up with ghost nodes!

Answered By NodeNerd89 On

Just to add some context—both your external CCM and the kube-controller-manager are independent processes that watch the API server. They don’t call each other. When you use the --cloud-provider=external flag on the kubelet, it initializes nodes with a specific taint, and that's where your CCM steps in. Your CCM watches for nodes with this taint and interacts with your cloud-provider interface to gather node metadata and clean up nodes properly.

Answered By TechieTinker On

Nope, the kube controller manager doesn't call your external Cloud Controller Manager. Instead, the CCM operates as a separate deployment that directly monitors the API server for node events. It takes care of registering itself and managing node lifecycles independently from the kube controller manager.

Related Questions

LEAVE A REPLY

Please enter your comment!
Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.