This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.5.3. ワーカーノードの調整
デプロイメント時にワーカーノードのサイズを誤って設定した場合には、1 つ以上の新規マシンセットを作成してそれらをスケールアップしてから、元のマシンセットを削除する前にスケールダウンしてこれらのワーカーノードを調整します。
5.3.1. マシンセットとマシン設定プールの相違点について
					MachineSet オブジェクトは、クラウドまたはマシンプロバイダーに関する OpenShift Container Platform ノードを記述します。
				
					MachineConfigPool オブジェクトにより、MachineConfigController コンポーネントがアップグレードのコンテキストでマシンのステータスを定義し、提供できるようになります。
				
					MachineConfigPool オブジェクトにより、ユーザーはマシン設定プールの OpenShift Container Platform ノードにアップグレードを展開する方法を設定できます。
				
					NodeSelector オブジェクトは MachineSet オブジェクト への参照に置き換えることができます。
				
5.3.2. マシンセットの手動によるスケーリング
マシンセットのマシンのインスタンスを追加したり、削除したりする必要がある場合、マシンセットを手動でスケーリングできます。
本書のガイダンスは、完全に自動化されたインストーラーでプロビジョニングされるインフラストラクチャーのインストールに関連します。ユーザーによってプロビジョニングされるインフラストラクチャーのカスタマイズされたインストールにはマシンセットがありません。
前提条件
- 
							OpenShift Container Platform クラスターおよび ocコマンドラインをインストールすること。
- 
							cluster-adminパーミッションを持つユーザーとして、ocにログインする。
手順
- クラスターにあるマシンセットを表示します。 - oc get machinesets -n openshift-machine-api - $ oc get machinesets -n openshift-machine-api- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - マシンセットは - <clusterid>-worker-<aws-region-az>の形式で一覧表示されます。
- クラスター内にあるマシンを表示します。 - oc get machine -n openshift-machine-api - $ oc get machine -n openshift-machine-api- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 削除するマシンに注釈を設定します。 - oc annotate machine/<machine_name> -n openshift-machine-api machine.openshift.io/cluster-api-delete-machine="true" - $ oc annotate machine/<machine_name> -n openshift-machine-api machine.openshift.io/cluster-api-delete-machine="true"- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 次のいずれかのコマンドを実行して、コンピュートマシンセットをスケーリングします。 - oc scale --replicas=2 machineset <machineset> -n openshift-machine-api - $ oc scale --replicas=2 machineset <machineset> -n openshift-machine-api- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - または、以下を実行します。 - oc edit machineset <machineset> -n openshift-machine-api - $ oc edit machineset <machineset> -n openshift-machine-api- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow ヒント- または、以下の YAML を適用してマシンセットをスケーリングすることもできます。 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - コンピュートマシンセットをスケールアップまたはスケールダウンできます。新規マシンが利用可能になるまで数分の時間がかかります。 重要- デフォルトでは、マシンコントローラーは、成功するまでマシンによってサポートされるノードをドレイン (解放) しようとします。Pod 中断バジェットの設定が間違っているなど、状況によっては、ドレイン操作が成功しない可能性があります。排水操作が失敗した場合、マシンコントローラーはマシンの取り外しを続行できません。 - 特定のマシンの - machine.openshift.io/exclude-node-drainingにアノテーションを付けると、ノードのドレイン (解放) を省略できます。
検証
- 目的のマシンの削除を確認します。 - oc get machines - $ oc get machines- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
5.3.3. マシンセットの削除ポリシー
					Random、Newest、および Oldest は 3 つのサポートされる削除オプションです。デフォルトは Random であり、これはマシンセットのスケールダウン時にランダムマシンが選択され、削除されることを意味します。削除ポリシーは、特定のマシンセットを変更し、ユースケースに基づいて設定できます。
				
spec: deletePolicy: <delete_policy> replicas: <desired_replica_count>
spec:
  deletePolicy: <delete_policy>
  replicas: <desired_replica_count>
					削除についての特定のマシンの優先順位は、削除ポリシーに関係なく、関連するマシンにアノテーション machine.openshift.io/cluster-api-delete-machine=true を追加して設定できます。
				
						デフォルトで、OpenShift Container Platform ルーター Pod はワーカーにデプロイされます。ルーターは Web コンソールなどの一部のクラスターリソースにアクセスすることが必要であるため、 ルーター Pod をまず再配置しない限り、ワーカーのマシンセットを 0 にスケーリングできません。
					
カスタムのマシンセットは、サービスを特定のノードサービスで実行し、それらのサービスがワーカーのマシンセットのスケールダウン時にコントローラーによって無視されるようにする必要があるユースケースで使用できます。これにより、サービスの中断が回避されます。
5.3.4. クラスタースコープのデフォルトノードセレクターの作成
クラスター内の作成されたすべての Pod を特定のノードに制限するために、デフォルトのクラスタースコープのノードセレクターをノード上のラベルと共に Pod で使用することができます。
クラスタースコープのノードセレクターを使用する場合、クラスターで Pod を作成すると、OpenShift Container Platform はデフォルトのノードセレクターを Pod に追加し、一致するラベルのあるノードで Pod をスケジュールします。
スケジューラー Operator カスタムリソース (CR) を編集して、クラスタースコープのノードセレクターを設定します。ラベルをノード、マシンセット、またはマシン設定に追加します。マシンセットにラベルを追加すると、ノードまたはマシンが停止した場合に、新規ノードにそのラベルが追加されます。ノードまたはマシン設定に追加されるラベルは、ノードまたはマシンが停止すると維持されません。
Pod にキーと値のペアを追加できます。ただし、デフォルトキーの異なる値を追加することはできません。
手順
デフォルトのクラスタースコープのセレクターを追加するには、以下を実行します。
- スケジューラー Operator CR を編集して、デフォルトのクラスタースコープのノードクラスターを追加します。 - oc edit scheduler cluster - $ oc edit scheduler cluster- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - ノードセレクターを含むスケジューラー Operator CR のサンプル - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- 適切な<key>:<value>ペアが設定されたノードセレクターを追加します。
 - この変更を加えた後に、 - openshift-kube-apiserverプロジェクトの Pod の再デプロイを待機します。これには数分の時間がかかる場合があります。デフォルトのクラスター全体のノードセレクターは、Pod の再起動まで有効になりません。
- マシンセットを使用するか、ノードを直接編集してラベルをノードに追加します。 - マシンセットを使用して、ノードの作成時にマシンセットによって管理されるノードにラベルを追加します。 - 以下のコマンドを実行してラベルを - MachineSetオブジェクトに追加します。- oc patch MachineSet <name> --type='json' -p='[{"op":"add","path":"/spec/template/spec/metadata/labels", "value":{"<key>"="<value>","<key>"="<value>"}}]' -n openshift-machine-api- $ oc patch MachineSet <name> --type='json' -p='[{"op":"add","path":"/spec/template/spec/metadata/labels", "value":{"<key>"="<value>","<key>"="<value>"}}]' -n openshift-machine-api- 1 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- それぞれのラベルに<key> /<value>ペアを追加します。
 - 以下に例を示します。 - oc patch MachineSet ci-ln-l8nry52-f76d1-hl7m7-worker-c --type='json' -p='[{"op":"add","path":"/spec/template/spec/metadata/labels", "value":{"type":"user-node","region":"east"}}]' -n openshift-machine-api- $ oc patch MachineSet ci-ln-l8nry52-f76d1-hl7m7-worker-c --type='json' -p='[{"op":"add","path":"/spec/template/spec/metadata/labels", "value":{"type":"user-node","region":"east"}}]' -n openshift-machine-api- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow ヒント- あるいは、以下の YAML を適用してマシンセットにラベルを追加することもできます。 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- oc editコマンドを使用して、ラベルが- MachineSetオブジェクトに追加されていることを確認します。- 以下に例を示します。 - oc edit MachineSet abc612-msrtw-worker-us-east-1c -n openshift-machine-api - $ oc edit MachineSet abc612-msrtw-worker-us-east-1c -n openshift-machine-api- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - MachineSetオブジェクトの例- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 0にスケールダウンし、ノードをスケールアップして、そのマシンセットに関連付けられたノードを再デプロイします。- 以下に例を示します。 - oc scale --replicas=0 MachineSet ci-ln-l8nry52-f76d1-hl7m7-worker-c -n openshift-machine-api - $ oc scale --replicas=0 MachineSet ci-ln-l8nry52-f76d1-hl7m7-worker-c -n openshift-machine-api- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - oc scale --replicas=1 MachineSet ci-ln-l8nry52-f76d1-hl7m7-worker-c -n openshift-machine-api - $ oc scale --replicas=1 MachineSet ci-ln-l8nry52-f76d1-hl7m7-worker-c -n openshift-machine-api- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- ノードの準備ができ、利用可能な状態になったら、 - oc getコマンドを使用してラベルがノードに追加されていることを確認します。- oc get nodes -l <key>=<value> - $ oc get nodes -l <key>=<value>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 以下に例を示します。 - oc get nodes -l type=user-node - $ oc get nodes -l type=user-node- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 出力例 - NAME STATUS ROLES AGE VERSION ci-ln-l8nry52-f76d1-hl7m7-worker-c-vmqzp Ready worker 61s v1.23.0 - NAME STATUS ROLES AGE VERSION ci-ln-l8nry52-f76d1-hl7m7-worker-c-vmqzp Ready worker 61s v1.23.0- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
 
- ラベルをノードに直接追加します。 - ノードの - Nodeオブジェクトを編集します。- oc label nodes <name> <key>=<value> - $ oc label nodes <name> <key>=<value>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - たとえば、ノードにラベルを付けるには、以下を実行します。 - oc label nodes ci-ln-l8nry52-f76d1-hl7m7-worker-b-tgq49 type=user-node region=east - $ oc label nodes ci-ln-l8nry52-f76d1-hl7m7-worker-b-tgq49 type=user-node region=east- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow ヒント- あるいは、以下の YAML を適用してノードにラベルを追加することもできます。 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- oc getコマンドを使用して、ラベルがノードに追加されていることを確認します。- oc get nodes -l <key>=<value>,<key>=<value> - $ oc get nodes -l <key>=<value>,<key>=<value>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 以下に例を示します。 - oc get nodes -l type=user-node,region=east - $ oc get nodes -l type=user-node,region=east- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 出力例 - NAME STATUS ROLES AGE VERSION ci-ln-l8nry52-f76d1-hl7m7-worker-b-tgq49 Ready worker 17m v1.23.0 - NAME STATUS ROLES AGE VERSION ci-ln-l8nry52-f76d1-hl7m7-worker-b-tgq49 Ready worker 17m v1.23.0- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow