4.4. クラスターでのノードの自動スケーリングについて
自動スケーリングオプションは、クラスター内のマシンの数を自動的にスケーリングするように設定できます。
Cluster Autoscaler は、リソース不足のために現在のノードのいずれにも Pod をスケジュールできない場合、またはデプロイメントのニーズを満たすために別のノードが必要な場合に、クラスターのサイズを拡大します。Cluster Autoscaler は、指定の制限を超えてクラスターリソースを拡大することはありません。
さらに、Cluster Autoscaler は、リソースの使用量が少なく、重要な Pod すべてが他のノードに適合する場合など、一部のノードが長い期間にわたって不要な状態が続く場合にクラスターのサイズを縮小します。
自動スケーリングを有効にする場合は、ワーカーノードの最小数および最大数も設定する必要があります。
クラスターの所有者と組織管理者のみがクラスターのスケーリングまたは削除が可能です。
4.4.1. クラスターでの自動スケーリングノードの有効化
ワーカーノードで自動スケーリングを有効にし、既存クラスターのマシンプール定義を編集して利用可能なノード数を増減できます。
Red Hat OpenShift Cluster Manager を使用した既存のクラスターでの自動スケーリングノードの有効化
OpenShift Cluster Manager コンソールからマシンプール定義でワーカーノードの自動スケーリングを有効にします。
手順
- OpenShift Cluster Manager で、Cluster List ページに移動し、自動スケーリングを有効にするクラスターを選択します。
- 選択したクラスターで、Machine pools タブを選択します。
- 自動スケーリングを有効にするマシンプールの最後にある Options メニュー をクリックし、Edit を選択します。
- Edit machine pool ダイアログで、Enable autoscaling チェックボックスをオンにします。
- Save を選択してこれらの変更を保存し、マシンプールの自動スケーリングを有効にします。
さらに、対話モードでクラスターを作成する 場合に、デフォルトのマシンプールに自動スケーリングを設定できます。
rosa CLI を使用した既存クラスターでの自動スケーリングノードの有効化
負荷に基づいてワーカーノード数を動的にスケールアップまたはスケールダウンできるように自動スケーリングを設定します。
自動スケーリングが正常に実行されるかどうかは、AWS アカウントに正しい AWS リソースクォータがあることかどうかに依存します。AWS コンソール でリソースクォータおよび要求クォータの増加を確認します。
手順
クラスター内のマシンプール ID を識別するには、以下のコマンドを実行します。
$ rosa list machinepools --cluster=<cluster_name>
出力例
ID AUTOSCALING REPLICAS INSTANCE TYPE LABELS TAINTS AVAILABILITY ZONES SUBNETS SPOT INSTANCES DISK SIZE SG IDs worker No 2 m5.xlarge us-east-2a No 300 GiB mp1 No 2 m5.xlarge us-east-2a No 300 GiB
- 設定する必要のあるマシンプールの ID を取得します。
マシンプールで自動スケーリングを有効にするには、以下のコマンドを実行します。
$ rosa edit machinepool --cluster=<cluster_name> <machinepool_ID> --enable-autoscaling --min-replicas=<number> --max-replicas=<number>
例
mp1
という ID をmycluster
という名前のクラスターに設定し、レプリカの数が 2 から 5 ワーカーノード間でスケーリングするように設定された状態でマシンプールで自動スケーリングを有効にします。$ rosa edit machinepool --cluster=mycluster mp1 --enable-autoscaling --min-replicas=2 --max-replicas=5
4.4.2. クラスターでの自動スケーリングノードの無効化
ワーカーノードで自動スケーリングを無効にし、既存クラスターのマシンプール定義を編集して利用可能なノード数を増減できます。
クラスターの自動スケーリングは、Red Hat OpenShift Cluster Manager または Red Hat OpenShift Service on AWS CLI を使用して無効にできます。
さらに、対話モードでクラスターを作成する 場合に、デフォルトのマシンプールに自動スケーリングを設定できます。
Red Hat OpenShift Cluster Manager を使用した既存のクラスターでの自動スケーリングノードの無効化
OpenShift Cluster Manager からマシンプール定義でワーカーノードの自動スケーリングを無効にします。
手順
- OpenShift Cluster Manager で、Cluster List ページに移動し、無効にする必要のある自動スケーリングでクラスターを選択します。
- 選択したクラスターで、Machine pools タブを選択します。
- 自動スケーリングのあるマシンプールの最後にある Options メニュー をクリックし、Edit を選択します。
- Edit machine pool ダイアログで、Enable autoscaling チェックボックスをオフにします。
- Save を選択してこれらの変更を保存し、マシンプールの自動スケーリングを無効にします。
ROSA CLI を使用した既存クラスターでの自動スケーリングノードの無効化
Red Hat OpenShift Service on AWS (ROSA) CLI rosa
を使用して、マシンプール定義内のワーカーノードの自動スケーリングを無効にします。
手順
以下のコマンドを実行します。
$ rosa edit machinepool --cluster=<cluster_name> <machinepool_ID> --enable-autoscaling=false --replicas=<number>
例
mycluster
という名前のクラスターで、default
マシンプールの自動スケーリングを無効にします。$ rosa edit machinepool --cluster=mycluster default --enable-autoscaling=false --replicas=3