2.2. コンピュートノードの管理
本書では、Red Hat OpenShift Service on AWS (ROSA) でコンピュート (ワーカーとも呼ばれる) ノードを管理する方法について説明します。
コンピュートノードの変更の大半は、マシンプールで設定されます。マシンプール は、管理を容易にするために、同じ設定を持つクラスター内のコンピュートノードのグループです。
スケーリング、ノードラベルの追加、テイントの追加などのマシンプール設定オプションを編集できます。
2.2.1. マシンセットの作成
デフォルトのマシンプールは、Red Hat OpenShift Service on AWS (ROSA) クラスターのインストール時に作成されます。インストール後に、OpenShift Cluster Manager または ROSA CLI (rosa) を使用して、クラスターの追加のマシンプールを作成できます。
2.2.1.1. OpenShift Cluster Manager を使用したマシンプールの作成
OpenShift Cluster Manager を使用して、Red Hat OpenShift Service on AWS (ROSA) クラスターに追加のマシンプールを作成できます。
前提条件
- ROSA クラスターを作成している。
手順
- OpenShift Cluster Manager Hybrid Cloud Console に移動し、クラスターを選択します。
- Machine pools タブで、Add machine pool をクリックします。
- マシンプール名 を追加します。
ドロップダウンメニューから Worker node instance type を選択します。インスタンスタイプは、マシンプール内の各コンピュートノードの仮想 CPU およびメモリー割り当てを定義します。
注記プールを作成した後に、マシンプールのインスタンスタイプを変更することはできません。
オプション: マシンプールの自動スケーリングを設定します。
- Enable autoscaling を選択し、デプロイメントのニーズを満たすためにマシンプール内のマシン数を自動的にスケーリングします。
自動スケーリングの最小および最大のノード数制限を設定します。Cluster Autoscaler は、指定する制限を超えてマシンプールノード数を減らしたり、増やしたりできません。
- 単一アベイラビリティーゾーンを使用してクラスターをデプロイした場合は、最小および最大のノード数 を設定します。これは、アベイラビリティーゾーンのコンピュートノードの最小および最大の制限を定義します。
複数のアベイラビリティーゾーンを使用してクラスターをデプロイした場合は、Minimum nodes per zone および Maximum nodes per zone を設定します。これは、ゾーンごとの最小および最大のコンピュート制限を定義します。
注記または、マシンプールの作成後にマシンプールの自動スケーリングを設定できます。
自動スケーリングを有効にしていない場合は、コンピュートノードの数を選択します。
- 単一アベイラビリティーゾーンを使用してクラスターをデプロイした場合は、ドロップダウンメニューから ワーカーノード数 を選択します。これは、ゾーンのマシンプールにプロビジョニングするコンピュートノードの数を定義します。
- 複数のアベイラビリティーゾーンを使用してクラスターをデプロイした場合は、ドロップダウンメニューから ワーカーノードの数 (ゾーンごと) を選択します。これは、ゾーンごとにマシンプールにプロビジョニングするコンピュートノードの数を定義します。
オプション: マシンプールのノードラベルおよびテイントを追加します。
- Edit node labels and taints メニューを展開します。
- Node labels で、ノードラベルの Key および Value のエントリーを追加します。
- Taints で、テイントの Key および Value エントリーを追加します。
テイントごとに、ドロップダウンメニューから Effect を選択します。使用できるオプションには、
NoSchedule、PreferNoSchedule、およびNoExecuteが含まれます。注記または、マシンプールの作成後にノードラベルおよびテイントを追加できます。
オプション: マシンプールを保証なしの AWS Spot インスタンスとしてデプロイするように設定するには、Amazon EC2 Spot インスタンスを使用します。
- Use Amazon EC2 Spot Instances を選択します。
オンデマンドのインスタンス価格を使用するには、Use On-Demand instance price を選択したままにします。または、Set maximum price を選択して、Spot インスタンスの 1 時間ごとの最大価格を定義します。
Amazon EC2 Spot インスタンスの詳細は、AWS のドキュメント を参照してください。
重要Amazon EC2 Spot インスタンスはいつでも中断する可能性があります。Amazon EC2 Spot インスタンスは、中断に対応できるワークロードにのみ使用します。
注記マシンプールに Use Amazon EC2 Spot Instances を選択すると、マシンプールの作成後にオプションを無効にすることはできません。
- Add machine pool をクリックしてマシンプールを作成します。
検証
- マシンプールが Machine pools ページに表示され、設定が想定どおりに表示されていることを確認します。
2.2.1.2. ROSA CLI を使用したマシンプールの作成
ROSA CLI (rosa) を使用して、Red Hat OpenShift Service on AWS (ROSA) クラスターの追加のマシンプールを作成できます。
前提条件
-
最新の Red Hat OpenShift Service on AWS (ROSA) CLI、
rosaをワークステーションにインストールし、設定している。 - ROSA CLI を使用して Red Hat アカウントにログインしている。
- ROSA クラスターを作成している。
手順
自動スケーリングを使用しないマシンプールを追加するには、マシンプールを作成し、インスタンスタイプ、コンピュート (ワーカーとも呼ばれる) ノード数、およびノードラベルを定義します。
$ rosa create machinepool --cluster=<cluster-name> \ --name=<machine_pool_id> \ 1 --replicas=<replica_count> \ 2 --instance-type=<instance_type> \ 3 --labels=<key>=<value>,<key>=<value> \ 4 --taints=<key>=<value>:<effect>,<key>=<value>:<effect> \ 5 --use-spot-instances \ 6 --spot-max-price=0.5 7- 1
- マシンプールの名前を指定します。
<machine_pool_id>をマシンプールの名前に置き換えます。 - 2
- プロビジョニングするコンピュートノードの数を指定します。単一アベイラビリティーゾーンを使用して ROSA をデプロイしている場合は、ゾーンのマシンプールにプロビジョニングするコンピュートノードの数を定義します。複数のアベイラビリティーゾーンを使用してクラスターをデプロイしている場合は、全ゾーンでプロビジョニングするコンピュートノードの数を定義し、その数は 3 の倍数である必要があります。
--replicas引数は、自動スケーリングが設定されていない場合に必要です。 - 3
- オプション: マシンプールのコンピュートノードのインスタンスタイプを設定します。インスタンスタイプは、プール内の各コンピュートノードの仮想 CPU およびメモリー割り当てを定義します。
<instance_type>をインスタンスタイプに置き換えます。デフォルトはm5.xlargeです。プールを作成した後に、マシンプールのインスタンスタイプを変更することはできません。 - 4
- オプション: マシンプールのラベルを定義します。
<key>=<value>,<key>=<value>は、キーと値のペアのコンマ区切りリストに置き換えます (例:--labels=key1=value1,key2=value2)。 - 5
- オプション: マシンプールのテイントを定義します。
<key>=<value>:<effect>,<key>=<value>:<effect>は、各テイントのキー、値、および影響に置き換えます (例:--taints=key1=value1:NoSchedule,key2=value2:NoExecute)。利用可能な影響には、NoSchedule、PreferNoSchedule、およびNoExecuteが含まれます。 - 6
- オプション: マシンプールは、保証なしの AWS Spot インスタンスとしてデプロイするように設定します。詳細は、AWS ドキュメントの Amazon EC2 Spot Instances を参照してください。マシンプールに Use Amazon EC2 Spot Instances を選択すると、マシンプールの作成後にオプションを無効にすることはできません。
- 7
- オプション: Spot インスタンスを使用する場合は、この引数を指定して Spot インスタンスの 1 時間ごとの最大価格を定義できます。この引数が指定されていない場合は、オンデマンドの価格が使用されます。
重要Amazon EC2 Spot インスタンスはいつでも中断する可能性があります。Amazon EC2 Spot インスタンスは、中断に対応できるワークロードにのみ使用します。
以下の例では、
m5.xlargeインスタンスタイプを使用し、コンピュートノードレプリカが 2 つ含まれるmymachinepoolという名前のマシンプールを作成します。この例では、ワークロード固有のラベルも 2 つ追加します。$ rosa create machinepool --cluster=mycluster --name=mymachinepool --replicas=2 --instance-type=m5.xlarge --labels=app=db,tier=backend
出力例
I: Machine pool 'mymachinepool' created successfully on cluster 'mycluster' I: To view all machine pools, run 'rosa list machinepools -c mycluster'
自動スケーリングを使用するマシンプールを追加するには、マシンプールを作成して、自動スケーリング設定、インスタンスタイプ、およびノードラベルを定義します。
$ rosa create machinepool --cluster=<cluster-name> \ --name=<machine_pool_id> \ 1 --enable-autoscaling \ 2 --min-replicas=<minimum_replica_count> \ 3 --max-replicas=<maximum_replica_count> \ 4 --instance-type=<instance_type> \ 5 --labels=<key>=<value>,<key>=<value> \ 6 --taints=<key>=<value>:<effect>,<key>=<value>:<effect> \ 7 --use-spot-instances \ 8 --spot-max-price=0.5 9- 1
- マシンプールの名前を指定します。
<machine_pool_id>をマシンプールの名前に置き換えます。 - 2
- マシンプールの自動スケーリングを有効にし、デプロイメントのニーズに対応します。
- 3 4
- コンピュートノードの最小および最大の制限を定義します。Cluster Autoscaler は、指定する制限を超えてマシンプールノード数を減らしたり、増やしたりできません。単一アベイラビリティーゾーンを使用して ROSA をデプロイしている場合、
--min-replicas引数および--max-replicas引数は、ゾーンのマシンプールに自動スケーリング制限を定義します。複数のアベイラビリティーゾーンを使用してクラスターをデプロイしている場合に、すべてのゾーンにおける自動スケーリングの制限を引数で定義し、その数は 3 の倍数である必要があります。 - 5
- オプション: マシンプールのコンピュートノードのインスタンスタイプを設定します。インスタンスタイプは、プール内の各コンピュートノードの仮想 CPU およびメモリー割り当てを定義します。
<instance_type>をインスタンスタイプに置き換えます。デフォルトはm5.xlargeです。プールを作成した後に、マシンプールのインスタンスタイプを変更することはできません。 - 6
- オプション: マシンプールのラベルを定義します。
<key>=<value>,<key>=<value>は、キーと値のペアのコンマ区切りリストに置き換えます (例:--labels=key1=value1,key2=value2)。 - 7
- オプション: マシンプールのテイントを定義します。
<key>=<value>:<effect>,<key>=<value>:<effect>は、各テイントのキー、値、および影響に置き換えます (例:--taints=key1=value1:NoSchedule,key2=value2:NoExecute)。利用可能な影響には、NoSchedule、PreferNoSchedule、およびNoExecuteが含まれます。 - 8
- オプション: マシンプールは、保証なしの AWS Spot インスタンスとしてデプロイするように設定します。詳細は、AWS ドキュメントの Amazon EC2 Spot Instances を参照してください。マシンプールに Use Amazon EC2 Spot Instances を選択すると、マシンプールの作成後にオプションを無効にすることはできません。
- 9
- オプション: Spot インスタンスを使用する場合は、この引数を指定して Spot インスタンスの 1 時間ごとの最大価格を定義できます。この引数が指定されていない場合は、オンデマンドの価格が使用されます。
重要Amazon EC2 Spot インスタンスはいつでも中断する可能性があります。Amazon EC2 Spot インスタンスは、中断に対応できるワークロードにのみ使用します。
以下の例では、
m5.xlargeインスタンスタイプを使用し、自動スケーリングが有効になっているmymachinepoolという名前のマシンプールを作成します。コンピュートノードの最小制限は 3 で、最大制限は全体で 6 です。この例では、ワークロード固有のラベルも 2 つ追加します。$ rosa create machinepool --cluster=mycluster --name=mymachinepool --enable-autoscaling --min-replicas=3 --max-replicas=6 --instance-type=m5.xlarge --labels=app=db,tier=backend
出力例
I: Machine pool 'mymachinepool' created successfully on cluster 'mycluster' I: To view all machine pools, run 'rosa list machinepools -c mycluster'
検証
クラスターで利用可能なマシンプールを一覧表示します。
$ rosa list machinepools --cluster=<cluster_name>
出力例
ID AUTOSCALING REPLICAS INSTANCE TYPE LABELS TAINTS AVAILABILITY ZONES SPOT INSTANCES Default No 3 m5.xlarge us-east-1a, us-east-1b, us-east-1c N/A mymachinepool Yes 3-6 m5.xlarge app=db, tier=backend us-east-1a, us-east-1b, us-east-1c No
- マシンプールが出力に含まれ、設定が想定どおりであることを確認します。
関連情報
-
rosa create machinepoolサブコマンドで利用可能な引数の詳細な一覧は、rosa CLI を使用したオブジェクトの管理 を参照してください。
2.2.2. マシンプールの削除
ワークロード要件が変更され、現在のマシンプールがニーズを満たさなくなった場合は、マシンプールを削除できます。
マシンプールは、Openshift Cluster Manager または ROSA CLI (rosa) を使用して削除できます。
デフォルトのマシンプールは削除できません。
2.2.2.1. OpenShift Cluster Manager を使用したマシンプールの作成
OpenShift Cluster Manager を使用して、Red Hat OpenShift Service on AWS (ROSA) クラスターのマシンプールを削除できます。
前提条件
- ROSA クラスターを作成している。
- クラスターが準備状態にある。
- テイントのない既存のマシンプールがあり、シングル AZ クラスターの場合は少なくとも 2 つのインスタンス、マルチ AZ クラスターの場合は少なくとも 3 つのインスタンスがある。
手順
- OpenShift Cluster Manager Hybrid Cloud Console から、Clusters ページに移動し、削除するマシンプールを含むクラスターを選択します。
- 選択したクラスターで、Machine pools タブを選択します。
-
Machine pools タブで、削除するマシンプールのオプションメニュー
をクリックします。
- 削除をクリックします。
選択したマシンプールが削除されます。
2.2.2.2. ROSA CLI を使用したマシンプールの削除
ROSA CLI を使用して、Red Hat OpenShift Service on AWS (ROSA) クラスターのマシンプールを削除できます。
前提条件
- ROSA クラスターを作成している。
- クラスターが準備状態にある。
- テイントのない既存のマシンプールがあり、シングル AZ クラスターの場合は少なくとも 2 つのインスタンス、マルチ AZ クラスターの場合は少なくとも 3 つのインスタンスがある。
手順
ROSA CLI から次のコマンドを実行します。
$ rosa delete machinepool -c=<cluster_name> <machine_pool_ID>
出力例
? Are you sure you want to delete machine pool <machine_pool_ID> on cluster <cluster_name>? (y/N)
y を入力してマシンプールを削除します。
選択したマシンプールが削除されます。
2.2.3. コンピュートノードの手動によるスケーリング
マシンプールの自動スケーリングを有効にしていない場合は、デプロイメントのニーズに合わせてプール内のコンピュート (ワーカーとも呼ばれる) ノードの数を手動でスケーリングできます。
各マシンプールを個別にスケーリングする必要があります。
前提条件
-
最新の Red Hat OpenShift Service on AWS (ROSA) CLI、
rosaをワークステーションにインストールし、設定している。 - ROSA CLI を使用して Red Hat アカウントにログインしている。
- Red Hat OpenShift Service on AWS (ROSA) クラスターを作成している。
- 既存のマシンプールがある。
手順
クラスターのマシンプールを一覧表示します。
$ rosa list machinepools --cluster=<cluster_name>
出力例
ID AUTOSCALING REPLICAS INSTANCE TYPE LABELS TAINTS AVAILABILITY ZONES default No 2 m5.xlarge us-east-1a mp1 No 2 m5.xlarge us-east-1a
マシンプール内のコンピュートノードのレプリカ数を増減します。
$ rosa edit machinepool --cluster=<cluster_name> \ --replicas=<replica_count> \ 1 <machine_pool_id> 2
検証
クラスターで利用可能なマシンプールを一覧表示します。
$ rosa list machinepools --cluster=<cluster_name>
出力例
ID AUTOSCALING REPLICAS INSTANCE TYPE LABELS TAINTS AVAILABILITY ZONES default No 2 m5.xlarge us-east-1a mp1 No 3 m5.xlarge us-east-1a
-
上記のコマンドの出力で、コンピュートノードのレプリカ数がマシンプールで想定通りに設定されていることを確認します。この出力例では、
mp1マシンプールのコンピュートノードレプリカ数は 3 にスケーリングされています。
2.2.4. ノードラベル
ラベルは、Node オブジェクトに適用されるキーと値のペアです。ラベルを使用して一連のオブジェクトを整理し、Pod のスケジューリングを制御できます。
クラスターの作成中または後にラベルを追加できます。ラベルはいつでも変更または更新できます。
関連情報
- ラベルの詳細は、Kubernetes ラベルおよびセレクターの概要 を参照してください。
2.2.4.1. ノードラベルのマシンプールへの追加
いつでもコンピュート (ワーカーとも呼ばれる) ノードのラベルを追加または編集して、適切な方法でノードを管理します。たとえば、ワークロードのタイプを特定のノードに割り当てることができます。
ラベルは key-value ペアとして割り当てられます。各キーは、割り当てられたオブジェクトに固有のものである必要があります。
前提条件
-
最新の Red Hat OpenShift Service on AWS (ROSA) CLI、
rosaをワークステーションにインストールし、設定している。 - ROSA CLI を使用して Red Hat アカウントにログインしている。
- Red Hat OpenShift Service on AWS (ROSA) クラスターを作成している。
- 既存のマシンプールがある。
手順
クラスターのマシンプールを一覧表示します。
$ rosa list machinepools --cluster=<cluster_name>
出力例
ID AUTOSCALING REPLICAS INSTANCE TYPE LABELS TAINTS AVAILABILITY ZONES SPOT INSTANCES Default No 2 m5.xlarge us-east-1a N/A db-nodes-mp No 2 m5.xlarge us-east-1a No
マシンプールのノードラベルを追加または更新します。
自動スケーリングを使用しないマシンプールのノードラベルを追加または更新するには、以下のコマンドを実行します。
$ rosa edit machinepool --cluster=<cluster_name> \ --replicas=<replica_count> \ 1 --labels=<key>=<value>,<key>=<value> \ 2 <machine_pool_id>- 1
- 自動スケーリングを使用しないマシンプールの場合は、ノードラベルの追加時にレプリカ数を指定する必要があります。
--replicas引数を指定しないと、コマンドが完了する前にレプリカ数の入力を求めるプロンプトが出されます。単一アベイラビリティーゾーンを使用して Red Hat OpenShift Service on AWS (ROSA) をデプロイしている場合、レプリカ数はゾーンのマシンプールにプロビジョニングするコンピュートノードの数を定義します。複数のアベイラビリティーゾーンを使用してクラスターをデプロイしている場合は、すべてのゾーンでマシンプール内のコンピュートノードの合計数を定義し、その数は 3 の倍数である必要があります。 - 2
<key>=<value>,<key>=<value>は、キーと値のペアのコンマ区切りリストに置き換えます (例:--labels=key1=value1,key2=value2)。この一覧は、継続的にノードラベルに加えられるすべての変更を上書きします。
以下の例では、ラベルを
db-nodes-mpマシンプールに追加します。$ rosa edit machinepool --cluster=mycluster --replicas=2 --labels=app=db,tier=backend db-nodes-mp
出力例
I: Updated machine pool 'db-nodes-mp' on cluster 'mycluster'
自動スケーリングを使用するマシンプールのノードラベルを追加または更新するには、以下のコマンドを実行します。
$ rosa edit machinepool --cluster=<cluster_name> \ --min-replicas=<minimum_replica_count> \ 1 --max-replicas=<maximum_replica_count> \ 2 --labels=<key>=<value>,<key>=<value> \ 3 <machine_pool_id>- 1 2
- 自動スケーリングを使用するマシンプールの場合は、最小および最大のコンピュートノードレプリカ制限を指定する必要があります。引数を指定しないと、コマンドが完了する前に値の入力が求められます。Cluster Autoscaler は、指定する制限を超えてマシンプールノード数を減らしたり、増やしたりできません。単一アベイラビリティーゾーンを使用して ROSA をデプロイしている場合、
--min-replicas引数および--max-replicas引数は、ゾーンのマシンプールに自動スケーリング制限を定義します。複数のアベイラビリティーゾーンを使用してクラスターをデプロイしている場合に、すべてのゾーンにおける自動スケーリングの制限を引数で定義し、その数は 3 の倍数である必要があります。 - 3
<key>=<value>,<key>=<value>は、キーと値のペアのコンマ区切りリストに置き換えます (例:--labels=key1=value1,key2=value2)。この一覧は、継続的にノードラベルに加えられるすべての変更を上書きします。
以下の例では、ラベルを
db-nodes-mpマシンプールに追加します。$ rosa edit machinepool --cluster=mycluster --min-replicas=2 --max-replicas=3 --labels=app=db,tier=backend db-nodes-mp
出力例
I: Updated machine pool 'db-nodes-mp' on cluster 'mycluster'
検証
クラスターで利用可能なマシンプールを一覧表示します。
$ rosa list machinepools --cluster=<cluster_name>
出力例
ID AUTOSCALING REPLICAS INSTANCE TYPE LABELS TAINTS AVAILABILITY ZONES SPOT INSTANCES Default No 2 m5.xlarge us-east-1a N/A db-nodes-mp No 2 m5.xlarge app=db, tier=backend us-east-1a No
- 出力内のマシンプールにラベルが含まれていることを確認します。
2.2.5. マシンプールへのテイントの追加
マシンプールにコンピュート (ワーカーとも呼ばれる) ノードにテイントを追加して、そのノードにスケジュールされる Pod を制御できます。テイントをマシンプールに適用すると、Pod 仕様にテイントの容認が含まれない限り、スケジューラーは Pod をプールに配置できません。テイントは、OpenShift Cluster Manager または Red Hat OpenShift Service on AWS (ROSA) CLI、rosa を使用してマシンプールに追加できます。
クラスターにはテイントを含まないマシンプールが少なくとも 1 つ必要です。
2.2.5.1. Openshift Cluster Manager を使用したマシンプールへのテイントの追加
OpenShift Cluster Manager を使用して、Red Hat OpenShift Service on AWS (ROSA) クラスターのマシンプールにテイントを追加できます。
前提条件
- Red Hat OpenShift Service on AWS (ROSA) クラスターを作成している。
- テイントを含まず、少なくとも 2 つのインスタンスを含む既存のマシンプールがある。
手順
- OpenShift Cluster Manager Hybrid Cloud Console に移動し、クラスターを選択します。
-
Machine pools タブで、テイントを追加するマシンプールのオプションメニュー
をクリックします。
- Edit taints を選択します。
- テイントのKey と Value のエントリーを追加します。
-
ドロップダウンメニューからテイントの Effect を選択します。使用できるオプションには、
NoSchedule、PreferNoSchedule、およびNoExecuteが含まれます。 - 任意: マシンプールにテイントを追加する場合は、Add taint を選択します。
- Save をクリックして、テイントをマシンプールに適用します。
検証
- Machine pools タブで、マシンプールの横にある > を選択して、ビューを展開します。
- 展開されたビューの Taints の下にテイントがリストされていることを確認します。
2.2.5.2. ROSA CLI を使用したマシンプールへのテイントの追加
ROSA CLI を使用して、Red Hat OpenShift Service on AWS (ROSA) クラスターのマシンプールにテイントを追加できます。
前提条件
-
ワークステーションに最新の AWS (
aws)、ROSA (rosa)、OpenShift (oc) の CLI をインストールして設定している。 -
rosaCLI を使用して Red Hat アカウントにログインしている。 - Red Hat OpenShift Service on AWS (ROSA) クラスターを作成している。
- テイントを含まず、少なくとも 2 つのインスタンスを含む既存のマシンプールがある。
手順
次のコマンドを実行して、クラスター内のマシンプールをリスト表示します。
$ rosa list machinepools --cluster=<cluster_name>
出力例
ID AUTOSCALING REPLICAS INSTANCE TYPE LABELS TAINTS AVAILABILITY ZONES SPOT INSTANCES Default No 2 m5.xlarge us-east-1a N/A db-nodes-mp No 2 m5.xlarge us-east-1a No
マシンプールのテイントを追加または更新します。
自動スケーリングを使用しないマシンプールのテイントを追加または更新するには、以下のコマンドを実行します。
$ rosa edit machinepool --cluster=<cluster_name> \ --replicas=<replica_count> \ 1 --taints=<key>=<value>:<effect>,<key>=<value>:<effect> \ 2 <machine_pool_id>- 1
- 自動スケーリングを使用しないマシンプールの場合は、テイントの追加時にレプリカ数を指定する必要があります。
--replicas引数を指定しないと、コマンドが完了する前にレプリカ数の入力を求めるプロンプトが出されます。単一アベイラビリティーゾーンを使用して Red Hat OpenShift Service on AWS (ROSA) をデプロイしている場合、レプリカ数はゾーンのマシンプールにプロビジョニングするコンピュートノードの数を定義します。複数のアベイラビリティーゾーンを使用してクラスターをデプロイしている場合は、すべてのゾーンでマシンプール内のコンピュートノードの合計数を定義し、その数は 3 の倍数である必要があります。 - 2
<key>=<value>:<effect>,<key>=<value>:<effect>は、各テイントのキー、値、および影響に置き換えます (例:--taints=key1=value1:NoSchedule,key2=value2:NoExecute)。影響としてNoSchedule、PreferNoSchedule、およびNoExecuteが使用できます。このリストは、ノードテイントに加えられた変更を継続的に上書きします。
以下の例では、テイントを
db-nodes-mpマシンプールに追加します。$ rosa edit machinepool --cluster=mycluster --replicas 2 --taints=key1=value1:NoSchedule,key2=value2:NoExecute db-nodes-mp
出力例
I: Updated machine pool 'db-nodes-mp' on cluster 'mycluster'
自動スケーリングを使用するマシンプールのテイントを追加または更新するには、以下のコマンドを実行します。
$ rosa edit machinepool --cluster=<cluster_name> \ --min-replicas=<minimum_replica_count> \ 1 --max-replicas=<maximum_replica_count> \ 2 --taints=<key>=<value>:<effect>,<key>=<value>:<effect> \ 3 <machine_pool_id>- 1 2
- 自動スケーリングを使用するマシンプールの場合は、最小および最大のコンピュートノードレプリカ制限を指定する必要があります。引数を指定しないと、コマンドが完了する前に値の入力が求められます。Cluster Autoscaler は、指定する制限を超えてマシンプールノード数を減らしたり、増やしたりできません。単一アベイラビリティーゾーンを使用して ROSA をデプロイしている場合、
--min-replicas引数および--max-replicas引数は、ゾーンのマシンプールに自動スケーリング制限を定義します。複数のアベイラビリティーゾーンを使用してクラスターをデプロイしている場合に、すべてのゾーンにおける自動スケーリングの制限を引数で定義し、その数は 3 の倍数である必要があります。 - 3
<key>=<value>:<effect>,<key>=<value>:<effect>は、各テイントのキー、値、および影響に置き換えます (例:--taints=key1=value1:NoSchedule,key2=value2:NoExecute)。利用可能な影響には、NoSchedule、PreferNoSchedule、およびNoExecuteが含まれます。このリストは、ノードのテイントに継続的に加えられた変更を上書きします。
以下の例では、テイントを
db-nodes-mpマシンプールに追加します。$ rosa edit machinepool --cluster=mycluster --min-replicas=2 --max-replicas=3 --taints=key1=value1:NoSchedule,key2=value2:NoExecute db-nodes-mp
出力例
I: Updated machine pool 'db-nodes-mp' on cluster 'mycluster'
検証
次のコマンドを実行して、クラスター内で使用可能なマシンプールをリスト表示します。
$ rosa list machinepools --cluster=<cluster_name>
出力例
ID AUTOSCALING REPLICAS INSTANCE TYPE LABELS TAINTS AVAILABILITY ZONES SPOT INSTANCES Default No 2 m5.xlarge us-east-1a N/A db-nodes-mp No 2 m5.xlarge key1=value1:NoSchedule, key2=value2:NoExecute us-east-1a No
- 出力にマシンプールのテイントが含まれていることを確認します。
2.2.6. マシンプールへのノードチューニングの追加
マシンプール内のコンピューティング (ワーカーとも呼ばれる) ノードのチューニングを追加して、その設定を制御できます。
前提条件
-
最新の Red Hat OpenShift Service on AWS (ROSA) CLI、
rosaをワークステーションにインストールし、設定している。 - ROSA CLI を使用して Red Hat アカウントにログインしている。
- ROSA クラスターを作成している。
- 既存のマシンプールがある。
- 既存のチューニング設定がある。
手順
クラスターのマシンプールを一覧表示します。
$ rosa list machinepools --cluster=<cluster_name>
出力例
ID AUTOSCALING REPLICAS INSTANCE TYPE LABELS TAINTS AVAILABILITY ZONES SUBNET VERSION AUTOREPAIR TUNING CONFIGS MESSAGE Default No 2 m5.xlarge us-east-1a N/A 4.12.14 Yes db-nodes-mp No 2 m5.xlarge us-east-1a No 4.12.14 Yes
既存または新規のマシンプールにチューニング設定を追加できます。
マシンプールの作成時にチューニングを追加します。
$ rosa create machinepool -c <cluster-name> <machinepoolname> --tuning-configs <tuning_config_name>
出力例
? Tuning configs: sample-tuning I: Machine pool 'db-nodes-mp' created successfully on hosted cluster 'sample-cluster' I: To view all machine pools, run 'rosa list machinepools -c sample-cluster'
マシンプールのチューニングを追加または更新します。
$ rosa edit machinepool -c <cluster-name> <machinepoolname> --tuning-configs <tuningconfigname>
出力例
I: Updated machine pool 'db-nodes-mp' on cluster 'mycluster'
検証
クラスターで利用可能なマシンプールを一覧表示します。
$ rosa list machinepools --cluster=<cluster_name>
出力例
ID AUTOSCALING REPLICAS INSTANCE TYPE LABELS TAINTS AVAILABILITY ZONES SUBNET VERSION AUTOREPAIR TUNING CONFIGS MESSAGE Default No 2 m5.xlarge us-east-1a N/A 4.12.14 Yes db-nodes-mp No 2 m5.xlarge us-east-1a No 4.12.14 Yes sample-tuning
- マシンプールのチューニング設定が出力に含まれていることを確認します。