4.2. コンピュートノードの管理
このドキュメントでは、OpenShift Dedicated を使用してコンピュート (ワーカーとも呼ばれます) ノードを管理する方法を説明します。
コンピュートノードの変更の大半は、マシンプールで設定されます。マシンプールは、管理を容易にするために、同じ設定を持つクラスター内のコンピュートノードのグループです。
スケーリング、ノードラベルの追加、テイントの追加などのマシンプール設定オプションを編集できます。
4.2.1. マシンセットの作成
OpenShift Dedicated クラスターをインストールすると、マシンプールが作成されます。インストール後、OpenShift Cluster Manager を使用して、クラスターの追加のマシンプールを作成できます。
使用可能なコンピュート (ワーカーとも呼ばれる) ノードインスタンスタイプ、自動スケーリングオプション、およびノード数は、OpenShift Dedicated サブスクリプション、リソースクォータ、およびデプロイメントシナリオによって異なります。詳細は、営業担当者または Red Hat サポートにお問い合わせください。
前提条件
- OpenShift Dedicated クラスターを作成している。
手順
- OpenShift Cluster Manager に移動し、クラスターを選択します。
- Machine pools タブで、Add machine pool をクリックします。
- マシンプール名 を追加します。
ドロップダウンメニューから Compute node instance type を選択します。インスタンスタイプは、マシンプール内の各コンピュートノードの仮想 CPU およびメモリー割り当てを定義します。
注記プールを作成した後に、マシンプールのインスタンスタイプを変更することはできません。
オプション: マシンプールの自動スケーリングを設定します。
Enable autoscaling を選択し、デプロイメントのニーズを満たすためにマシンプール内のマシン数を自動的にスケーリングします。
注記Enable autoscaling オプションは、
capability.cluster.autoscale_clusters
サブスクリプションがある場合にのみ OpenShift Dedicated で使用できます。詳細は、営業担当者または Red Hat サポートにお問い合わせください。自動スケーリングの最小および最大のノード数制限を設定します。Cluster Autoscaler は、指定する制限を超えてマシンプールノード数を減らしたり、増やしたりできません。
- 単一アベイラビリティーゾーンを使用してクラスターをデプロイした場合は、最小および最大のノード数 を設定します。これは、アベイラビリティーゾーンのコンピュートノードの最小および最大の制限を定義します。
複数のアベイラビリティーゾーンを使用してクラスターをデプロイした場合は、Minimum nodes per zone および Maximum nodes per zone を設定します。これは、ゾーンごとの最小および最大のコンピュート制限を定義します。
注記または、マシンプールの作成後にマシンプールの自動スケーリングを設定できます。
自動スケーリングを有効にしていない場合は、コンピュートノードの数を選択します。
- 単一アベイラビリティーゾーンを使用してクラスターをデプロイした場合は、ドロップダウンメニューから コンピュートノード数 を選択します。これは、ゾーンのマシンプールにプロビジョニングするコンピュートノードの数を定義します。
- 複数のアベイラビリティーゾーンを使用してクラスターをデプロイした場合は、ドロップダウンメニューから コンピュートノードの数 (ゾーンごと) を選択します。これは、ゾーンごとにマシンプールにプロビジョニングするコンピュートノードの数を定義します。
オプション: マシンプールのノードラベルおよびテイントを追加します。
- Edit node labels and taints メニューをデプロイメントします。
- Node labels で、ノードラベルの Key および Value のエントリーを追加します。
Taints で、テイントの Key および Value エントリーを追加します。
注記テイントを含むマシンプールの作成は、クラスターにテイントのないマシンプールが少なくとも 1 つすでに存在する場合にのみ可能です。
テイントごとに、ドロップダウンメニューから Effect を選択します。使用できるオプションには、
NoSchedule
、PreferNoSchedule
、およびNoExecute
が含まれます。注記または、マシンプールの作成後にノードラベルおよびテイントを追加できます。
- オプション: このマシンプール内のノードに使用する追加のカスタムセキュリティーグループを選択します。すでにセキュリティーグループを作成し、このクラスター用に選択した VPC にそのグループを関連付けている必要があります。マシンプールの作成後は、セキュリティーグループを追加または編集することはできません。詳細は、「関連情報」セクションのセキュリティーグループの要件を参照してください。
オプション: Customer Cloud Subscription (CCS) モデルを使用して AWS に OpenShift Dedicated をデプロイした際に、保証されていない AWS スポットインスタンスとしてマシンをデプロイするようにマシンプールを設定する場合は、Amazon EC2 スポットインスタンスを使用します。
- 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 ページに表示され、設定が想定どおりに表示されていることを確認します。
4.2.2. マシンプールの削除
ワークロード要件が変更され、現在のマシンプールがニーズを満たさなくなった場合は、マシンプールを削除できます。
Red Hat OpenShift Cluster Manager を使用してマシンプールを削除できます。
前提条件
- OpenShift Dedicated クラスターを作成している。
- クラスターが準備状態にある。
- テイントのない既存のマシンプールがあり、シングル AZ クラスターの場合は少なくとも 2 つのレプリカ、マルチ AZ クラスターの場合は少なくとも 3 つのレプリカがある。
手順
- OpenShift Cluster Manager から、Cluster List ページに移動し、削除するマシンプールを含むクラスターを選択します。
- 選択したクラスターで、Machine pools タブを選択します。
- Machine pools タブで、削除するマシンプールの Options メニュー をクリックします。
- Delete をクリックします。
選択したマシンプールが削除されます。
4.2.3. コンピュートノードの手動によるスケーリング
マシンプールの自動スケーリングを有効にしていない場合は、デプロイメントのニーズに合わせてプール内のコンピュート (ワーカーとも呼ばれる) ノードの数を手動でスケーリングできます。
各マシンプールを個別にスケーリングする必要があります。
前提条件
- OpenShift Dedicated クラスターを作成している。
- 既存のマシンプールがある。
手順
- OpenShift Cluster Manager に移動し、クラスターを選択します。
- Machine pools タブで、スケーリングするマシンプールの Options メニュー をクリックします。
- Scale を選択します。
ノード数を指定します。
- 単一のアベイラビリティーゾーンを使用してクラスターをデプロイした場合は、ドロップダウンメニューでNode count を指定します。
複数のアベイラビリティーゾーンを使用してクラスターをデプロイした場合は、ドロップダウンメニューでNode count per zone を指定します。
注記サブスクリプションにより、選択可能なノードの数が決まります。
- Apply をクリックして、マシンプールをスケーリングします。
検証
- Machine pools タブで、マシンプールの Node count が期待どおりであることを確認します。
4.2.4. ノードラベル
ラベルは、Node
オブジェクトに適用されるキーと値のペアです。ラベルを使用して一連のオブジェクトを整理し、Pod のスケジューリングを制御できます。
クラスターの作成中または後にラベルを追加できます。ラベルはいつでも変更または更新できます。
関連情報
- ラベルの詳細は、Kubernetes ラベルおよびセレクターの概要 を参照してください。
- カスタムの追加セキュリティーグループ要件の詳細は、追加のカスタムセキュリティーグループ を参照してください。
4.2.4.1. ノードラベルのマシンプールへの追加
いつでもコンピュート (ワーカーとも呼ばれる) ノードのラベルを追加または編集して、適切な方法でノードを管理します。たとえば、ワークロードのタイプを特定のノードに割り当てることができます。
ラベルは key-value ペアとして割り当てられます。各キーは、割り当てられたオブジェクトに固有のものである必要があります。
前提条件
- OpenShift Dedicated クラスターを作成している。
- 既存のマシンプールがある。
手順
- OpenShift Cluster Manager に移動し、クラスターを選択します。
- Machine pools タブで、ラベルを追加するマシンプールの Options メニュー をクリックします。
- Edit labels を選択します。
- 削除するマシンプールに既存のラベルがある場合は、ラベルの横にある x を選択して削除します。
-
<key>=<value>
の形式を使用してラベルを追加し、Enter を押します。たとえば、app=db
を追加して、Enter を押します。形式が正しい場合は、キーと値のペアが強調表示されます。 - ラベルを追加する場合は、前の手順を繰り返します。
- Save をクリックして、ラベルをマシンプールに適用します。
検証
- Machine pools タブで、マシンプールの横にある > を選択して、ビューをデプロイメントします。
- デプロイメントされたビューの Labels の下にラベルが表示されていることを確認します。
4.2.5. マシンプールへのテイントの追加
マシンプールにコンピュート (ワーカーとも呼ばれる) ノードにテイントを追加して、そのノードにスケジュールされる Pod を制御できます。テイントをマシンプールに適用すると、Pod 仕様にテイントの容認が含まれない限り、スケジューラーは Pod をプールに配置できません。
クラスターにはテイントを含まないマシンプールが少なくとも 1 つ必要です。
前提条件
- OpenShift Dedicated クラスターを作成している。
- テイントを含まず、少なくとも 2 つのインスタンスを含む既存のマシンプールがある。
手順
- OpenShift Cluster Manager に移動し、クラスターを選択します。
- Machine pools タブで、テイントを追加するマシンプールの Options メニュー をクリックします。
- Edit taints を選択します。
- テイントのKey と Value のエントリーを追加します。
-
ドロップダウンメニューからテイントの Effect を選択します。使用できるオプションには、
NoSchedule
、PreferNoSchedule
、およびNoExecute
が含まれます。 - マシンプールにテイントを追加する場合は、Add taint を選択します。
- Save をクリックして、テイントをマシンプールに適用します。
検証
- Machine pools タブで、マシンプールの横にある > を選択して、ビューをデプロイメントします。
- デプロイメントされたビューの Taints の下にテイントがリストされていることを確認します。