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.20'
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 ノードに作成されます。