12.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 を使用します。
手順
ホストで firewalld を停止し、無効にします。
# systemctl disable --now firewalld.service
注記デフォルトでは、"最小" インストールオプションを持つベース OS RHEL により、firewalld サービスが有効になります。ホストで firewalld サービスを有効にすると、ワーカーで OpenShift Container Platform ログにアクセスできなくなります。ワーカーの OpenShift Container Platform ログへのアクセスを継続する場合は、firewalld を後で有効にしないでください。
OpenShift Container Platform 4.12 で必要なリポジトリーを有効にします。
Ansible Playbook を実行するマシンで、必要なリポジトリーを更新します。
# subscription-manager repos --disable=rhocp-4.11-for-rhel-8-x86_64-rpms \ --disable=ansible-2.9-for-rhel-8-x86_64-rpms \ --enable=rhocp-4.12-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 ホストからインベントリーをコピーする必要があります。
Ansible Playbook を実行するマシンで、Ansible パッケージを更新します。
# yum swap ansible ansible-core
Ansible Playbook を実行するマシンで、
openshift-ansible
を含む必要なパッケージを更新します。# yum update openshift-ansible openshift-clients
各 RHEL コンピュートノードで、必要なリポジトリーを更新します。
# subscription-manager repos --disable=rhocp-4.11-for-rhel-8-x86_64-rpms \ --enable=rhocp-4.12-for-rhel-8-x86_64-rpms
RHEL ワーカーマシンを更新します。
次の例に示すように、
/<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
openshift-ansible
ディレクトリーに移動します。$ cd /usr/share/ansible/openshift-ansible
upgrade
Playbook を実行します。$ ansible-playbook -i /<path>/inventory/hosts playbooks/upgrade.yml 1
- 1
<path>
については、作成した Ansible インベントリーファイルへのパスを指定します。
注記upgrade
Playbook は OpenShift Container Platform パッケージのみをアップグレードします。オペレーティングシステムパッケージは更新されません。
すべてのワーカーを更新したら、すべてのクラスターノードが新規バージョンに更新されていることを確認します。
# oc get node
出力例
NAME STATUS ROLES AGE VERSION mycluster-control-plane-0 Ready master 145m v1.25.0 mycluster-control-plane-1 Ready master 145m v1.25.0 mycluster-control-plane-2 Ready master 145m v1.25.0 mycluster-rhel8-0 Ready worker 98m v1.25.0 mycluster-rhel8-1 Ready worker 98m v1.25.0 mycluster-rhel8-2 Ready worker 98m v1.25.0 mycluster-rhel8-3 Ready worker 98m v1.25.0
オプション:
upgrade
Playbook で更新されていないオペレーティングシステムパッケージを更新します。4.12 にないパッケージを更新するには、以下のコマンドを使用します。# yum update
注記4.12 のインストール時に使用したものと同じ RPM リポジトリーを使用している場合は、RPM パッケージを除外する必要はありません。