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
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!
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.
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
How To: Running Codex CLI on Windows with Azure OpenAI
Set Wordpress Featured Image Using Javascript
How To Fix PHP Random Being The Same
Why no WebP Support with Wordpress
Replace Wordpress Cron With Linux Cron
Customize Yoast Canonical URL Programmatically