---
name: openshift-rhel_migrate_9
title: Migrating to Red Hat Enterprise Linux 9
description: '[Virtual Private Cloud] [Classic infrastructure]'
last-updated: 2026-07-30
---

> ## Documentation Index
> The table of contents for this documentation set is at https://cloud.ibm.com/docs/openshift?format=markdown
> The index for all IBM Cloud docs is at: https://cloud.ibm.com/docs/llms.txt
> Use these files to discover more information as needed.

# Migrating to Red Hat Enterprise Linux 9
{: #migrate-rhel-9}

[Virtual Private Cloud]{: tag-vpc} [Classic infrastructure]{: tag-classic-inf}

For RHEL 9, the `/tmp` directory is a separate partition that has the `nosuid`, `noexec`, and `nodev` options set. If your apps install to and run scripts or binaries under the `/tmp` directory, they might fail. Update your apps to use the `/var/tmp` directory instead of the `/tmp` directory to run temporary scripts or binaries.

The default `cgroup` implementation is `cgroup` v2. In RHEL 9, `cgroup` v1 isn't supported. Review the [Kubernetes migration documentation for `cgroup` v2](https://kubernetes.io/docs/concepts/architecture/cgroups/#migrating-to-cgroup-v2) and verify that your applications fully support `cgroup` v2. There are known issues with older versions of Java that may cause out of memory (OOM) issues for workloads.
{: important}

1. Review your worker pool operating systems to find which pools you need to migrate.
    ```sh
    ibmcloud ks worker-pools -c CLUSTER
    ```
    {: pre}

1. Specify the `RHEL_9_64` version for the worker pool. 

    ```sh
    ibmcloud oc worker-pool operating-system set --cluster CLUSTER --worker-pool POOL --operating-system RHEL_9_64
    ```
    {: pre}

1. Update each worker node in the worker pool by running the [`ibmcloud oc worker update`](https://cloud.ibm.com/docs/openshift?topic=openshift-kubernetes-service-cli&format=markdown#worker-update-cli) for Classic clusters or [`ibmcloud oc worker replace`](https://cloud.ibm.com/docs/openshift?topic=openshift-kubernetes-service-cli&format=markdown#worker-replace-cli) for VPC clusters. 

    Make sure that you have enough worker nodes to support your workload while you update or replace the relevant worker nodes. For more information, see [Updating VPC worker nodes](https://cloud.ibm.com/docs/containers?topic=containers-update&interface=ui&format=markdown#vpc_worker_node) or [Updating classic worker nodes](https://cloud.ibm.com/docs/containers?topic=containers-update&interface=ui&format=markdown#worker_node).
    {: tip}

    Example command to update Classic worker nodes.

    ```sh
    ibmcloud oc worker update --cluster CLUSTER --worker WORKER1_ID [--worker WORKER2_ID] 
    ```
    {: pre}

    Example command to update VPC worker nodes.

    ```sh
    ibmcloud oc worker replace --cluster CLUSTER --worker WORKER_ID --update
    ```
    {: pre}

1. Get the details for your worker pool and workers. In the output, verify that your worker nodes run the `RHEL_9_64` operating system.

    Get the details for a worker pool. 
    ```sh
    ibmcloud oc worker-pools -c CLUSTER
    ```
    {: pre}

    Get the details for a worker node. 
    ```sh
    ibmcloud oc worker get --cluster CLUSTER --worker WORKER_NODE_ID
    ```
    {: pre}