This manual explains how to migrate to using external Cloud Controller Managers for supported providers via UI.
The CCM (Cloud Controller Manager) is a Kubernetes
control plane component that embeds cloud-specific control logic. There are two different kinds of Cloud controller managers:
in-tree and out-of-tree. According to the Kubernetes design proposal,
the in-tree code is “code that lives in the core Kubernetes repository k8s.io/kubernetes”,
while the out-of-tree code is “code that lives in an external repository outside of k8s.io/kubernetes”.
The first cloud-specific interaction logic was completely in-tree, bringing in a not-negligible amount of problems,
among which the dependency of the CCM release cycle from the Kubernetes core release cycle and the difficulty to add new providers
to the Kubernetes core code. Then, the Kubernetes community moved toward the out-of-tree implementation by introducing
a plugin mechanism that allows different cloud providers to integrate their platforms with Kubernetes.
CCM Migration Status
To allow migration from in-tree to out-of-tree CCM for existing cluster, the cluster details view has been extended by a
section in the top area, the “External CCM Migration Status”, that indicates the status of the CCM migration.
The “External CCM Migration Status” can have four different possible values:
Not Needed
The cluster already uses the external CCM.
Supported
KKP supports the external CCM for the given cloud provider, therefore the cluster can be migrated.
When clicking on this button, a windows pops up to confirm the migration.
In Progress
External CCM migration has already been enabled for the given cluster, and the migration is in progress.
Unsupported
KKP does not support yet the external CCM for the given cloud provider.
Roll out MachineDeployments
Once the CCM migration has been enabled by clicking on the “Supported” button, the migration procedure will hang in
“In progress” status until all the machineDeployments
will be rolled out. To roll out a machineDeployment
get into
the machineDeployment
view and click on the circular arrow in the top right.
Then, you will be asked to confirm the restart operation.
Once all the machineDeployments
will be rolling restarted, the status will get into “Not needed” status to indicate
that there is no need for CCM migration.