9.4. クラスター内の RHEL コンピュートマシンの更新
クラスターの更新後は、クラスター内の Red Hat Enterprise Linux (RHEL) コンピュートマシンを更新する必要があります。
Red Hat Enterprise Linux (RHEL) バージョン 8.4 およびバージョン 8.5 は、RHEL ワーカー (コンピューティング) マシンでサポートされています。
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.9 で必要なリポジトリーを有効にします。
Ansible Playbook を実行するマシンで、必要なリポジトリーを更新します。
# subscription-manager repos --disable=rhel-7-server-ose-4.8-rpms \ --enable=rhel-7-server-ansible-2.9-rpms \ --enable=rhel-7-server-ose-4.9-rpms
Ansible Playbook を実行するマシンで、
openshift-ansible
を含む必要なパッケージを更新します。# yum update openshift-ansible openshift-clients
各 RHEL コンピュートノードで、必要なリポジトリーを更新します。
# subscription-manager repos --disable=rhel-7-server-ose-4.8-rpms \ --enable=rhel-7-server-ose-4.9-rpms \ --enable=rhel-7-fast-datapath-rpms \ --enable=rhel-7-server-optional-rpms
RHEL ワーカーマシンを更新します。
現在のノードステータスを確認し、更新する RHEL ワーカーを判別します。
# oc get node
出力例
NAME STATUS ROLES AGE VERSION mycluster-control-plane-0 Ready master 145m v1.22.1 mycluster-control-plane-1 Ready master 145m v1.22.1 mycluster-control-plane-2 Ready master 145m v1.22.1 mycluster-rhel7-0 NotReady,SchedulingDisabled worker 98m v1.22.1 mycluster-rhel7-1 Ready worker 98m v1.22.1 mycluster-rhel7-2 Ready worker 98m v1.22.1 mycluster-rhel7-3 Ready worker 98m v1.22.1
ステータスが
NotReady,SchedulingDisabled
のマシンに留意してください。/<path>/inventory/hosts
で Ansible インベントリーファイルを確認し、以下の例に示されるように、ステータスがNotReady,SchedulingDisabled
のマシンのみが[workers]
セクションに一覧表示されるようにそのコンテンツを更新します。[all:vars] ansible_user=root #ansible_become=True openshift_kubeconfig_path="~/.kube/config" [workers] mycluster-rhel7-0.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 パッケージのみをアップグレードします。オペレーティングシステムパッケージは更新されません。
- 直前の手順で実行したプロセスに従って、クラスター内の各 RHEL ワーカーマシンを更新します。
すべてのワーカーを更新したら、すべてのクラスターノードが新規バージョンに更新されていることを確認します。
# oc get node
出力例
NAME STATUS ROLES AGE VERSION mycluster-control-plane-0 Ready master 145m v1.22.1 mycluster-control-plane-1 Ready master 145m v1.22.1 mycluster-control-plane-2 Ready master 145m v1.22.1 mycluster-rhel7-0 NotReady,SchedulingDisabled worker 98m v1.22.1 mycluster-rhel7-1 Ready worker 98m v1.22.1 mycluster-rhel7-2 Ready worker 98m v1.22.1 mycluster-rhel7-3 Ready worker 98m v1.22.1
オプション:
upgrade
Playbook で更新されていないオペレーティングシステムパッケージを更新します。4.9 にないパッケージを更新するには、以下のコマンドを使用します。# yum update
注記4.9 のインストール時に使用したものと同じ RPM リポジトリーを使用している場合は、RPM パッケージを除外する必要はありません。