ノードプールは、同じ属性を持つノードの集まりであり、ノードのアップグレードや自動スケーリングなどの管理と操作を合理化できます。 ノードプールは、OS CVEの脆弱性修復、自動ノード回復、kubeletおよびcontainerdバージョンのアップグレードなどの自動操作もサポートし、運用コストを最小限に抑えます。
ノードプールの概要
ノードプールを構成テンプレートと見なします。プールに追加されたノードはその構成を継承します。 クラスター内では、さまざまな構成とタイプを持つ複数のノードプールを確立できます。 ノードプール構成の構成には、インスタンス仕様、課金タイプ、ゾーン (vSwitch) 、オペレーティングシステムイメージ、CPUアーキテクチャ、タグ、およびテイントなどのプロパティが含まれます。 これらのプロパティは、ノードプールの作成中に設定されるか、後で変更できます。 ノードプールの作成方法の詳細については、「ノードプールの作成と管理」をご参照ください。
ノードプールの導入前に作成されたクラスターには、空きノードが含まれます。 これらのノードを引き続き使用するには、ノードプールに組み込んで管理することをお勧めします。 手順については、「ノードプールへの空きノードの追加」をご参照ください。
単一のノードプールは管理と構成を簡素化し、複数のノードプールは、異なるノードタイプの改良されたリソース分離と混合展開を可能にします。
単一ノードプール | 複数のノードプール |
複数のチームまたはさまざまなワークロードのコンピューティングリソースを単一のノードプールで管理し、運用とメンテナンスを簡素化します。 単一ノードプールは、次の機能をサポートできます。
現在、異なるオペレーティングシステムタイプとCPUアーキテクチャ (Armおよびx86) のインスタンスの混合はサポートされていません。 | 複数のノードプールを作成して、異なるワークロードまたはチームに独立したコンピューティングリソースを提供し、リソースの競合や潜在的なセキュリティリスクを回避します。 次のシナリオに適しています。
|
複数のノードプールを利用することで、スケジューリングポリシーを通じて異なるノードプールに優先順位を付け、リソースとコストの管理を強化できます。 次のシナリオを考えてみましょう。
プリエンプティブルインスタンスやサブスクリプションインスタンスなど、さまざまなコストでコンピューティングリソースの優先順位を管理して、費用を最小限に抑えます。
使用するx86およびArmアーキテクチャの割合など、ワークロード要件に基づいてさまざまなインスタンスタイプを割り当てます。
ノードプールの特徴
Container Service for Kubernetes (ACK) は、ノード管理を簡素化するために、ノードプールレベルでさまざまな機能を提供します。 大規模なワーカーノードのメンテナンスの負担なしに、より高いレベルのアプリケーションの開発に専念することを好む人のために、マネージドノードプール機能は、様々な自動化された操作およびメンテナンス能力を利用することを可能にすることができる。
基本機能
特集アイテム | 説明 | 関連ドキュメント |
作成、編集、削除、および表示 |
| |
手動または自動スケーリング |
| |
既存ノードの追加 | 購入したECSインスタンスをワーカーノードとしてACKクラスターに追加するか、削除後にワーカーノードをノードプールに再追加する必要がある場合は、既存ノードの追加機能を使用できます。 この機能には、いくつかの使用制限と注意事項があります。 詳細については、ドキュメントを参照してください。 | |
ノードの削除 | 特定のノードが不要になった場合は、クラスターまたはノードプールからそれらを削除できます。 標準化された操作を実行して、予期しない動作を回避します。 | |
kubeletバージョンのアップグレード | 自動O&M機能の有効化 ノードプール内のノードのkubeletバージョンとcontainerdバージョンをアップグレードします。 | |
オペレーティングシステムの交換 | オペレーティングシステムのバージョンのアップグレードとオペレーティングシステムの種類の置き換え (EOLオペレーティングシステムをContainerOSまたはAlibaba Cloud Linuxに切り替えるなど) をサポートします。 | |
CVE脆弱性修復 | 自動O&M機能の有効化 ノードオペレーティングシステムのセキュリティ脆弱性を手動でスキャンして修復します。 一部のCVE脆弱性では、ノードの再起動を修復する必要があります。 機能の説明と注意事項については、ドキュメントを参照してください。 | |
ノードプールkubeletパラメーターのカスタマイズ | コンソールにログインして、ノードのkubeletパラメーター設定をノードプールレベルでカスタマイズし、クラスター全体のリソースを予約してリソース使用量を割り当てるなど、ノードの動作を調整します。 ACKコンソールで使用できないkubeletパラメーターをカスタマイズするためにCLIを使用しないことをお勧めします。 | |
ノードプールOSパラメータのカスタマイズ | コンソールにログインして、ノードのOSパラメーター設定をノードプールレベルでカスタマイズし、システムパフォーマンスを最適化します。 ACKコンソールで使用できないOSパラメーターをカスタマイズするために、CLIを使用しないことをお勧めします。 |
自動O&M機能
ノードプールの自動O&M機能をアクティブ化すると、メンテナンスの負担が軽減され、ACKがOS CVEの脆弱性の修復、kubeletのアップグレード、ノードの自己回復などのタスクを処理できるようになります。 ただし、アプリケーションが基になるノードの変更に敏感で、再起動やポッドの移行を許容できない場合は、これらの機能を有効にすることはお勧めしません。
準備
オペレーティングシステムがAlibaba Cloud Linux 3 Container-optimized、ContainerOS、Alibaba Cloud Linux、Red Hat、またはUbuntuのいずれかであることを確認します。
サポートされているオペレーティングシステムイメージとACKクラスターでの使用制限については、「OSイメージ」をご参照ください。
ノードプールで自動O&M機能を使用する前に、[ACKコンソール] [ノードプール] ページで次の手順を実行します (設定は後で調整できます) 。
ノードプールの作成と編集の手順については、「ノードプールの作成と管理」をご参照ください。
特集紹介
機能アイテム | 説明 |
kubeletバージョンとランタイムバージョンの自動アップグレード | kubeletバージョンとcontainerdランタイムアップグレードを自動的に維持します。
関連する機能の概要と重要な注意事項については、「ノードプールの更新」をご参照ください。 |
OS CVEの脆弱性の自動修復 | ACKは、ノードのセキュリティ脆弱性をスキャンし、クラスタのメンテナンス期間に従ってCVE脆弱性の修復をスケジュールし、クラスタの安定性、セキュリティ、およびコンプライアンスを強化します。 関連ノートについては、「ノードプールのパッチOS CVE脆弱性」をご参照ください。 |
ECSシステムイベントへの自動応答 | ECSシステムイベントへの自動応答をサポートします。 サポートされるシステムイベントの種類は次のとおりです。
|
ノードの自動修復 | ACKは、 |
ノードプールのライフサイクル
ACKクラスター内のノードプールのライフサイクルには、作成と展開から、スケーリング、アップグレード、ノードの削除、最終的には削除などの進行中のメンテナンス活動まで、いくつかの段階が含まれます。 様々な状態およびそれらの遷移を以下に概説する。
ノードプールのステータス | 説明 |
初期化 (初期) | ノードプールが作成中です。 |
有効化 (アクティブ) | ノードプールは正常に作成され、実行されます。 |
失敗 (失敗) | ノードプールの作成に失敗しました。 |
スケールアウト (スケーリング) | ノードプールはスケールアウトまたはノードの追加中です。 |
更新 (更新) | ノードプールの構成が更新中です。 |
削除 (removing_nodes) | ノードはノードプールから削除されています。 |
アップグレード (アップグレード) | ノードプールがアップグレード中です。 |
修理 (修理) | ノードプールノード、ノードプールCVEの脆弱性などの修復。 |
削除 (削除) | ノードプールが削除中です。 |
削除済み (削除済み、このステータスは表示されません) | ノードプールは正常に削除されました。 |
ノードプールの課金
ノードプールとその自動O&M機能は無料ですが、ECSインスタンスなどのノードプール内のクラウドリソースには、それぞれのクラウドプロダクトから料金が発生します。
ECSインスタンスの課金ルールの詳細については、「課金の概要」をご参照ください。
ノードプール内の既存のノードの課金タイプを変更するには、「インスタンスの課金方法を従量課金からサブスクリプションに変更する」をご参照ください。 ノードプールの課金タイプの変更は、新しく追加されたノードにのみ影響し、既存のノードの課金タイプは変更されません。
スケーリンググループの課金の詳細については、「課金の概要」をご参照ください。
関連用語
初めて使用する前に、ノードプールに関連する次の概念と用語をよく理解してください。
スケーリンググループ: ACKは、ノードプールの拡張 (スケールアウト) および縮小 (スケールイン) アクティビティにAuto Scalingサービスを利用します。 各ノードプールは、単一のスケーリンググループインスタンスに直接関連付けられます。 スケーリンググループは、ワーカーノードとして機能する1つ以上のECSインスタンスで構成されます。
スケーリング設定: ノードプールはスケーリング設定を使用して、ノードプロパティを基本レベルで管理します。 Auto Scaling設定は、auto scaling中にECSインスタンスのテンプレートとして機能し、スケーリングアクティビティがトリガーされると、これらのテンプレートに基づいてインスタンスが自動的に作成されます。
スケーリングアクティビティ: ノードプール内の各ノードの追加または削除により、スケーリングアクティビティが開始されます。 システムは自動的にすべてのスケーリングアクションを完了し、アクティビティをログに記録するため、ノードプールのスケーリングアクティビティを介して過去のスケーリングレコードを確認できます。
システムディスクの交換: 既存のノードの追加やコンテナランタイムの更新など、一部のノードプール操作では、システムディスクの交換によるノードの再初期化が行われます。 このプロセスでは、名前、インスタンスID、IPなどのノード固有のプロパティは変更されませんが、システムディスク上のデータは消去されます。 接続されたデータディスクは影響を受けません。
ACKがディスク交換を実行すると、影響を受けるノードからPDBに準拠した他の使用可能なノードにポッドを再配置するためにノードドレインを開始します。 高いサービス可用性を維持するために、マルチレプリカ展開戦略を実装し、複数のノードにワークロードを分散させ、重要なサービス用にPDBを設定してポッドの同時中断を管理することをお勧めします。
インプレースアップグレード: ディスク交換の代わりに、このメソッドは、元のノードで必要なコンポーネントを再初期化したり、ノードに存在するデータに影響を与えたりすることなく、直接更新および交換します。
関連ドキュメント
ノードプールのベストプラクティスの詳細については、「ノードとノードプールのベストプラクティス」をご参照ください。
Kubernetes 1.24を実行するクラスターは、組み込みコンテナランタイムとしてDockerをサポートしなくなります。 containerdに移行する方法の詳細については、「コンテナランタイムをDockerからcontainerdに移行する」をご参照ください。
クラスターの負荷が増加するにつれて、自動スケーリングソリューションでノードリソースを動的に調整できるようにすることを検討してください。 詳細については、「自動スケーリング」をご参照ください。
アプリケーションポッドのノードプールを指定する方法の詳細については、「特定のノードプールへのアプリケーションポッドのスケジュール」をご参照ください。
ACK Basicクラスターは、最大10ノードをサポートします。 制限を増やす必要がある場合は、ACK Proクラスターへのホットマイグレーションを実行することを推奨します。 詳細については、「ACK基本クラスターからACK Proクラスターへのホットマイグレーション」をご参照ください。
ノードまたはノードプールに関連する問題のトラブルシューティング方法の詳細については、「ノードおよびノードプールに関するよくある質問」をご参照ください。
ACKは、クラスターコスト管理ソリューションを提供します。 詳細については、「コストスイート」をご参照ください。
