登録済みクラスターでノードプール機能を使用し、ノードプールをスケールインすると、一部のノードのステータスがNotReadyになる場合があります。 これらのノードがクリーンアップされない場合、リソースの浪費につながる可能性があります。 このトピックでは、クラウドノードコントローラーコンポーネントを使用してNotReadyノードを自動的にクリーンアップする方法について説明します。
前提条件
通常のノードプールが作成され、スケールアウトされます。 詳細については、「ノードプールの作成とスケールアウト」をご参照ください。
kubectlクライアントが登録済みクラスターに接続されています。 詳細については、「kubectlを使用したクラスターへの接続」をご参照ください。
手順
登録済みクラスターにコンポーネントをインストールする前に、Resource Access Management (RAM) ユーザーを作成し、必要な権限を付与し、関連するクラウドリソースにアクセスするためのAccessKeyペアを設定する必要があります。
手順1: cloud-node-controllerコンポーネントのアクセス許可の設定
RAMユーザーを作成し、次のカスタム権限ポリシーを付与します。 詳細については、「カスタムRAMポリシーの作成」をご参照ください。
{ "Version": "1", "Statement": [ { "Action": [ "ecs:DescribeInstances" # Allow querying detailed information of ECS instances. ], "Resource": [ "*" ], "Effect": "Allow" } ] }
次のコマンドを実行して、RAMポリシーのAccessKey情報を設定します。
export ACCESS_KEY_ID=<ACCESS KEY ID> export ACCESS_KEY_SECRET=<ACCESS KEY SECRET>
次のコマンドを実行して、alibaba-addon-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}'
説明シークレットが既に存在する場合は、シークレットのRAMユーザーに上記のカスタム権限を付与する必要があります。
手順2: cloud-node-controllerコンポーネントのインストール
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状態のノードを自動的にクリーンアップします。