Hands-On Kubernetes on Windows
上QQ阅读APP看书,第一时间看更新

cloud-controller-manager

Originally a part of kube-controller-manager, the Kubernetes Cloud Controller Manager (cloud-controller-manager) provides cloud-specific control loops. The reason for the separation of Cloud Controller Manager is to allow for the easier evolution of cloud-specific connectors (providers) code, which in most cases, is released at different cadences than the core Kubernetes code.

As of Kubernetes 1.17, cloud-controller-manager is still in its beta stage. You can check the current status of the feature in the official documentation:  https://kubernetes.io/docs/tasks/administer-cluster/running-cloud-controller.

When enabling cloud-controller-manager, the cloud-specific control loops in kube-controller-manager must be disabled. Then, the following controllers will depend on the cloud provider's implementation:

  • Node Controller: The provider is used for determining a node's status and detecting if the node was deleted.
  • Route Controller: Requires the provider for setting up network routing.
  • Service Controller: Manages load balancers via the provider.
  • Volume Controller: Manages storage volumes using the provider.

The list of external cloud providers offered as a part of Kubernetes constantly evolves and can be checked in the official documentation (https://kubernetes.io/docs/concepts/cluster-administration/cloud-providers/) and on Kubernetes' organization GitHub page (https://github.com/kubernetes?q=cloud-provider-&type=&language=).