登録済みクラスターでノードプール機能を使用すると、スケールイン操作後にノードのステータスが NotReady に変わることがあります。これらのノードが速やかにクリーンアップされない場合、クラスターリソースが無駄になる可能性があります。本トピックでは、cloud-node-controller コンポーネントを使用して NotReady 状態のノードを自動的にクリーンアップする方法について説明します。
前提条件
-
標準ノードプールを作成し、スケールアウト済みであること。詳細については、「ノードプールの作成と管理」をご参照ください。
-
kubectl を使用して登録済みクラスターに接続済みであること。詳細については、「kubectl を使用したクラスターへの接続」をご参照ください。
操作手順
登録済みクラスターにコンポーネントをインストールする前に、RAM ユーザーを作成し、そのユーザーに必要な権限を付与し、AccessKey を設定してクラウドリソースへのアクセスを許可する必要があります。
ステップ 1:cloud-node-controller コンポーネントの権限設定
-
RAM ユーザーを作成し、そのユーザーに以下のカスタムポリシーを付与します。詳細については、「RAM ユーザーへの RAM 権限の付与」をご参照ください。
{ "Version": "1", "Statement": [ { "Action": [ "ecs:DescribeInstances" # Elastic Compute Service (ECS) インスタンスの詳細情報をクエリすることを許可します。 ], "Resource": [ "*" ], "Effect": "Allow" } ] } -
次のコマンドを実行して、RAM ユーザーの AccessKey を設定します。
export ACCESS_KEY_ID=<ACCESS KEY ID> export ACCESS_KEY_SECRET=<ACCESS KEY SECRET> -
次のコマンドを実行して、`alibaba-addon-secret` という名前の Secret を作成します。
kubectl -n kube-system create secret generic alibaba-addon-secret --from-literal="access-key-id=${ACCESS_KEY_ID}" --from-literal="access-key-secret=${ACCESS_KEY_SECRET}"説明Secret がすでに存在する場合、その Secret に関連付けられている RAM ユーザーにカスタムポリシーを付与してください。
ステップ 2:cloud-node-controller コンポーネントのインストール
-
Container Service for Kubernetes (ACK) コンソールにログインします。左側のナビゲーションウィンドウで、クラスターリスト をクリックします。
-
「クラスターリスト」ページで、クラスターの名前をクリックします。左側のナビゲーションウィンドウで、「アドオン管理」をクリックします。
-
アドオン管理 ページの コアコンポーネント タブで [cloud-node-controller] コンポーネントを探し、カードの右下隅にある インストール をクリックします。
ステップ 3:コンポーネントステータスの確認
-
次のコマンドを実行して、cloud-node-controller コンポーネントのステータスを確認します。
kubectl get pods -n kube-system | grep cloud-node-controller次のような出力が表示されます:
cloud-node-controller-abcXXX 1/1 Running 0 5m -
コンポーネントがデプロイされると、`NotReady` 状態のノードは自動的にクリーンアップされます。