7.4. クラスター内の RHEL コンピュートマシンの更新
クラスターの更新後は、クラスター内の Red Hat Enterprise Linux (RHEL) コンピュートマシンを更新する必要があります。
ワーカー (コンピュート) マシン用にサポートされているのは Red Hat Enterprise Linux (RHEL) バージョン 7.9 以降であるため、RHEL ワーカーマシンをバージョン 8 にアップグレードすることはできません。
RHEL をオペレーティングシステムとして使用する場合は、コンピュートマシンを別の OpenShift Container Platform のマイナーバージョンに更新することもできます。マイナーバージョンの更新の実行時に、RHEL から RPM パッケージを除外する必要はありません。
前提条件
クラスターが更新されていること。
重要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.6 で必要なリポジトリーを有効にします。
Ansible Playbook を実行するマシンで、必要なリポジトリーを更新します。
# subscription-manager repos --disable=rhel-7-server-ose-4.5-rpms \ --enable=rhel-7-server-ansible-2.9-rpms \ --enable=rhel-7-server-ose-4.6-rpms
Ansible Playbook を実行するマシンで、
openshift-ansible
を含む必要なパッケージを更新します。# yum update openshift-ansible openshift-clients
各 RHEL コンピュートノードで、必要なリポジトリーを更新します。
# subscription-manager repos --disable=rhel-7-server-ose-4.5-rpms \ --enable=rhel-7-server-ose-4.6-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.19.0 mycluster-control-plane-1 Ready master 145m v1.19.0 mycluster-control-plane-2 Ready master 145m v1.19.0 mycluster-rhel7-0 NotReady,SchedulingDisabled worker 98m v1.14.6+97c81d00e mycluster-rhel7-1 Ready worker 98m v1.14.6+97c81d00e mycluster-rhel7-2 Ready worker 98m v1.14.6+97c81d00e mycluster-rhel7-3 Ready worker 98m v1.14.6+97c81d00e
ステータスが
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.19.0 mycluster-control-plane-1 Ready master 145m v1.19.0 mycluster-control-plane-2 Ready master 145m v1.19.0 mycluster-rhel7-0 NotReady,SchedulingDisabled worker 98m v1.19.0 mycluster-rhel7-1 Ready worker 98m v1.19.0 mycluster-rhel7-2 Ready worker 98m v1.19.0 mycluster-rhel7-3 Ready worker 98m v1.19.0
オプション:
upgrade
Playbook で更新されていないオペレーティングシステムパッケージを更新します。4.6 にないパッケージを更新するには、以下のコマンドを使用します。# yum update
注記4.6 のインストール時に使用したものと同じ RPM リポジトリーを使用している場合は、RPM パッケージを除外する必要はありません。