ノードプールは、同じプロパティを共有するノードの論理的なグループです。ノードプールは、ノードのアップグレードや弾力的なスケーリングといった、統一されたノード管理と運用保守 (O&M) を可能にします。また、Container Service for Kubernetes (ACK) は、OS の CVE 脆弱性の自動修復や障害ノードの自動回復など、ノードプール向けのさまざまな自動運用保守機能も提供しており、運用保守コストの削減に役立ちます。
ノードプールの概要
ノードプールは設定テンプレートです。ノードプールでスケールアウトされたノードは、その設定を使用します。クラスター内に、異なる設定とタイプを持つ複数のノードプールを作成できます。ノードプールの設定には、インスタンスタイプ、課金方法、ゾーン (vSwitch)、オペレーティングシステムイメージ、CPU アーキテクチャ、ラベル、Taint などのノードプロパティが含まれます。これらのプロパティは、ノードプールを作成する際に指定するか、ノードプール作成後に編集することができます。
ノードプール機能が導入される前に作成された古いクラスターには、アンマネージドワーカーノードが含まれている場合があります。管理を容易にするために、これらのノードをノードプールに追加することを推奨します。詳細については、「アンマネージドノードのノードプールへの移行」をご参照ください。
単一のノードプールを使用して、管理と設定の複雑さを軽減できます。また、複数のノードプールを使用して、きめ細かなリソース分離を実現し、異なるノードタイプのハイブリッドなデプロイを管理することもできます。
単一のノードプール | 複数のノードプール |
単一のノードプールで複数のチームやワークロードのコンピューティングリソースを管理し、運用保守を簡素化します。単一のノードプールは以下の機能をサポートします。
異なるオペレーティングシステムと CPU アーキテクチャ (Arm と x86) を持つインスタンスを混在させることはできません。 | 複数のノードプールを作成して、異なるワークロードやチームに独立したコンピューティングリソースを提供します。これにより、リソースの競合や潜在的なセキュリティリスクを回避できます。これは以下のシナリオに適しています。
|
複数のノードプールを使用する場合、スケジューリングポリシーを使用して異なるノードプールの優先順位を定義し、リソースとコスト管理を最適化できます。例:
スポットインスタンスやサブスクリプションインスタンスなど、コストの異なるコンピューティングリソースのプロビジョニング優先度を制御し、全体的なコストを削減する。
x86 と Arm アーキテクチャの必要な比率など、ワークロードの要件に基づいて異なるインスタンスタイプを割り当てる。
ノードプールの機能
ACK は、ノードプールレベルでさまざまなノード管理機能を提供します。ワーカーノードの運用保守の負担を軽減し、アプリケーション開発により集中したい場合は、マネージドノードプール機能を有効にして、さまざまな自動運用保守機能を利用できます。
基本機能
機能 | 説明 | リファレンス |
作成、編集、削除、表示 |
| |
手動または自動スケーリング |
| |
既存ノードの追加 | 「既存ノードの追加」機能を使用して、購入した ECS インスタンスをワーカーノードとして ACK クラスターに追加したり、削除されたワーカーノードをノードプールに戻したりします。この機能にはいくつかの制限と重要な考慮事項があります。詳細については、参照ドキュメントをご参照ください。 | |
ノードの削除 | 特定のノードが不要になった場合は、クラスターまたはノードプールから削除できます。予期しない動作を避けるために、標準的な手順に従ってください。 | |
kubelet バージョンのアップグレード | ノードプール内のノードの kubelet と containerd のバージョンをアップグレードします。 また、クラスターの自動アップグレード機能を使用して、kubelet とコンテナランタイムを自動的にアップグレードすることもできます。 | |
オペレーティングシステムの変更 | オペレーティングシステムのバージョンをアップグレードするか、オペレーティングシステムのタイプを変更します。たとえば、サポート終了 (EOL) のオペレーティングシステムから ContainerOS または Alibaba Cloud Linux に切り替えることができます。 | |
CVE 脆弱性の修復 | CVE 脆弱性を手動でスキャンし、ノードのオペレーティングシステムのセキュリティ脆弱性を修正します。一部の CVE 脆弱性の修正にはノードの再起動が必要です。この機能とその考慮事項についての詳細は、参照ドキュメントをご参照ください。 自動運用保守機能を有効にすることで、ACK が OS の CVE 脆弱性を自動的に修正することもできます。 | |
ノードプールの kubelet パラメーターをカスタマイズする | ノードプールレベルでノードの kubelet パラメーターをカスタマイズして、ノードの動作を調整します。たとえば、クラスターリソースの予約を調整して、リソース割り当てを管理できます。 | |
ノードプールの OS パラメーターをカスタマイズする | ノードプールレベルでノードの OS パラメーターをカスタマイズして、システムのパフォーマンスを調整します。 | |
コストインサイト | ノードプールレベルでリソース使用量とコスト分布を分析し、コストを最適化し、クラスターのリソース利用率を向上させます。 |
自動運用保守機能
ノードプールの自動運用保守機能を有効にすると、ワーカーノードの運用保守の負担を軽減できます。これにより、ACK はオペレーティングシステム (OS) の CVE 脆弱性の自動修復、kubelet の自動アップグレード、ノードの自動障害回復など、特定の運用保守操作を自動的に実行できます。ただし、サービスが基盤となるノードの変更に敏感で、ノードの再起動やアプリケーション Pod の移行を許容できない場合は、このアプローチは推奨されません。
事前準備
オペレーティングシステムが Alibaba Cloud Linux 3 Container-Optimized Edition、ContainerOS、Alibaba Cloud Linux、Red Hat、または Ubuntu であることを確認してください。
ACK クラスターでサポートされているオペレーティングシステムイメージとその制限事項の詳細については、「オペレーティングシステム」をご参照ください。
ノードプールの自動運用保守機能を使用する前に、Container Service コンソール の [ノードプール] ページで以下の操作を完了する必要があります。これらの設定はいつでも変更できます。
ノードプールの作成方法と編集方法の詳細については、「ノードプールの作成と管理」をご参照ください。
機能紹介
機能 | 説明 |
ノードの自動修復 | ACK はノードの状態を自動的に監視し、ノードが異常になったときに自動修復タスクを実行します。これにより、システム、K8s コンポーネント、およびノードインスタンスの問題が修正されます。詳細については、「ノードの自動修復を有効にする」をご参照ください。 |
OS の CVE 脆弱性の自動修復 | ACK はノード上のセキュリティ脆弱性をスキャンし、クラスターの運用保守ウィンドウに基づいて CVE 脆弱性の修復計画をスケジュールして実行します。これにより、クラスターの安定性、セキュリティ、コンプライアンスが向上します。注意点についての詳細は、「ノードプールの OS の CVE 脆弱性を修正する」をご参照ください。 |
ECS システムイベントへの自動応答 | ECS システムイベントへの自動応答をサポートします。現在、以下のシステムイベントタイプがサポートされています。
|
2026 年 1 月 31 日以降、マネージドノードプールにおける kubelet とコンテナランタイムの自動アップグレードの設定項目は削除されます。クラスターの自動アップグレードを設定してノードプールを自動的にアップグレードできます。詳細については、「製品変更 | マネージドノードプールのセキュリティ脆弱性修復と自動アップグレードの変更に関するお知らせ」をご参照ください。
ノードプールのライフサイクル
ACK クラスターのノードプールのライフサイクルは、作成とデプロイから、実行とメンテナンス (スケーリング、更新、ノードの削除を含む)、そして最終的な削除まで、複数の段階と状態を含みます。以下のセクションでは、さまざまな状態とその遷移について説明します。
ノードプールの状態 | 説明 |
初期化中 (initial) | ノードプールは作成中です。 |
アクティブ (active) | ノードプールは正常に作成され、実行中です。 |
失敗 (failed) | ノードプールの作成に失敗しました。 |
スケーリング中 (scaling) | ノードプールはスケールアウト中、またはノードを追加中です。 |
更新中 (updating) | ノードプールの設定は更新中です。 |
ノード削除中 (removing_nodes) | ノードはノードプールから削除中です。 |
アップグレード中 (upgrading) | ノードプールはアップグレード中です。 |
修復中 (repairing) | ノードプールは修復中です。たとえば、ノードの修復やノードプール内の CVE 脆弱性の修正などです。 |
削除中 (deleting) | ノードプールは削除中です。 |
削除済み (deleted, この状態は表示されません) | ノードプールは正常に削除されました。 |
削除失敗 (deleted_failed) | ノードプールの削除に失敗しました。再度削除を試みてください。 それでも削除に失敗する場合は、チケットを起票してください。 |
ノードプールの課金
ノードプールとその自動運用保守機能の使用は無料です。ただし、ノードプール内の ECS インスタンスなどのクラウドリソースについては、対応するクラウドサービスによって課金されます。
ECS インスタンスの課金の詳細については、「課金の概要」をご参照ください。
ノードプール内の既存ノードの課金方法を変更するには、「インスタンスの課金方法を従量課金からサブスクリプションに変更する」をご参照ください。ノードプールの課金方法を変更しても、スケールアウトされる新しいノードにのみ影響し、ノードプール内の既存ノードの課金方法は変更されません。
スケーリンググループの課金の詳細については、「Auto Scaling の課金」をご参照ください。
用語集
ノードプールを使用する前に、以下の概念と用語に慣れておくことを推奨します。
スケーリンググループ:ノードプールをスケールインまたはスケールアウトする場合、ACK は Auto Scaling (ESS) サービスを使用してスケールアウトとノード削除操作を実行します。各ノードプールは、Auto Scaling のスケーリンググループと 1 対 1 の関係にあります。スケーリンググループは、1 つ以上の ECS インスタンス (ワーカーノード) の集合です。
スケーリング設定:ノードプールは、スケーリング設定を使用してノード構成を管理します。スケーリング設定は、弾力的なスケーリング中に ECS インスタンスを作成するために使用されるテンプレートです。スケーリングアクティビティがトリガーされると、Auto Scaling は指定されたスケーリング設定を使用して ECS インスタンスを自動的に作成します。
スケーリングアクティビティ:ノードプール内のすべてのスケールイン、スケールアウト、ノード追加、またはノード削除は、スケーリングアクティビティをトリガーします。スケーリングアクティビティがトリガーされると、すべてのスケーリングアクションはシステムによって自動的に実行され、関連するレコードが保存されます。ノードプールのスケーリングアクティビティ履歴を表示できます。
システムディスクの交換:ノードプール内の一部の操作 (既存ノードの自動追加やコンテナランタイムの変更など) は、システムディスクを交換してノードを初期化します。ノード名、インスタンス ID、IP アドレスなどのノードのインスタンスプロパティは変更されませんが、ノードのシステムディスク上のデータは削除されます。ノードにアタッチされているデータディスクは影響を受けません。
ACK がシステムディスクを交換する際、ノードをドレインします。このプロセスは、ノード上の Pod を他の利用可能なノードに退去させ、Pod Disruption Budget (PDB) に従います。高いサービス可用性を確保するために、複数レプリカの Deployment を使用してワークロードを複数のノードに分散させ、重要なサービスに PDB を設定することを推奨します。これにより、同時に中断される可能性のある Pod の数を制御できます。
インプレースアップグレード:システムディスクの交換に代わるアップグレード方法です。この方法では、ノード上で必要なコンポーネントを直接更新および交換します。インプレースアップグレードはシステムディスクを交換したり、ノードを再初期化したりせず、ノード上のデータは影響を受けません。
関連ドキュメント
ノードや Pod の最大数など、クラスターでサポートされている Kubernetes リソースの容量制限の詳細については、「クォータ」をご参照ください。
ACK はクラスターの自動アップグレードをサポートしています。
Kubernetes 1.24 以降を実行しているクラスターは、コンテナランタイムとして Docker をサポートしなくなりました。containerd に移行する必要があります。詳細については、「Docker から containerd への移行」をご参照ください。
クラスターの負荷が増加するにつれて、弾力的なスケーリングソリューションを有効にしてノードリソースを動的に調整できます。詳細については、「Auto Scaling」をご参照ください。
アプリケーション Pod のノードプールを指定するには、「Pod を特定のノードプールにスケジューリングする」をご参照ください。
ACK マネージドクラスター Basic Edition は最大 10 ノードをサポートします。より高いリソースクォータを取得するために、ACK マネージドクラスター Pro Edition へのホットマイグレーションを推奨します。詳細については、「ACK マネージドクラスター Basic Edition から Pro Edition へのホットマイグレーション」をご参照ください。
ノードまたはノードプールの使用中に問題が発生した場合は、トラブルシューティングについて「ノードとノードプールの FAQ」をご参照ください。
ACK はクラスターのコスト管理ソリューションを提供します。詳細については、「コスト管理スイート」をご参照ください。
ノードプールに関連するベストプラクティスについては、「ノードとノードプールのベストプラクティス」をご参照ください。