Updating a cluster between minor versions
You can update, or upgrade, an OKD cluster between minor versions.
Because of the difficulty of changing update channels by using |
Prerequisites
Have access to the cluster as a user with
admin
privileges. See Using RBAC to define and apply permissions.Have a recent etcd backup in case your upgrade fails and you must restore your cluster to a previous state.
Ensure all Operators previously installed through Operator Lifecycle Manager (OLM) are updated to their latest version in their latest channel. Updating the Operators ensures they have a valid upgrade path when the default OperatorHub catalogs switch from the current minor version to the next during a cluster upgrade. See Upgrading installed Operators for more information.
Ensure that all machine config pools (MCPs) are running and not paused. Nodes associated with a paused MCP are skipped during the update process.
If your cluster uses manually maintained credentials, ensure that the Cloud Credential Operator (CCO) is in an upgradeable state. For more information, see Upgrading clusters with manually maintained credentials for AWS, Azure, or GCP.
Using the |
About the OpenShift Update Service
The OpenShift Update Service (OSUS) provides over-the-air updates to OKD, including Fedora CoreOS (FCOS). It provides a graph, or diagram, that contains the vertices of component Operators and the edges that connect them. The edges in the graph show which versions you can safely update to. The vertices are update payloads that specify the intended state of the managed cluster components.
The Cluster Version Operator (CVO) in your cluster checks with the OpenShift Update Service to see the valid updates and update paths based on current component versions and information in the graph. When you request an update, the CVO uses the release image for that update to upgrade your cluster. The release artifacts are hosted in Quay as container images.
To allow the OpenShift Update Service to provide only compatible updates, a release verification pipeline drives automation. Each release artifact is verified for compatibility with supported cloud platforms and system architectures, as well as other component packages. After the pipeline confirms the suitability of a release, the OpenShift Update Service notifies you that it is available.
The OpenShift Update Service displays all recommended updates for your current cluster. If an upgrade path is not recommended by the OpenShift Update Service, it might be because of a known issue with the update or the target release. |
Two controllers run during continuous update mode. The first controller continuously updates the payload manifests, applies the manifests to the cluster, and outputs the controlled rollout status of the Operators to indicate whether they are available, upgrading, or failed. The second controller polls the OpenShift Update Service to determine if updates are available.
Only upgrading to a newer version is supported. Reverting or rolling back your cluster to a previous version is not supported. If your upgrade fails, contact Red Hat support. |
During the upgrade process, the Machine Config Operator (MCO) applies the new configuration to your cluster machines. The MCO cordons the number of nodes as specified by the maxUnavailable
field on the machine configuration pool and marks them as unavailable. By default, this value is set to 1
. The MCO then applies the new configuration and reboots the machine.
If you use Fedora machines as workers, the MCO does not update the kubelet because you must update the OpenShift API on the machines first.
With the specification for the new version applied to the old kubelet, the Fedora machine cannot return to the Ready
state. You cannot complete the update until the machines are available. However, the maximum number of unavailable nodes is set to ensure that normal cluster operations can continue with that number of machines out of service.
The OpenShift Update Service is composed of an Operator and one or more application instances.
Additional resources
OKD upgrade channels and releases
In OKD 4.1, Red Hat introduced the concept of channels for recommending the appropriate release versions for cluster upgrades. By controlling the pace of upgrades, these upgrade channels allow you to choose an upgrade strategy. Upgrade channels are tied to a minor version of OKD. For instance, OKD 4.6 upgrade channels recommend upgrades to 4.6 and upgrades within 4.6. They also recommend upgrades within 4.5 and from 4.5 to 4.6, to allow clusters on 4.5 to eventually upgrade to 4.6. They do not recommend upgrades to 4.7 or later releases. This strategy ensures that administrators explicitly decide to upgrade to the next minor version of OKD.
Upgrade channels control only release selection and do not impact the version of the cluster that you install; the openshift-install
binary file for a specific version of OKD always installs that version.
OKD 4.6 offers the following upgrade channel:
stable-4
stable-4 channel
Releases are added to the stable-4
channel after passing all tests.
You can use the stable-4
channel to upgrade from a previous minor version of OKD.
Upgrade version paths
OKD maintains an upgrade recommendation service that understands the version of OKD you have installed as well as the path to take within the channel you choose to get you to the next release.
You can imagine seeing the following in the stable-4
channel:
4.6.0
4.6.1
4.6.3
4.6.4
The service recommends only upgrades that have been tested and have no serious issues. It will not suggest updating to a version of OKD that contains known vulnerabilities. For example, if your cluster is on 4.6.1 and OKD suggests 4.6.4, then it is safe for you to update from 4.6.1 to 4.6.4. Do not rely on consecutive patch numbers. In this example, 4.6.2 is not and never was available in the channel.
The presence of an update recommendation in the stable-4
channel at any point is a declaration that the update is supported. While releases will never be removed from the channel, update recommendations that exhibit serious issues will be removed from the channel. Updates initiated after the update recommendation has been removed are still supported.
Restricted network clusters
If you manage the container images for your OKD clusters yourself, you must consult the Red Hat errata that is associated with product releases and note any comments that impact upgrades. During upgrade, the user interface might warn you about switching between these versions, so you must ensure that you selected an appropriate version before you bypass those warnings.
Updating a cluster by using the web console
If updates are available, you can update your cluster from the web console.
You can find information about available OKD advisories and updates in the errata section of the Customer Portal.
Prerequisites
- Have access to the web console as a user with
admin
privileges.
Procedure
From the web console, click Administration → Cluster Settings and review the contents of the Details tab.
For production clusters, ensure that the Channel is set to the correct channel for your current minor version, such as
stable-4.6
.For production clusters, you must subscribe to a stable- or fast- channel.
If the Update status is not Updates available, you cannot upgrade your cluster.
Select channel indicates the cluster version that your cluster is running or is updating to.
Select the highest available version and click Save.
The Input channel Update Status changes to Update to <product-version> in progress, and you can review the progress of the cluster update by watching the progress bars for the Operators and nodes.
If you are upgrading your cluster to the next minor version, like version 4.y to 4.(y+1), it is recommended to confirm your nodes are upgraded before deploying workloads that rely on a new feature. Any pools with worker nodes that are not yet updated are displayed on the Cluster Settings page.
After the update completes and the Cluster Version Operator refreshes the available updates, check if more updates are available in your current channel.
If updates are available, continue to perform updates in the current channel until you can no longer update.
If no updates are available, change the Channel to the stable-* or fast-* channel for the next minor version, and update to the version that you want in that channel.
You might need to perform several intermediate updates until you reach the version that you want.