10.4. クラスター内の RHEL コンピュートマシンの更新

クラスターの更新後は、クラスター内の Red Hat Enterprise Linux (RHEL) コンピュートマシンを更新する必要があります。

重要

RHEL コンピューティングマシンでは、Red Hat Enterprise Linux (RHEL) バージョン 8.6 以降がサポートされています。

RHEL をオペレーティングシステムとして使用する場合は、コンピュートマシンを別の OpenShift Container Platform のマイナーバージョンに更新することもできます。マイナーバージョンの更新の実行時に、RHEL から RPM パッケージを除外する必要はありません。

重要

RHEL 7 コンピュートマシンを RHEL 8 にアップグレードすることはできません。新しい RHEL 8 ホストをデプロイする必要があり、古い RHEL 7 ホストを削除する必要があります。

前提条件

  • クラスターが更新されていること。

    重要

    RHEL マシンには、更新プロセスを完了するためにクラスターで生成されるアセットが必要になるため、クラスターを更新してから、クラスター内の RHEL ワーカーマシンを更新する必要があります。

  • RHEL コンピュートマシンクラスターの追加に使用したマシンへのローカルアクセスがあること。RHEL マシンを定義する hosts Ansible インベントリーファイルおよび upgrade Playbook にアクセスできる必要があります。
  • マイナーバージョンへの更新の場合、RPM リポジトリーはクラスターで実行しているのと同じバージョンの OpenShift Container Platform を使用します。

手順

  1. ホストで firewalld を停止し、無効にします。

    # systemctl disable --now firewalld.service
    注記

    デフォルトでは、最小インストールオプションを持つベース OS RHEL により、firewalld サービスが有効になります。ホストで firewalld サービスを有効にすると、ワーカーで OpenShift Container Platform ログにアクセスできなくなります。ワーカーの OpenShift Container Platform ログへのアクセスを継続する場合は、firewalld を後で有効にしないでください。

  2. OpenShift Container Platform 4.11 で必要なリポジトリーを有効にします。

    1. Ansible Playbook を実行するマシンで、必要なリポジトリーを更新します。

      # subscription-manager repos --disable=rhocp-4.10-for-rhel-8-x86_64-rpms \
                                   --disable=ansible-2.9-for-rhel-8-x86_64-rpms \
                                   --enable=rhocp-4.11-for-rhel-8-x86_64-rpms
      重要

      OpenShift Container Platform 4.11 の時点で、Ansible Playbook は RHEL 8 に対してのみ提供されています。RHEL 7 システムが OpenShift Container Platform 4.10 Ansible Playbook のホストとして使用された場合、Ansible ホストを RHEL 8 にアップグレードするか、RHEL 8 システムに新しい Ansible ホストを作成し、古い Ansible ホストからインベントリーをコピーする必要があります。

    2. Ansible Playbook を実行するマシンで、Ansible パッケージを更新します。

      # yum swap ansible ansible-core
    3. Ansible Playbook を実行するマシンで、openshift-ansible を含む必要なパッケージを更新します。

      # yum update openshift-ansible openshift-clients
    4. 各 RHEL コンピュートノードで、必要なリポジトリーを更新します。

      # subscription-manager repos --disable=rhocp-4.10-for-rhel-8-x86_64-rpms \
                                   --enable=rhocp-4.11-for-rhel-8-x86_64-rpms
  3. RHEL ワーカーマシンを更新します。

    1. 次の例に示すように、/<path>/inventory/hosts にある Ansible インベントリーファイルを確認し、その内容を更新して、RHEL 8 マシンが [workers] セクションにリストされるようにします。

      [all:vars]
      ansible_user=root
      #ansible_become=True
      
      openshift_kubeconfig_path="~/.kube/config"
      
      [workers]
      mycluster-rhel8-0.example.com
      mycluster-rhel8-1.example.com
      mycluster-rhel8-2.example.com
      mycluster-rhel8-3.example.com
    2. openshift-ansible ディレクトリーに移動します。

      $ cd /usr/share/ansible/openshift-ansible
    3. upgrade Playbook を実行します。

      $ ansible-playbook -i /<path>/inventory/hosts playbooks/upgrade.yml 1
      1
      <path> については、作成した Ansible インベントリーファイルへのパスを指定します。
      注記

      upgrade Playbook は OpenShift Container Platform パッケージのみをアップグレードします。オペレーティングシステムパッケージは更新されません。

  4. すべてのワーカーを更新したら、すべてのクラスターノードが新規バージョンに更新されていることを確認します。

    # oc get node

    出力例

    NAME                        STATUS                        ROLES    AGE    VERSION
    mycluster-control-plane-0   Ready                         master   145m   v1.24.0
    mycluster-control-plane-1   Ready                         master   145m   v1.24.0
    mycluster-control-plane-2   Ready                         master   145m   v1.24.0
    mycluster-rhel8-0           Ready                         worker   98m    v1.24.0
    mycluster-rhel8-1           Ready                         worker   98m    v1.24.0
    mycluster-rhel8-2           Ready                         worker   98m    v1.24.0
    mycluster-rhel8-3           Ready                         worker   98m    v1.24.0

  5. オプション: upgrade Playbook で更新されていないオペレーティングシステムパッケージを更新します。4.11 にないパッケージを更新するには、以下のコマンドを使用します。

    # yum update
    注記

    4.11 のインストール時に使用したものと同じ RPM リポジトリーを使用している場合は、RPM パッケージを除外する必要はありません。