Container Service for Kubernetes (ACK) コンソールの [ノード] ページで、ワーカーノードへのログイン、ドレイン、削除、および監視を実行します。
[ノード] ページを開くには:
-
[クラスター] ページで、対象のクラスター名をクリックします。左側メニューで、[ノード] > [ノード] を選択します。
ノードへのログイン
トラブルシューティング、パフォーマンスの監視、またはカスタムスクリプトの実行のために、ノードの基盤となる ECS インスタンスにアクセスします。
[操作] 列で、[その他] > [Workbench 接続] を選択するか、[その他] > [VNC 接続] を選択します。
その他のオプションについては、「ECS インスタンスへの接続方法」をご参照ください。
ContainerOS は、追跡不可能な操作を防ぎ、セキュリティリスクを軽減するため、直接ログインや SSH をサポートしていません。メンテナンスを行うには、ContainerOS の管理コンテナを操作してください。
ノードのドレイン
ノードをドレインすると、Pod がノードから退去させられ、そのノードはスケジューリング不可としてマークされます。
[操作] 列で、[その他] > [ノードのドレイン] を選択し、プロンプトに従ってください。
ノードをドレインする前に:
-
他のノードに、退去させられる Pod を受け入れるのに十分なリソースがあることを確認してください。
-
ポッドアフィニティルールとスケジューリングポリシーによって、他のノードへの再スケジューリングが許可されていることを確認してください。
-
DaemonSet によって管理される Pod は、ドレイン中に退去されません。
ノードのスケジューリングステータスの設定
この操作は実行中のワークロードに影響を与える可能性があるため、オフピーク時間帯に実行してください。
対象のノードを選択し、ページ下部の [スケジューリングステータスの設定] をクリックします。ダイアログボックスの注意事項を読み、プロンプトに従ってください。
スケジューリング不可のノードには SchedulingDisabled というラベルが付けられます。既存の Pod はトラフィックの処理を継続しますが、新しい Pod はスケジューリングされません。DaemonSet によって管理される Pod は削除されません。
ノードの削除
ワークロードへの影響を最小限に抑えるため、オフピーク時間帯にノードを削除してください。
-
単一ノードを削除する場合: [操作] 列で [その他] > [削除] を選択し、プロンプトに従ってください。
-
複数ノードを削除する場合:対象のノードを選択し、ページ下部の [一括削除] をクリックして、プロンプトに従ってください。
注意事項については、「ノードの削除」をご参照ください。
ノードリソースの監視
[操作] 列の [モニター] をクリックして監視コンポーネントをインストールし、Managed Service for Prometheus (Prometheus) を有効にすると、ノードのリソースダッシュボードが利用可能になります。
-
異常なノード状態に対して、カスタムの PromQL アラートルールを作成できます。詳細については、「Prometheus でのアラートルール設定のベストプラクティス」をご参照ください。
ノード障害の診断
[操作] 列の [異常診断] をクリックすると、自動検査がトリガーされ、修復プランが提示されます。
サポートされているシナリオと修復プランについては、「ノード診断」をご参照ください。
ノードのラベルと Taint の管理
[ノード] ページで [ラベルと Taint の管理] をクリックし、Pod のスケジューリングを制御するラベルと Taint を設定します。
詳細については、「ノードのラベルと Taint の管理」をご参照ください。
ノードでの一括操作の実行
OS カーネルの更新や、監視、セキュリティ、監査パッケージのインストールなど、同じアクションを複数のワーカーノードに一度に適用します。
対象のノードを選択し、ページ下部の [一括操作] をクリックして、コンソールのガイドに従ってください。
注:Auto Mode が有効になっているクラスターでは、一括操作はサポートされていません。
詳細については、「ノードの一括管理」をご参照ください。
ノード詳細の表示
リソース使用状況の表示
[操作] 列で [その他] > [詳細] を選択すると、ノードのリソース使用状況とステータスを一覧で確認できます。
[詳細] ビューには、以下も含まれます:
| メトリクス | 計算式 |
|---|---|
| CPU リクエスト | ノード上の全 Pod の CPU リクエスト合計 / ノードの割り当て可能 CPU |
| CPU 使用率 | ノード上の全 Pod の CPU 使用量合計 / ノードの割り当て可能 CPU |
| メモリリクエスト | ノード上の全 Pod のメモリリクエスト合計 / ノードの割り当て可能メモリ |
| メモリ使用率 | ノード上の全 Pod のメモリ使用量合計 / ノードの割り当て可能メモリ |
割り当て可能リソース = リソースキャパシティ - 予約済みリソース - 退去しきい値。詳細については、「リソース予約ポリシー」をご参照ください。
[詳細] ビューには、以下も含まれます:
-
基本情報:ノード名、IP アドレス、インスタンス ID、コンテナランタイムバージョン、オペレーティングシステム、カーネルバージョンなど。
-
リソース割り当て:ノード上のすべての Pod の CPU とメモリのリクエストおよびリミット
-
ノードステータス:現在の状態とイベント履歴
-
ノードイベント:最近のイベントレコード
-
Pod リスト:ノードで実行中のすべての Pod
ノード設定のYAML表示
[操作] 列で [その他] > [YAML で表示] を選択すると、ノードの完全な YAML を表示でき、詳細な調査やトラブルシューティングに役立ちます。
次のステップ
-
過去の使用状況に基づいてコンテナリソースの推奨事項を得るには、リソースプロファイリングを使用してください。リソースのリクエストとリミットを設定するには、Deployment を使用してステートレスアプリケーションを作成してください。
-
ノードのラベルと nodeSelector を設定して、特定のノードに Pod をスケジューリングしてください。
-
リソースをスケーリングするには、ワーカーノードの設定をアップグレードまたはダウングレードしてください。
-
コンテナランタイムと kubelet 用の追加ストレージとして、ノードにデータディスクをアタッチしてください。
-
ノードのアップグレード (kubelet とコンテナランタイムのバージョン) は、ノードプールレベルで管理されます。バージョンのアップグレードを適用するには、ノードプールを更新してください。