すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:ノードプールの概要

最終更新日:Feb 19, 2025

ノードプールは、同じ属性を持つノードの集まりであり、ノードのアップグレードや自動スケーリングなどの管理と操作を合理化できます。 ノードプールは、OS CVEの脆弱性修復、自動ノード回復、kubeletおよびcontainerdバージョンのアップグレードなどの自動操作もサポートし、運用コストを最小限に抑えます。

ノードプールの概要

ノードプールを構成テンプレートと見なします。プールに追加されたノードはその構成を継承します。 クラスター内では、さまざまな構成とタイプを持つ複数のノードプールを確立できます。 ノードプール構成の構成には、インスタンス仕様、課金タイプ、ゾーン (vSwitch) 、オペレーティングシステムイメージ、CPUアーキテクチャ、タグ、およびテイントなどのプロパティが含まれます。 これらのプロパティは、ノードプールの作成中に設定されるか、後で変更できます。 ノードプールの作成方法の詳細については、「ノードプールの作成と管理」をご参照ください。

ノードプールの導入前に作成されたクラスターには、空きノードが含まれます。 これらのノードを引き続き使用するには、ノードプールに組み込んで管理することをお勧めします。 手順については、「ノードプールへの空きノードの追加」をご参照ください。

単一のノードプールは管理と構成を簡素化し、複数のノードプールは、異なるノードタイプの改良されたリソース分離と混合展開を可能にします。

単一ノードプール

複数のノードプール

複数のチームまたはさまざまなワークロードのコンピューティングリソースを単一のノードプールで管理し、運用とメンテナンスを簡素化します。 単一ノードプールは、次の機能をサポートできます。

  • 複数のチームのコンピューティングリソースを同時に管理します。

  • さまざまなワークロードのニーズを満たすために、通常のECS (Elastic Compute Service) インスタンス、GPU高速化インスタンス、elastic bare metalインスタンス、高性能コンピューティング最適化インスタンスなど、複数のインスタンスタイプを設定します。

  • 複数のゾーンにノードを分散して高可用性を向上させます。

現在、異なるオペレーティングシステムタイプとCPUアーキテクチャ (Armおよびx86) のインスタンスの混合はサポートされていません。

複数のノードプールを作成して、異なるワークロードまたはチームに独立したコンピューティングリソースを提供し、リソースの競合や潜在的なセキュリティリスクを回避します。 次のシナリオに適しています。

  • テナントの分離、異なるチームに独立したコンピューティングリソースを提供し、請求管理を容易にします。

  • ハードウェアリソースの合理的な割り当てを確保するために、異なるハードウェア仕様 (CPUアーキテクチャ、GPU、FPGAなど) を持つマシンを分離します。

  • 機密アプリケーションのセキュリティ分離を強化します。

  • 異なるオペレーティングシステムを展開する。

複数のノードプールを利用することで、スケジューリングポリシーを通じて異なるノードプールに優先順位を付け、リソースとコストの管理を強化できます。 次のシナリオを考えてみましょう。

  • プリエンプティブルインスタンスやサブスクリプションインスタンスなど、さまざまなコストでコンピューティングリソースの優先順位を管理して、費用を最小限に抑えます。

  • 使用するx86およびArmアーキテクチャの割合など、ワークロード要件に基づいてさまざまなインスタンスタイプを割り当てます。

ノードプールの特徴

Container Service for Kubernetes (ACK) は、ノード管理を簡素化するために、ノードプールレベルでさまざまな機能を提供します。 大規模なワーカーノードのメンテナンスの負担なしに、より高いレベルのアプリケーションの開発に専念することを好む人のために、マネージドノードプール機能は、様々な自動化された操作およびメンテナンス能力を利用することを可能にすることができる。

基本機能

特集アイテム

説明

関連ドキュメント

作成、編集、削除、および表示

  • コンソールによるノードプールの作成、基本情報、ネットワーク構成、インスタンス仕様、ストレージ構成、予想ノード数などの設定をサポートします。

  • 既存のノードプールの構成の調整をサポートします。 編集可能な設定項目および操作ノートについては, 詳しくはドキュメントを参照してください。

  • ノードが不要になった場合は、ノードプールを削除できます。 予想されるノード数が有効になっているかどうか、およびノードプールの課金モードは、ノード解放の動作に影響します。

  • 基本構成情報、リソースダッシュボード、ノードリスト、スケーリングアクティビティなどを含む、ノードプールの詳細の表示をサポートします。

ノードプールの作成と管理

手動または自動スケーリング

  • ノードプール内のノードの予想数を手動で調整してスケーリングを実現し、ノード数を予想数に保ち、リソースコストを節約します。

    削除、変更、リリースなどの一部の非標準操作では、ノードプールが予想どおりにスケーリングされない場合があります。 詳細については、ドキュメントを参照してください。

  • ノード自動スケーリングソリューションの設定をサポートします。 クラスターの容量計画がアプリケーションポッドのスケジューリングを満たすことができない場合、ノードリソースを自動的にスケーリングします。

既存ノードの追加

購入したECSインスタンスをワーカーノードとしてACKクラスターに追加するか、削除後にワーカーノードをノードプールに再追加する必要がある場合は、既存ノードの追加機能を使用できます。 この機能には、いくつかの使用制限と注意事項があります。 詳細については、ドキュメントを参照してください。

既存のECSインスタンスをACKクラスターに追加

ノードの削除

特定のノードが不要になった場合は、クラスターまたはノードプールからそれらを削除できます。 標準化された操作を実行して、予期しない動作を回避します。

ノードの削除

kubeletバージョンのアップグレード

自動O&M機能の有効化

ノードプール内のノードのkubeletバージョンとcontainerdバージョンをアップグレードします。

ノードプールの更新

オペレーティングシステムの交換

オペレーティングシステムのバージョンのアップグレードとオペレーティングシステムの種類の置き換え (EOLオペレーティングシステムをContainerOSまたはAlibaba Cloud Linuxに切り替えるなど) をサポートします。

オペレーティングシステムの変更

CVE脆弱性修復

自動O&M機能の有効化

ノードオペレーティングシステムのセキュリティ脆弱性を手動でスキャンして修復します。 一部のCVE脆弱性では、ノードの再起動を修復する必要があります。 機能の説明と注意事項については、ドキュメントを参照してください。

パッチOS CVEノードプールの脆弱性

ノードプールkubeletパラメーターのカスタマイズ

コンソールにログインして、ノードのkubeletパラメーター設定をノードプールレベルでカスタマイズし、クラスター全体のリソースを予約してリソース使用量を割り当てるなど、ノードの動作を調整します。 ACKコンソールで使用できないkubeletパラメーターをカスタマイズするためにCLIを使用しないことをお勧めします。

ノードプールのkubeletパラメーターのカスタマイズ

ノードプールOSパラメータのカスタマイズ

コンソールにログインして、ノードのOSパラメーター設定をノードプールレベルでカスタマイズし、システムパフォーマンスを最適化します。 ACKコンソールで使用できないOSパラメーターをカスタマイズするために、CLIを使用しないことをお勧めします。

ノードプールのOSパラメーターのカスタマイズ

自動O&M機能

ノードプールの自動O&M機能をアクティブ化すると、メンテナンスの負担が軽減され、ACKがOS CVEの脆弱性の修復、kubeletのアップグレード、ノードの自己回復などのタスクを処理できるようになります。 ただし、アプリケーションが基になるノードの変更に敏感で、再起動やポッドの移行を許容できない場合は、これらの機能を有効にすることはお勧めしません。

準備

  • オペレーティングシステムがAlibaba Cloud Linux 3 Container-optimizedContainerOS、Alibaba Cloud Linux、Red Hat、またはUbuntuのいずれかであることを確認します。

    サポートされているオペレーティングシステムイメージとACKクラスターでの使用制限については、「OSイメージ」をご参照ください。

  • ノードプールで自動O&M機能を使用する前に、[ACKコンソール] [ノードプール] ページで次の手順を実行します (設定は後で調整できます) 。

    ノードプールの作成と編集の手順については、「ノードプールの作成と管理」をご参照ください。

    展開して準備を表示

    • ノードプールのマネージ機能の有効化

      • 新しいノードプール: 作成時に [管理対象ノードプール] を選択します。

      • 既存のノードプール: ノードプールリストの [操作] 列で、目的のノードプールの [詳細] > [管理対象ノードプールの有効化] をクリックします。

    • 必要に応じて自動O&M機能を有効にする

      これには、自動ノード回復、kubeletとランタイムバージョンのアップグレード、OS CVEの脆弱性の修復が含まれます。

    • クラスターのメンテナンスウィンドウの設定

      自動O&Mタスクは、設定されたメンテナンスウィンドウ内で実行されます。

      • 新しいノードプール: 作成時に管理対象ノードプールメンテナンス期間を設定します。

      • 既存のノードプール: ノードプールリストの [操作] 列で、[詳細] > [管理対象ノードプールの設定] をクリックし、メンテナンス期間を設定します。

    構成例を次の図に示します。

    image

特集紹介

機能アイテム

説明

kubeletバージョンとランタイムバージョンの自動アップグレード

kubeletバージョンとcontainerdランタイムアップグレードを自動的に維持します。

  • kubelet upgrade: デフォルトで一括アップグレードを使用して、ノードプール内のすべてのノードのkubeletをコントロールプレーンのバージョンに合わせて自動的に更新します。

  • コンテナランタイムのアップグレード: ノードのコンテナランタイムは、更新のリリース後に最新バージョンにアップグレードされます。

    コンテナーに重大なOS CVEの脆弱性がある場合、デフォルトでACKは必要なアップグレードとパッチを自動的に実行します。

関連する機能の概要と重要な注意事項については、「ノードプールの更新」をご参照ください。

OS CVEの脆弱性の自動修復

ACKは、ノードのセキュリティ脆弱性をスキャンし、クラスタのメンテナンス期間に従ってCVE脆弱性の修復をスケジュールし、クラスタの安定性、セキュリティ、およびコンプライアンスを強化します。 関連ノートについては、「ノードプールのパッチOS CVE脆弱性」をご参照ください。

ECSシステムイベントへの自動応答

ECSシステムイベントへの自動応答をサポートします。 サポートされるシステムイベントの種類は次のとおりです。

  • システムメンテナンスによるインスタンスの再起動 (SystemMaintenance.Reboot)

    自動応答フロー

    1. イベントを受信すると、ACKはテキストまたは内部メッセージ通知を送信します。 これらの通知を注意深く監視します。

    2. 影響を受けるECSインスタンスをドレインし、ポッドを他のアクティブノードに移行し、ECSインスタンスを再起動します。

      • ノードプールにECSのスケジュールされた実行時間の前に使用可能なメンテナンスウィンドウがある場合、ACKはこのウィンドウの間に自動応答を実行します。 それ以外の場合、ACKはECSのスケジュールされた実行時間の1時間前にプロセスを実行します。

      • 排水操作は、ノードからポッドを追い出します。 サービスの継続性を確保するには、複数のレプリカをノードにデプロイし、重要なアプリケーションにPodDisruptionBudgets (PDB) を使用することを検討してください。

      • 排水に失敗した場合、ACKはインスタンスを強制的に再起動しません。

ノードの自動修復

ACKは、状態情報などのノードの健全性を継続的に監視する。 ノードが応答しなくなると、ACKは自動的に回復アクションを開始し、ノード機能を維持します。 いくつかの複雑なノードの問題は、依然として手動介入を必要とする。 トリガー、イベント、およびリカバリプロセスの詳細については、「ノードの自動修復の有効化」をご参照ください。

ノードプールのライフサイクル

ACKクラスター内のノードプールのライフサイクルには、作成と展開から、スケーリング、アップグレード、ノードの削除、最終的には削除などの進行中のメンテナンス活動まで、いくつかの段階が含まれます。 様々な状態およびそれらの遷移を以下に概説する。

image

ノードプールのステータス

説明

初期化 (初期)

ノードプールが作成中です。

有効化 (アクティブ)

ノードプールは正常に作成され、実行されます。

失敗 (失敗)

ノードプールの作成に失敗しました。

スケールアウト (スケーリング)

ノードプールはスケールアウトまたはノードの追加中です。

更新 (更新)

ノードプールの構成が更新中です。

削除 (removing_nodes)

ノードはノードプールから削除されています。

アップグレード (アップグレード)

ノードプールがアップグレード中です。

修理 (修理)

ノードプールノード、ノードプールCVEの脆弱性などの修復。

削除 (削除)

ノードプールが削除中です。

削除済み (削除済み、このステータスは表示されません)

ノードプールは正常に削除されました。

ノードプールの課金

ノードプールとその自動O&M機能は無料ですが、ECSインスタンスなどのノードプール内のクラウドリソースには、それぞれのクラウドプロダクトから料金が発生します。

関連用語

初めて使用する前に、ノードプールに関連する次の概念と用語をよく理解してください。

  • スケーリンググループ: ACKは、ノードプールの拡張 (スケールアウト) および縮小 (スケールイン) アクティビティにAuto Scalingサービスを利用します。 各ノードプールは、単一のスケーリンググループインスタンスに直接関連付けられます。 スケーリンググループは、ワーカーノードとして機能する1つ以上のECSインスタンスで構成されます。

  • スケーリング設定: ノードプールはスケーリング設定を使用して、ノードプロパティを基本レベルで管理します。 Auto Scaling設定は、auto scaling中にECSインスタンスのテンプレートとして機能し、スケーリングアクティビティがトリガーされると、これらのテンプレートに基づいてインスタンスが自動的に作成されます。

  • スケーリングアクティビティ: ノードプール内の各ノードの追加または削除により、スケーリングアクティビティが開始されます。 システムは自動的にすべてのスケーリングアクションを完了し、アクティビティをログに記録するため、ノードプールのスケーリングアクティビティを介して過去のスケーリングレコードを確認できます。

  • システムディスクの交換: 既存のノードの追加やコンテナランタイムの更新など、一部のノードプール操作では、システムディスクの交換によるノードの再初期化が行われます。 このプロセスでは、名前、インスタンスID、IPなどのノード固有のプロパティは変更されませんが、システムディスク上のデータは消去されます。 接続されたデータディスクは影響を受けません。

    ACKがディスク交換を実行すると、影響を受けるノードからPDBに準拠した他の使用可能なノードにポッドを再配置するためにノードドレインを開始します。 高いサービス可用性を維持するために、マルチレプリカ展開戦略を実装し、複数のノードにワークロードを分散させ、重要なサービス用にPDBを設定してポッドの同時中断を管理することをお勧めします。

  • インプレースアップグレード: ディスク交換の代わりに、このメソッドは、元のノードで必要なコンポーネントを再初期化したり、ノードに存在するデータに影響を与えたりすることなく、直接更新および交換します。

関連ドキュメント