4.2. コンピュートノードの管理


このドキュメントでは、Red Hat OpenShift Service on AWS (ROSA) でコンピュート (ワーカーとも呼ばれる) ノードを管理する方法を説明します。

コンピュートノードの変更の大半は、マシンプールで設定されます。マシンプールは、管理を容易にするために、同じ設定を持つクラスター内のコンピュートノードのグループです。

スケーリング、ノードラベルの追加、テイントの追加などのマシンプール設定オプションを編集できます。

4.2.1. マシンセットの作成

マシンプールは、Red Hat OpenShift Service on AWS (ROSA) クラスターのインストール時に作成されます。インストール後に、OpenShift Cluster Manager または ROSA CLI (rosa) を使用して、クラスターの追加のマシンプールを作成できます。

注記

ROSA CLI rosa バージョン 1.2.25 以前のバージョンのユーザーの場合、クラスターとともに作成されたマシンプールは Default として識別されます。ROSA CLI rosa バージョン 1.2.26 以降のユーザーの場合、クラスターとともに作成されたマシンプールは worker として識別されます。

4.2.1.1. OpenShift Cluster Manager を使用したマシンプールの作成

OpenShift Cluster Manager を使用して、Red Hat OpenShift Service on AWS (ROSA) クラスターに追加のマシンプールを作成できます。

前提条件

  • ROSA クラスターを作成している。

手順

  1. OpenShift Cluster Manager に移動し、クラスターを選択します。
  2. Machine pools タブで、Add machine pool をクリックします。
  3. マシンプール名 を追加します。
  4. ドロップダウンメニューから Compute node instance type を選択します。インスタンスタイプは、マシンプール内の各コンピュートノードの仮想 CPU およびメモリー割り当てを定義します。

    注記

    プールを作成した後に、マシンプールのインスタンスタイプを変更することはできません。

  5. オプション: マシンプールの自動スケーリングを設定します。

    1. Enable autoscaling を選択し、デプロイメントのニーズを満たすためにマシンプール内のマシン数を自動的にスケーリングします。
    2. 自動スケーリングの最小および最大のノード数制限を設定します。Cluster Autoscaler は、指定する制限を超えてマシンプールノード数を減らしたり、増やしたりできません。

      • 単一アベイラビリティーゾーンを使用してクラスターをデプロイした場合は、最小および最大のノード数 を設定します。これは、アベイラビリティーゾーンのコンピュートノードの最小および最大の制限を定義します。
      • 複数のアベイラビリティーゾーンを使用してクラスターをデプロイした場合は、Minimum nodes per zone および Maximum nodes per zone を設定します。これは、ゾーンごとの最小および最大のコンピュート制限を定義します。

        注記

        または、マシンプールの作成後にマシンプールの自動スケーリングを設定できます。

  6. 自動スケーリングを有効にしていない場合は、コンピュートノードの数を選択します。

    • 単一アベイラビリティーゾーンを使用してクラスターをデプロイした場合は、ドロップダウンメニューから コンピュートノード数 を選択します。これは、ゾーンのマシンプールにプロビジョニングするコンピュートノードの数を定義します。
    • 複数のアベイラビリティーゾーンを使用してクラスターをデプロイした場合は、ドロップダウンメニューから コンピュートノードの数 (ゾーンごと) を選択します。これは、ゾーンごとにマシンプールにプロビジョニングするコンピュートノードの数を定義します。
  7. オプション: ルートディスクのサイズ を設定します。
  8. オプション: マシンプールのノードラベルおよびテイントを追加します。

    1. Edit node labels and taints メニューをデプロイメントします。
    2. Node labels で、ノードラベルの Key および Value のエントリーを追加します。
    3. Taints で、テイントの Key および Value エントリーを追加します。

      注記

      テイントを含むマシンプールの作成は、クラスターにテイントのないマシンプールが少なくとも 1 つすでに存在する場合にのみ可能です。

    4. テイントごとに、ドロップダウンメニューから Effect を選択します。使用できるオプションには、NoSchedulePreferNoSchedule、および NoExecute が含まれます。

      注記

      または、マシンプールの作成後にノードラベルおよびテイントを追加できます。

  9. オプション: このマシンプール内のノードに使用する追加のカスタムセキュリティーグループを選択します。すでにセキュリティーグループを作成し、このクラスター用に選択した VPC にそのグループを関連付けている必要があります。マシンプールの作成後は、セキュリティーグループを追加または編集することはできません。詳細は、「関連情報」セクションのセキュリティーグループの要件を参照してください。
  10. オプション: マシンプールを保証なしの AWS Spot インスタンスとしてデプロイするように設定するには、Amazon EC2 Spot インスタンスを使用します。

    1. Use Amazon EC2 Spot Instances を選択します。
    2. オンデマンドのインスタンス価格を使用するには、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 を選択すると、マシンプールの作成後にオプションを無効にすることはできません。

  11. Add machine pool をクリックしてマシンプールを作成します。

検証

  • マシンプールが Machine pools ページに表示され、設定が想定どおりに表示されていることを確認します。

4.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 (rosa) を使用して Red Hat アカウントにログインしている。
  • ROSA クラスターを作成している。

手順

  • 自動スケーリングを使用しないマシンプールを追加するには、マシンプールを作成し、インスタンスタイプ、コンピュート (ワーカーとも呼ばれる) ノード数、およびノードラベルを定義します。

    $ rosa create machinepool --cluster=<cluster-name> \
                              --name=<machine_pool_id> \
                              --replicas=<replica_count> \
                              --instance-type=<instance_type> \
                              --labels=<key>=<value>,<key>=<value> \
                              --taints=<key>=<value>:<effect>,<key>=<value>:<effect> \
                              --use-spot-instances \
                              --spot-max-price=<price> \
                              --disk-size=<disk_size> \
                              --availability-zone=<availability_zone_name> \
                              --additional-security-group-ids <sec_group_id> \
                              --subnet <subnet_id>

    ここでは、以下のようになります。

    --name=<machine_pool_id>
    マシンプールの名前を指定します。
    --replicas=<replica_count>
    プロビジョニングするコンピュートノードの数を指定します。単一アベイラビリティーゾーンを使用して ROSA をデプロイしている場合は、ゾーンのマシンプールにプロビジョニングするコンピュートノードの数を定義します。複数のアベイラビリティーゾーンを使用してクラスターをデプロイしている場合は、全ゾーンでプロビジョニングするコンピュートノードの数を定義し、その数は 3 の倍数である必要があります。--replicas 引数は、自動スケーリングが設定されていない場合に必要です。
    --instance-type=<instance_type>
    オプション: マシンプールのコンピュートノードのインスタンスタイプを設定します。インスタンスタイプは、プール内の各コンピュートノードの仮想 CPU およびメモリー割り当てを定義します。<instance_type> をインスタンスタイプに置き換えます。デフォルトは m5.xlarge です。プールを作成した後に、マシンプールのインスタンスタイプを変更することはできません。
    --labels=<key>=<value>,<key>=<value>
    オプション: マシンプールのラベルを定義します。<key>=<value>,<key>=<value> は、キーと値のペアのコンマ区切りリストに置き換えます (例: --labels=key1=value1,key2=value2)。
    --taints=<key>=<value>:<effect>,<key>=<value>:<effect>
    オプション: マシンプールのテイントを定義します。<key>=<value>:<effect>,<key>=<value>:<effect> は、各テイントのキー、値、および影響に置き換えます (例: --taints=key1=value1:NoSchedule,key2=value2:NoExecute)。利用可能な影響には、NoSchedulePreferNoSchedule、および NoExecute が含まれます。
    --use-spot-instances
    オプション: マシンプールは、保証なしの AWS Spot インスタンスとしてデプロイするように設定します。詳細は、AWS ドキュメントの Amazon EC2 Spot Instances を参照してください。マシンプールに Use Amazon EC2 Spot Instances を選択すると、マシンプールの作成後にオプションを無効にすることはできません。
    --spot-max-price=<price>

    オプション: Spot インスタンスを使用する場合は、この引数を指定して Spot インスタンスの 1 時間ごとの最大価格を定義できます。この引数が指定されていない場合は、オンデマンドの価格が使用されます。

    重要

    Amazon EC2 Spot インスタンスはいつでも中断する可能性があります。Amazon EC2 Spot インスタンスは、中断に対応できるワークロードにのみ使用します。

    --disk-size=<disk_size>
    オプション: ワーカーノードのディスクサイズを指定します。値は GB、GiB、TB、または TiB 単位で指定できます。<disk_size> は、数値と単位に置き換えます (例: --disk-size=200GiB)。
    --availability-zone=<availability_zone_name>

    オプション: Multi-AZ クラスターの場合、選択した Single-AZ にマシンプールを作成できます。<availability_zone_name> は、Single-AZ 名に置き換えます。

    注記

    Multi-AZ クラスターは、Multi-AZ コントロールプレーンを保持し、Single-AZ または Multi-AZ 全体でワーカーマシンプールを持つことができます。マシンプールは、アベイラビリティーゾーン全体にマシン (ノード) を均等に分散します。

    警告

    Single-AZ のワーカーマシンプールを選択した場合、マシンレプリカの数に関係なく、そのマシンプールには耐障害性がありません。耐障害性のあるワーカーマシンプールの場合は、Multi-AZ マシンプールを選択すると、アベイラビリティーゾーン全体に 3 の倍数でマシンが分散されます。

    • 3 つのアベイラビリティーゾーンを持つマルチ AZ マシンプールは、3、6、9 など、3 の倍数でのみマシン数を指定できます。
    • アベイラビリティーゾーンが 1 つの Single-AZ マシンプールは、1、2、3、4 など、1 の倍数のマシン数を指定できます。
    --additional-security-group-ids <sec_group_id>
    オプション: Red Hat 管理の VPC がないクラスター内のマシンプールの場合、マシンプールで使用する追加のカスタムセキュリティーグループを選択できます。すでにセキュリティーグループを作成し、このクラスター用に選択した VPC にそのグループを関連付けている必要があります。マシンプールの作成後は、セキュリティーグループを追加または編集することはできません。詳細は、「関連情報」セクションのセキュリティーグループの要件を参照してください。
    --subnet <subnet_id>

    オプション: BYO VPC クラスターの場合、サブネットを選択してシングル AZ マシンプールを作成できます。サブネットがクラスター作成サブネットの外にある場合は、キーが kubernetes.io/cluster/<infra-id> で値が shared のタグが必要です。お客様は、次のコマンドを使用して Infra ID を取得できます。

    $ rosa describe cluster -c <cluster name>|grep "Infra ID:"

    出力例

    Infra ID:                   mycluster-xqvj7

    注記

    --subnet--availability-zone の両方を同時に設定できません。Single-AZ マシンプールの作成には 1 つだけが許可されます。

    以下の例では、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> \
                              --enable-autoscaling \
                              --min-replicas=<minimum_replica_count> \
                              --max-replicas=<maximum_replica_count> \
                              --instance-type=<instance_type> \
                              --labels=<key>=<value>,<key>=<value> \
                              --taints=<key>=<value>:<effect>,<key>=<value>:<effect> \
                              --availability-zone=<availability_zone_name> \
                              --use-spot-instances \
                              --spot-max-price=<price>

    ここでは、以下のようになります。

    --name=<machine_pool_id>
    マシンプールの名前を指定します。<machine_pool_id> をマシンプールの名前に置き換えます。
    --enable-autoscaling
    マシンプールの自動スケーリングを有効にし、デプロイメントのニーズに対応します。
    --min-replicas=<minimum_replica_count> および --max-replicas=<maximum_replica_count>

    コンピュートノードの最小および最大の制限を定義します。Cluster Autoscaler は、指定する制限を超えてマシンプールノード数を減らしたり、増やしたりできません。

    単一アベイラビリティーゾーンを使用して ROSA をデプロイしている場合、--min-replicas 引数および --max-replicas 引数は、ゾーンのマシンプールに自動スケーリング制限を定義します。複数のアベイラビリティーゾーンを使用してクラスターをデプロイしている場合に、すべてのゾーンにおける自動スケーリングの制限を引数で定義し、その数は 3 の倍数である必要があります。

    --instance-type=<instance_type>
    オプション: マシンプールのコンピュートノードのインスタンスタイプを設定します。インスタンスタイプは、プール内の各コンピュートノードの仮想 CPU およびメモリー割り当てを定義します。<instance_type> をインスタンスタイプに置き換えます。デフォルトは m5.xlarge です。プールを作成した後に、マシンプールのインスタンスタイプを変更することはできません。
    --labels=<key>=<value>,<key>=<value>
    オプション: マシンプールのラベルを定義します。<key>=<value>,<key>=<value> は、キーと値のペアのコンマ区切りリストに置き換えます (例: --labels=key1=value1,key2=value2)。
    --taints=<key>=<value>:<effect>,<key>=<value>:<effect>
    オプション: マシンプールのテイントを定義します。<key>=<value>:<effect>,<key>=<value>:<effect> は、各テイントのキー、値、および影響に置き換えます (例: --taints=key1=value1:NoSchedule,key2=value2:NoExecute)。利用可能な影響には、NoSchedulePreferNoSchedule、および NoExecute が含まれます。
    --availability-zone=<availability_zone_name>
    オプション: Multi-AZ クラスターの場合、選択した Single-AZ にマシンプールを作成できます。<availability_zone_name> は、Single-AZ 名に置き換えます。
    --use-spot-instances

    オプション: マシンプールは、保証なしの AWS Spot インスタンスとしてデプロイするように設定します。詳細は、AWS ドキュメントの Amazon EC2 Spot Instances を参照してください。マシンプールに Use Amazon EC2 Spot Instances を選択すると、マシンプールの作成後にオプションを無効にすることはできません。

    重要

    Amazon EC2 Spot インスタンスはいつでも中断する可能性があります。Amazon EC2 Spot インスタンスは、中断に対応できるワークロードにのみ使用します。

    --spot-max-price=<price>
    オプション: Spot インスタンスを使用する場合は、この引数を指定して Spot インスタンスの 1 時間ごとの最大価格を定義できます。この引数が指定されていない場合は、オンデマンドの価格が使用されます。

    以下の例では、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'

検証

クラスターのすべてのマシンプールをリストするか、個々のマシンプールの詳細情報を表示します。

  1. クラスターで使用可能なマシンプールをリスト表示します。

    $ 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

  2. クラスター内の特定のマシンプールの詳細情報を表示します。

    $ rosa describe machinepool --cluster=<cluster_name> --machinepool=mymachinepool

    出力例

    ID:                         mymachinepool
    Cluster ID:                 27iimopsg1mge0m81l0sqivkne2qu6dr
    Autoscaling:                Yes
    Replicas:                   3-6
    Instance type:              m5.xlarge
    Labels:                     app=db, tier=backend
    Taints:
    Availability zones:         us-east-1a, us-east-1b, us-east-1c
    Subnets:
    Spot instances:             No
    Disk size:                  300 GiB
    Security Group IDs:

  3. マシンプールが出力に含まれ、設定が想定どおりであることを確認します。

4.2.2. マシンプールディスクボリュームの設定

マシンプールのディスクボリュームサイズは、柔軟性を高めるために設定できます。デフォルトのディスクサイズは 300 GiB です。

Red Hat OpenShift Service on AWS (ROSA) (クラシックアーキテクチャー) クラスターバージョン 4.13 以前では、ディスクサイズは最小 128 GiB から最大 1 TiB まで設定できます。バージョン 4.14 以降では、ディスクサイズは最小 128 GiB から最大 16 TiB まで設定できます。

OpenShift Cluster Manager または ROSA CLI (rosa) を使用して、クラスターのマシンプールのディスクサイズを設定できます。

注記

既存のクラスターおよびマシンプールノードのボリュームのサイズは変更できません。

4.2.2.1. OpenShift Cluster Manager を使用したマシンプールのディスクボリュームの設定

クラスター作成の前提条件

  • クラスターのインストール中に、デフォルトのマシンプールのノードディスクサイズを選択するオプションがあります。

クラスター作成の手順

  1. ROSA クラスターウィザードから、Cluster settings に移動します。
  2. Machine pool の手順に移動します。
  3. 目的の Root disk size を選択します。
  4. Next を選択してクラスターの作成を続行します。

マシンプール作成の前提条件

  • クラスターのインストール後に、新しいマシンプールのノードディスクサイズを選択するオプションがあります。

マシンプール作成の手順

  1. OpenShift Cluster Manager に移動し、クラスターを選択します。
  2. Machine pool タブ に移動します。
  3. Add machine pool をクリックします。
  4. 目的の Root disk size を選択します。
  5. Add machine pool を選択してマシンプールを作成します。

4.2.2.2. ROSA CLI を使用したマシンプールディスクボリュームの設定

クラスター作成の前提条件

  • クラスターのインストール中に、デフォルトのマシンプールのルートディスクのサイズを選択するオプションがあります。

クラスター作成の手順

  • 必要なルートディスクサイズの OpenShift クラスターを作成するときに、次のコマンドを実行します。

    $ rosa create cluster --worker-disk-size=<disk_size>

    値は GB、GiB、TB、または TiB 単位で指定できます。<disk_size> は、数値と単位に置き換えます (例: --worker-disk-size=200GiB)。数字と単位は、分離できません。空白は、使用できます。

マシンプール作成の前提条件

  • クラスターのインストール後に、新しいマシンプールのルートディスクのサイジングを選択するオプションがあります。

マシンプール作成の手順

  1. 以下のコマンドを実行してクラスターをスケールアップします。

    $ rosa create machinepool --cluster=<cluster_id> \1
                              --disk-size=<disk_size> 2
    1
    既存の OpenShift クラスターの ID または名前を指定します。
    2
    ワーカーノードのディスクサイズを指定します。値は GB、GiB、TB、または TiB 単位で指定できます。<disk_size> は、数値と単位に置き換えます (例: --disk-size=200GiB)。数字と単位は、分離できません。空白は、使用できます。
  2. AWS コンソールにログインして新規のマシンプールのディスクサイズを確認し、EC2 仮想マシンのルートボリュームサイズを見つけます。

関連情報

4.2.3. マシンプールの削除

ワークロード要件が変更され、現在のマシンプールがニーズを満たさなくなった場合は、マシンプールを削除できます。

マシンプールは、Red Hat OpenShift Cluster Manager または ROSA CLI (rosa) を使用して削除できます。

4.2.3.1. OpenShift Cluster Manager を使用したマシンプールの削除

Red Hat OpenShift Cluster Manager を使用して、Red Hat OpenShift Service on AWS クラスターのマシンプールを削除できます。

前提条件

  • ROSA クラスターを作成している。
  • クラスターが準備状態にある。
  • テイントのない既存のマシンプールがあり、シングル AZ クラスターの場合は少なくとも 2 つのインスタンス、マルチ AZ クラスターの場合は少なくとも 3 つのインスタンスがある。

手順

  1. OpenShift Cluster Manager から、Cluster List ページに移動し、削除するマシンプールを含むクラスターを選択します。
  2. 選択したクラスターで、Machine pools タブを選択します。
  3. Machine pools タブで、削除するマシンプールのオプションメニュー kebab をクリックします。
  4. Delete をクリックします。

    選択したマシンプールが削除されます。

4.2.3.2. ROSA CLI を使用したマシンプールの削除

ROSA CLI を使用して、Red Hat OpenShift Service on AWS クラスターのマシンプールを削除できます。

注記

ROSA CLI rosa バージョン 1.2.25 以前のユーザーの場合、クラスターと一緒に作成されたマシンプール (ID='Default') は削除できません。ROSA CLI rosa バージョン 1.2.26 以降のユーザーの場合、クラスター内に taint を含まないマシンプールが 1 つあり、レプリカが 2 つ以上 (シングル AZ クラスターの場合) または 3 つ以上 (マルチ AZ クラスターの場合) あれば、クラスターと一緒に作成されたマシンプール (ID='worker') を削除できます。

前提条件

  • ROSA クラスターを作成している。
  • クラスターが準備状態にある。
  • テイントのない既存のマシンプールがあり、シングル AZ クラスターの場合は少なくとも 2 つのインスタンス、マルチ AZ クラスターの場合は少なくとも 3 つのインスタンスがある。

手順

  1. 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)

  2. y を入力してマシンプールを削除します。

    選択したマシンプールが削除されます。

4.2.4. コンピュートノードの手動によるスケーリング

マシンプールの自動スケーリングを有効にしていない場合は、デプロイメントのニーズに合わせてプール内のコンピュート (ワーカーとも呼ばれる) ノードの数を手動でスケーリングできます。

各マシンプールを個別にスケーリングする必要があります。

前提条件

  • 最新の Red Hat OpenShift Service on AWS (ROSA) CLI (rosa) をワークステーションにインストールして設定している。
  • ROSA CLI (rosa) を使用して Red Hat アカウントにログインしている。
  • Red Hat OpenShift Service on AWS (ROSA) クラスターを作成している。
  • 既存のマシンプールがある。

手順

  1. クラスターのマシンプールをリスト表示します。

    $ rosa list machinepools --cluster=<cluster_name>

    出力例

    ID        AUTOSCALING   REPLICAS    INSTANCE TYPE  LABELS    TAINTS   AVAILABILITY ZONES    DISK SIZE   SG IDs
    default   No            2           m5.xlarge                         us-east-1a            300GiB      sg-0e375ff0ec4a6cfa2
    mp1       No            2           m5.xlarge                         us-east-1a            300GiB      sg-0e375ff0ec4a6cfa2

  2. マシンプール内のコンピュートノードのレプリカ数を増減します。

    $ rosa edit machinepool --cluster=<cluster_name> \
                            --replicas=<replica_count> \1
                            <machine_pool_id> 2
    1
    単一のアベイラビリティーゾーンを使用して Red Hat OpenShift Service on AWS (ROSA) (クラシックアーキテクチャー) をデプロイした場合、レプリカ数によって、そのゾーンのマシンプールにプロビジョニングされるコンピュートノードの数が定義されます。複数のアベイラビリティーゾーンを使用してクラスターをデプロイしている場合は、すべてのゾーンでマシンプール内のコンピュートノードの合計数を定義し、その数は 3 の倍数である必要があります。
    2
    <machine_pool_id> を、前述のコマンドの出力に表示されているマシンプールの ID に置き換えます。

検証

  1. クラスターで利用可能なマシンプールをリスト表示します。

    $ rosa list machinepools --cluster=<cluster_name>

    出力例

    ID        AUTOSCALING   REPLICAS    INSTANCE TYPE  LABELS    TAINTS   AVAILABILITY ZONES    DISK SIZE   SG IDs
    default   No            2           m5.xlarge                         us-east-1a            300GiB      sg-0e375ff0ec4a6cfa2
    mp1       No            3           m5.xlarge                         us-east-1a            300GiB      sg-0e375ff0ec4a6cfa2

  2. 上記のコマンドの出力で、コンピュートノードのレプリカ数がマシンプールで想定通りに設定されていることを確認します。この出力例では、mp1 マシンプールのコンピュートノードレプリカ数は 3 にスケーリングされています。

4.2.5. ノードラベル

ラベルは、Node オブジェクトに適用されるキーと値のペアです。ラベルを使用して一連のオブジェクトを整理し、Pod のスケジューリングを制御できます。

クラスターの作成中または後にラベルを追加できます。ラベルはいつでも変更または更新できます。

関連情報

4.2.5.1. ノードラベルのマシンプールへの追加

いつでもコンピュート (ワーカーとも呼ばれる) ノードのラベルを追加または編集して、適切な方法でノードを管理します。たとえば、ワークロードのタイプを特定のノードに割り当てることができます。

ラベルは key-value ペアとして割り当てられます。各キーは、割り当てられたオブジェクトに固有のものである必要があります。

前提条件

  • 最新の Red Hat OpenShift Service on AWS (ROSA) CLI (rosa) をワークステーションにインストールして設定している。
  • ROSA CLI (rosa) を使用して Red Hat アカウントにログインしている。
  • Red Hat OpenShift Service on AWS (ROSA) クラスターを作成している。
  • 既存のマシンプールがある。

手順

  1. クラスターのマシンプールをリスト表示します。

    $ 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

  2. マシンプールのノードラベルを追加または更新します。

    • 自動スケーリングを使用しないマシンプールのノードラベルを追加または更新するには、以下のコマンドを実行します。

      $ 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'

検証

  1. 新しいラベルを持つマシンプールの詳細情報を表示します。

    $ rosa describe machinepool --cluster=<cluster_name> --machinepool=<machine-pool-name>

    出力例

    ID:                         db-nodes-mp
    Cluster ID:                 <ID_of_cluster>
    Autoscaling:                No
    Replicas:                   2
    Instance type:              m5.xlarge
    Labels:                     app=db, tier=backend
    Taints:
    Availability zones:         us-east-1a
    Subnets:
    Spot instances:             No
    Disk size:                  300 GiB
    Security Group IDs:

  2. 出力内のマシンプールにラベルが含まれていることを確認します。

4.2.6. マシンプールにタグを追加する

マシンプール内のコンピュートノード (ワーカーノードとも呼ばれます) にタグを追加して、マシンプールのプロビジョニング時に生成される AWS リソースのカスタムユーザータグを導入できます。

4.2.6.1. ROSA CLI を使用してマシンプールにタグを追加する

ROSA コマンドラインインターフェイス (CLI) を使用して、Red Hat OpenShift Service on AWS クラスターのマシンプールにタグを追加できます。

重要

タグキーが awsred-hat-managedred-hat-clustertype、または Name ではないことを確認する必要があります。また、kubernetes.io/cluster/ で始まるタグキーを設定してはなりません。タグのキーは 128 文字以下とし、タグの値は 256 文字以下とします。Red Hat は、将来的に予約タグをさらに追加する権利を有します。

前提条件

  • ワークステーションに最新の AWS (aws)、ROSA (rosa)、OpenShift (oc) の CLI をインストールして設定している。
  • rosa CLI を使用して Red Hat アカウントにログイン済みである。
  • Red Hat OpenShift Service on AWS (ROSA) クラスターを作成している。

手順

  • 次のコマンドを実行して、カスタムタグを持つマシンプールを作成します。

    $ rosa create machinepools --cluster=<name> --replicas=<replica_count> \
         --name <mp_name> --tags='<key> <value>,<key> <value>' 1
    1
    <key> <value>,<key> <value> を各タグのキーと値に置き換えます。

    出力例

    $ rosa create machinepools --cluster=mycluster --replicas 2 --tags='tagkey1 tagvalue1,tagkey2 tagvaluev2'
    
    I: Checking available instance types for machine pool 'mp-1'
    I: Machine pool 'mp-1' created successfully on cluster 'mycluster'
    I: To view the machine pool details, run 'rosa describe machinepool --cluster mycluster --machinepool mp-1'
    I: To view all machine pools, run 'rosa list machinepools --cluster mycluster'

検証

  • describe コマンドを使用してタグ付きのマシンプールの詳細を表示し、出力にマシンプールのタグが含まれていることを確認します。

    $ rosa describe machinepool --cluster=<cluster_name> --machinepool=<machinepool_name>

    出力例

    ID:                                    mp-1
    Cluster ID:                            2baiirqa2141oreotoivp4sipq84vp5g
    Autoscaling:                           No
    Replicas:                              2
    Instance type:                         m5.xlarge
    Labels:
    Taints:
    Availability zones:                    us-east-1a
    Subnets:
    Spot instances:                        No
    Disk size:                             300 GiB
    Additional Security Group IDs:
    Tags:                                  red-hat-clustertype=rosa, red-hat-managed=true, tagkey1=tagvalue1, tagkey2=tagvaluev2

4.2.7. マシンプールへのテイントの追加

マシンプールにコンピュート (ワーカーとも呼ばれる) ノードにテイントを追加して、そのノードにスケジュールされる Pod を制御できます。テイントをマシンプールに適用すると、Pod 仕様にテイントの容認が含まれない限り、スケジューラーは Pod をプールに配置できません。taint は、Red Hat OpenShift Cluster Manager または Red Hat OpenShift Service on AWS (ROSA) CLI、rosa を使用してマシンプールに追加できます。

注記

クラスターにはテイントを含まないマシンプールが少なくとも 1 つ必要です。

4.2.7.1. OpenShift Cluster Manager を使用したマシンプールへのテイントの追加

Red Hat OpenShift Cluster Manager を使用して、Red Hat OpenShift Service on AWS クラスターのマシンプールに taint を追加できます。

前提条件

  • Red Hat OpenShift Service on AWS (ROSA) クラスターを作成している。
  • テイントを含まず、少なくとも 2 つのインスタンスを含む既存のマシンプールがある。

手順

  1. OpenShift Cluster Manager に移動し、クラスターを選択します。
  2. Machine pools タブで、テイントを追加するマシンプールのオプションメニュー kebab をクリックします。
  3. Edit taints を選択します。
  4. テイントのKeyValue のエントリーを追加します。
  5. ドロップダウンメニューからテイントの Effect を選択します。使用できるオプションには、NoSchedulePreferNoSchedule、および NoExecute が含まれます。
  6. 任意: マシンプールにテイントを追加する場合は、Add taint を選択します。
  7. Save をクリックして、テイントをマシンプールに適用します。

検証

  1. Machine pools タブで、マシンプールの横にある > を選択して、ビューをデプロイメントします。
  2. デプロイメントされたビューの Taints の下にテイントがリストされていることを確認します。

4.2.7.2. ROSA CLI を使用したマシンプールへのテイントの追加

ROSA CLI を使用して、Red Hat OpenShift Service on AWS クラスターのマシンプールに taint を追加できます。

注記

ROSA CLI rosa バージョン 1.2.25 以前のバージョンを使用している場合、クラスターとともに作成されたマシンプール (ID= Default) 内のテイント数を変更できません。ROSA CLI rosa バージョン 1.2.26 以降を使用している場合、クラスターとともに作成されたマシンプール (ID= worker) 内でテイントの数を変更できます。テイントのないマシンプールが 1 つ以上、Single-AZ クラスターの場合はレプリカが 2 つ以上、Multi-AZ クラスターの場合はレプリカが 3 つ以上ある必要があります。

前提条件

  • ワークステーションに最新の AWS (aws)、ROSA (rosa)、OpenShift (oc) の CLI をインストールして設定している。
  • rosa CLI を使用して Red Hat アカウントにログイン済みである。
  • Red Hat OpenShift Service on AWS (ROSA) クラスターを作成している。
  • テイントを含まず、少なくとも 2 つのインスタンスを含む既存のマシンプールがある。

手順

  1. 次のコマンドを実行して、クラスター内のマシンプールをリスト表示します。

    $ rosa list machinepools --cluster=<cluster_name>
  2. マシンプールのテイントを追加または更新します。

    • 自動スケーリングを使用しないマシンプールのテイントを追加または更新するには、以下のコマンドを実行します。

      $ 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)。影響として NoSchedulePreferNoSchedule、および 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)。利用可能な影響には、NoSchedulePreferNoSchedule、および 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'

検証

  1. 新しいテイントを含むマシンプールの詳細情報を表示します。

    $ rosa describe machinepool --cluster=<cluster_name> --machinepool=<machinepool_name>

    出力例

    ID:                         db-nodes-mp
    Cluster ID:                 <ID_of_cluster>
    Autoscaling:                No
    Replicas:                   2
    Instance type:              m5.xlarge
    Labels:
    Taints:                     key1=value1:NoSchedule, key2=value2:NoExecute
    Availability zones:         us-east-1a
    Subnets:
    Spot instances:             No
    Disk size:                  300 GiB
    Security Group IDs:

  2. 出力にマシンプールのテイントが含まれていることを確認します。

4.2.8. 関連情報

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.