IBM Cloud Docs
Migrating to a new Red Hat Enterprise Linux version

Migrating to a new Red Hat Enterprise Linux version

Virtual Private Cloud Classic infrastructure Satellite

With the release of RHEL 8, the use of RHEL 7 worker nodes is deprecated in clusters that run version 4.10 and is not supported in clusters that run 4.11 or greater. You cannot upgrade RHEL 7 worker nodes to RHEL 8. Instead, you must provision a new worker pool and then delete the previous worker pool. In versions 4.10 and later, worker nodes in the new worker pool run RHEL 8 by default.

To find your worker node operating system, run the ibmcloud oc worker-pools -c CLUSTER command.

Migration actions by cluster version

If you have Portworx installed, follow the steps to upgrade your installation to use at least image version 2.11.4. For more information, see Upgrading Portworx to a specific version.

Version 4.10+ clusters
By default, clusters that run version 4.10 and later are created with RHEL 8 worker nodes.
The RHEL 7 operating system is deprecated for version 4.10.
Existing 4.10 clusters must be migrated to RHEL 8 before support for RHEL 7 in version 4.10 ends on 6 December 2022.
Version 4.9 clusters
Version 4.9 supports both RHEL 7 and 8 until end of support for 4.9. RHEL 7 remains the default version when creating new clusters.
If you want to upgrade a 4.9 cluster to 4.10, make sure to migrate your worker nodes from RHEL 7 to RHEL 8 before you upgrade.
For more information about updating to 4.9, see the Version information and update actions.
Version 4.8 clusters
RHEL 7 is supported until end of support for these cluster versions. For more information about cluster version support, see the Version information.
If you want to upgrade a version 4.8 cluster to 4.9, make sure to migrate your worker nodes to RHEL 8 after you upgrade.

Creating RHEL 8 worker pools in the command line

  1. You can use the following example commands to create a new worker pool with RHEL 8 worker nodes for your cluster type. Note that you must include the --operating-system option and specify REDHAT_8_64. Make sure that the number of nodes specified with the --size-per-zone option matches the number of RHEL 7 worker nodes that are to be replaced. Plan to create the new worker pool in the same zone as the worker pool that you want to replace. Otherwise, make sure your workloads will not be impacted by moving them to a new zone. Note that File or Block storage are not supported across zones. If you have a Cloud Pak entitlement, make sure to include the --entitlement ocp_entitled option.

    Classic: Example command to create a RHEL 8 worker pool. For more information about the worker pool create classic command, see the CLI reference. For more information about creating worker pools and adding worker nodes, see Adding worker nodes in classic clusters.

    ibmcloud oc worker-pool create classic --name <worker_pool_name> --cluster <cluster_name_or_ID> --flavor <flavor> --size-per-zone <number_of_workers_per_zone> --operating-system REDHAT_8_64 [--entitlement ocp_entitled]
    

    VPC: Example command to create a RHEL 8 worker pool. For more information about the worker pool create vpc-gen2 command, see the CLI reference for command details. Adding worker nodes in VPC clusters.

    ibmcloud oc worker-pool create vpc-gen2 --name <worker_pool_name> --cluster <cluster_name_or_ID> --flavor <flavor> --size-per-zone <number_of_workers_per_zone> --operating-system REDHAT_8_64 [--entitlement ocp_entitled]
    

    Satellite: Example command to create a RHEL 8 worker pool. Note that for Satellite clusters, you must first attach RHEL 8 hosts to your location before you can create a worker pool.

    ibmcloud oc worker-pool create satellite --cluster CLUSTER --host-label "os=RHEL8" --name NAME --size-per-zone SIZE --operating-system REDHAT_8_64 --zone ZONE [--label LABEL ...]
    
  2. Verify that the worker pool is created and note the worker pool ID.

    ibmcloud oc worker-pool ls --cluster <cluster_name_or_ID>
    

    Example output.

    Name            ID                              Flavor                 OS              Workers 
    my_workerpool   aaaaa1a11a1aa1aaaaa111aa11      b3c.4x16.encrypted     REDHAT_8_64    0 
    
  3. Add a zone to your worker pool. When you add a zone, the number of worker nodes you specified with the --size-per-zone option are added to the zone. These worker nodes run the RHEL 8 operating system. Plan to add the same zone as the worker pool that you want to replace. Otherwise, make sure your workloads will not be impacted by moving them to a new zone. Note that File or Block storage are not supported across zones.

  4. Migrate your workload to the new RHEL 8 worker pool. For more information about restricting your workload to the new worker pool, see Deploying apps to specific worker nodes by using labels.

    If you have software-defined storage (SDS) solutions like OpenShift Data Foundation or Portworx, update your storage configurations to include the new worker nodes and verify your workloads before removing your RHEL 7 worker nodes.

    Your RHEL 8 worker nodes have the os label set by default, which can be used to create an affinity rule to reschedule your workload in your RHEL 8 worker pool.

    For more information about rescheduling workloads, see Safely Drain a Node in the Kubernetes docs or Understanding how to evacuate pods on nodes in the Red Hat OpenShift docs.

  5. Remove the worker pool that contains the RHEL 7 workers.

    Consider scaling down your RHEL 7 worker pool and keeping it for several days before you remove it. This way, you can easily scale the worker pool back up if your workload experiences disruptions during the migration process. After you remove the worker pool, you cannot provision another RHEL 7 worker pool in the event of disruptions. When you have determined that your workload is stable and functions normally, you can safely remove the RHEL 7 worker pool.

    1. List your worker pools and note the name of the worker pool you want to remove.
      ibmcloud oc worker-pool ls --cluster CLUSTER
      
    2. Run the command to remove the worker pool.
      ibmcloud oc worker-pool rm --worker-pool WORKER_POOL --cluster CLUSTER