2.4. OpenShift Container Platform 4.18 から新しいバージョンへの更新の準備
OpenShift Container Platform 4.18 から新しいバージョンに更新する前に、Red Hat Enterprise Linux (RHEL) コンピュートマシンに関する固有の考慮事項を確認してください。
2.4.1. パッケージベースの RHEL ワーカーノードからのワークロード移行 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform 4.19 の導入に伴い、パッケージベースの RHEL ワーカーノードがサポートされなくなります。該当するノードが稼働している間にクラスターを更新しようとすると、更新が失敗します。
ノードセレクターを使用すると、RHEL コンピュートノードで実行中の Pod を、代わりに RHCOS ノードで実行するように再スケジュールできます。
たとえば、次の Node オブジェクトには、オペレーティングシステム情報 (この場合は RHCOS) のラベルがあります。
RHCOS のラベルを含む Node オブジェクトのサンプル
kind: Node
apiVersion: v1
metadata:
name: ip-10-0-131-14.ec2.internal
selfLink: /api/v1/nodes/ip-10-0-131-14.ec2.internal
uid: 7bc2580a-8b8e-11e9-8e01-021ab4174c74
resourceVersion: '478704'
creationTimestamp: '2019-06-10T14:46:08Z'
labels:
kubernetes.io/os: linux
failure-domain.beta.kubernetes.io/zone: us-east-1a
node.openshift.io/os_version: '4.19'
node-role.kubernetes.io/worker: ''
failure-domain.beta.kubernetes.io/region: us-east-1
node.openshift.io/os_id: rhcos
beta.kubernetes.io/instance-type: m4.large
kubernetes.io/hostname: ip-10-0-131-14
beta.kubernetes.io/arch: amd64
#...
- 1
- ノードで実行されるオペレーティングシステムを識別し、Pod のノードセレクターに一致するラベル。
Pod を新しい RHCOS ノードにスケジュールするには、Pod の nodeSelector フィールドに一致するラベルが含まれている必要があります。次の手順では、ラベルを追加する方法を説明します。
手順
次のコマンドを入力して、既存の Pod を現在実行している RHEL ノードをスケジューリング対象から除外します。
$ oc adm cordon <rhel-node>Pod に
rhcosノードセレクターを追加します。既存および将来の Pod にノードセレクターを追加するには、次のコマンドを入力して、Pod のコントローラーオブジェクトにノードセレクターを追加します。
rhcosラベルを含むDeploymentオブジェクトの例$ oc patch dc <my-app> -p '{"spec":{"template":{"spec":{"nodeSelector":{"node.openshift.io/os_id":"rhcos"}}}}}'Deployment制御オブジェクト配下にある既存の Pod が、RHCOS ノード上に再作成されます。特定の新しい Pod にノードセレクターを追加するには、セレクターを
Podオブジェクトに直接追加します。rhcosラベルを含むPodオブジェクトの例apiVersion: v1 kind: Pod metadata: name: <my-app> #... spec: nodeSelector: node.openshift.io/os_id: rhcos #...Pod にも制御オブジェクトがある場合、新しい Pod は RHCOS ノードに作成されます。
2.4.2. RHEL ワーカーノードの特定と削除 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform 4.19 の導入に伴い、パッケージベースの RHEL ワーカーノードがサポートされなくなります。次の手順では、ベアメタルインストール環境のクラスターを削除するために RHEL ノードを特定する方法を説明します。クラスターを正常に更新するには、次の手順を完了する必要があります。
手順
次のコマンドを入力して、クラスター内で RHEL を実行しているノードを特定します。
$ oc get -l node.openshift.io/os_id=rhel出力例
NAME STATUS ROLES AGE VERSION rhel-node1.example.com Ready worker 7h v1.32.3 rhel-node2.example.com Ready worker 7h v1.32.3 rhel-node3.example.com Ready worker 7h v1.32.3ノード削除プロセスに進みます。RHEL ノードは Machine API によって管理されず、コンピュートマシンセットが関連付けられていません。手動でクラスターからノードを削除する前に、ノードをスケジューリング対象から除外して drain (Pod の退避) を実行する必要があります。
このプロセスの詳細は、How to remove a worker node from Red Hat OpenShift Container Platform 4 UPI を参照してください。
2.4.3. 新しい RHCOS ワーカーノードのプロビジョニング リンクのコピーリンクがクリップボードにコピーされました!
ワークロードに追加のコンピュートノードが必要な場合は、クラスターを更新する前または更新した後に新しいノードをプロビジョニングできます。詳細は、次の マシン管理 ドキュメントを参照してください。
installer-provisioned infrastructure インストールの場合、自動スケーリングによってデフォルトで RHCOS ノードが追加されます。ベアメタルプラットフォーム上の user-provisioned infrastructure インストールの場合、RHCOS コンピュートノードをクラスターに手動で追加 できます。