Using the Kubeadm control plane type to manage a control plane provides several ways to upgrade control plane machines.
The high level steps to fully upgrading a workload cluster are to first upgrade the control plane and then upgrade the worker machines.
To upgrade the control plane machines underlying machine images, the
MachineTemplate resource referenced by the
KubeadmControlPlane must be changed. Since
MachineTemplate resources are immutable, the recommended approach is to
- Copy the existing
- Modify the values that need changing, such as instance type or image ID.
- Create the new
MachineTemplateon the management cluster.
- Modify the existing
KubeadmControlPlaneresource to reference the new
The final step will trigger a rolling update of the control plane using the new values found in the
To upgrade the Kubernetes control plane version, which will likely, depending on the provider, also upgrade the
underlying machine image, make a modification to the
Spec.Version field. This will
trigger a rolling upgrade of the control plane.
Some infrastructure providers, such as CAPA, require
that if a specific machine image is specified, it has to match the Kubernetes version specified in the
KubeadmControlPlane spec. In order to only trigger a single upgrade, the new
MachineTemplate should be created first
and then both the
InfrastructureTemplate should be modified in a single transaction.
Upgrades are not limited to just the control plane. This section is not related to Kubeadm control plane specifically, but is the final step in fully upgrading a Cluster API managed cluster.
It is recommended to manage workload machines with one or more
Machines to allow for a seamless scaling experience. A modification to the
MachineDeployments spec will begin a rolling update of the workload machines.