2.2.3. ノードラベル
ラベルは、Node
オブジェクトに適用されるキーと値のペアです。ラベルを使用して一連のオブジェクトを整理し、Pod のスケジューリングを制御できます。
クラスターの作成中または後にラベルを追加できます。ラベルはいつでも変更または更新できます。
関連情報
- ラベルの詳細は、Kubernetes ラベルおよびセレクターの概要 を参照してください。
2.2.3.1. ノードラベルのマシンプールへの追加
いつでもコンピュート (ワーカーとも呼ばれる) ノードのラベルを追加または編集して、適切な方法でノードを管理します。たとえば、ワークロードのタイプを特定のノードに割り当てることができます。
ラベルは key-value ペアとして割り当てられます。各キーは、割り当てられたオブジェクトに固有のものである必要があります。
前提条件
-
ワークステーションに最新の AWS (
aws
)、ROSA (rosa
)、OpenShift (oc
) の CLI をインストールして設定している。 -
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
- 出力内のマシンプールにラベルが含まれていることを確認します。