登録済みクラスターで自動スケーリングが有効になっているノードプールを作成して、オンラインリソースのグループを管理できます。 ノードプールは、データセンターにデプロイされた外部KubernetesクラスターにElastic Compute Service (ECS) ノードを追加できます。 このトピックでは、onectlを使用して、登録済みクラスターで自動スケーリングが有効になっているノードプールを管理する方法について説明します。
前提条件
Container Service for Kubernetes (ACK) コンソールに外部Kubernetesクラスターが登録されています。 詳細については、「ACKコンソールでの登録済みクラスターの作成」をご参照ください。
kubectlクライアントが登録済みクラスターに接続されています。 詳細については、「クラスターのkubeconfigファイルを取得し、kubectlを使用してクラスターに接続する」をご参照ください。
オンプレミスマシンにonectlをインストールします。 詳細については、「onectlを使用した登録済みクラスターの管理」をご参照ください。
クラスターノードを追加するスクリプトの作成
次のコマンドを実行して、クラスターノードを追加するスクリプトを作成します。
スクリプトの作成方法の詳細については、「クラスターノードを追加するスクリプトの作成」をご参照ください。
onectl nodepool config --script-url ****
期待される出力:
Set node init script successfully, script url: ****.
ノードプールの自動スケーリング機能の有効化
次のコマンドを実行して、ノードプールの自動スケーリング機能を有効にします。
onectl nodepool auto-scale enable
期待される出力:
Cluster **** (id: ****), auto scaling enabled.
自動スケーリング機能が有効になっているノードプールの作成
前提条件
ノードプールを作成するための前提条件が満たされているかどうかを確認します。
ノードプールで自動スケーリング機能が有効になっている場合、ノードプールの作成後、cluster-autoscalerコンポーネントは登録済みクラスターにデプロイとして自動的にデプロイされます。 したがって、自動スケーリング機能が有効になっているノードプールを作成する前に、まずcluster-autoscalerコンポーネントのアクセス許可を設定する必要があります。
手順
次のコマンドを実行して、ノードプールを作成するための前提条件が満たされているかどうかを確認します。
onectl nodepool check
期待される出力:
Node pool check passed.
次のコマンドを実行して、cluster-autoscalerコンポーネントのアクセス許可を設定します。
onectl ram-user grant --addon cluster-autoscaler
期待される出力:
Ram policy ack-one-registered-cluster-policy-cluster-autoscaler granted to ram user **** successfully.
次のコマンドを実行して、ノードプールを作成します。
onectl nodepool create --name test-nodepool --key-pair-name **** --instance-types ecs.g6.xlarge,ecs.hfc6.xlarge --vswitches ****
パラメーター
必須
説明
パラメーター
必須
説明
name
必須
ノードプールの名前。
キーペア名
はい、選択できるオプションは1つだけです。
パスワードなしでノードにログインするために使用されるキーペアの名前。
ログインパスワード
ノードへのログインに使用されるパスワード。
インスタンスタイプ
必須
ノードプール内のノードのインスタンスタイプ。
vswitches
必須
vSwitchのID。
onectl nodepool create -h
コマンドを実行して、さらにノードプールを作成するためのパラメーターを照会できます。
クエリノードプール
次のコマンドを実行して、登録済みクラスター内のすべてのノードプールを照会します。
onectl nodepool list --cluster-id ****
cluster-id
は、登録されたクラスターのIDです。 デフォルト値は、現在のクラスターのIDです。
手動でノードプールをスケールアウト
次のコマンドを実行して、ノードプールを手動でスケールアウトします。
onectl nodepool scale --node-count 3 --node-pool-id **** --cluster-id ****
パラメーター | 必須 | 説明 |
パラメーター | 必須 | 説明 |
node-count | 選択可能 | ノードの予想数。 デフォルト値:0 |
ノードプールid | 必須 | スケールアウトするノードプールのID。 |
クラスターid | 選択可能 | ノードプールが属する登録済みクラスターのID。 デフォルト値は、現在のクラスターのIDです。 |
期待される出力:
Cluster ****, node pool **** (id: ****) scaled to node count 3.
ノードプールの自動スケーリング機能を無効にする
次のコマンドを実行して、ノードプールの自動スケーリング機能を無効にします。
onectl nodepool auto-scale disable
期待される出力:
Cluster **** (id: ****), auto scaling disabled.
ノードプールを削除する
次のコマンドを実行して、ノードプールを削除します。
onectl nodepool delete --node-pool-id **** --cluster-id **** --force
パラメーター | 必須 | 説明 |
パラメーター | 必須 | 説明 |
ノードプールid | 必須 | 削除するノードプールのID。 |
クラスターid | 選択可能 | ノードプールが属する登録済みクラスターのID。 デフォルト値は、現在のクラスターのIDです。 |
force | 選択可能 | ノードプールを強制削除するかどうかを指定します。 ノードプール内のノード数が0を超える場合、ノードプールを強制的に削除し、すべてのノードリソースを解放できます。 |