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

Container Service for Kubernetes:仮想ノードの概要

最終更新日:Mar 04, 2026

多数の Pod を迅速に作成する必要がある場合、ECS ノードのスケーリング速度では対応が不十分となることがあります。また、余剰な ECS ノードを事前に確保すると、リソースの無駄遣いにつながります。仮想ノードは、固定のリソースプールを予約・管理することなく、Pod を Elastic Container Instance (ECI) インスタンスとして直接実行できるようにすることで、この課題を解決します。これにより、弾力的なスケーリングが可能となり、リソースコストを削減できます。

仮想ノードを利用する理由

仮想ノードとは

ACK クラスターにおいて、ノードはワークロードの実行に必要なコンピューティングおよびストレージリソースを提供する基本単位です。ほとんどの ACK クラスターには、少なくとも 1 つの ECS ノードプールが存在します。Pod が作成されると、kubelet によってノードプール内の ECS ノードにスケジュールされます。このスケジューリング方式は、トラフィックが安定しているアプリケーションに最適です。しかし、トラフィックの急増(バースト)には対応が難しく、ECS インスタンスの作成および起動には時間がかかるため、遅延が発生します。仮想ノードは、Alibaba Cloud Elastic Container Instance (ECI) 上に Pod を直接スケジュールすることを可能にし、ノード管理の運用負荷を軽減するとともに、アイドル状態のノードリソースによるコスト増加を回避します。

image
重要

ECS ノードと比較して、仮想ノードはカスタムラベル、アノテーション、Taint をサポートしません。

仮想ノードは、ack-virtual-node コンポーネント を使用してコンピューティングリソースをカプセル化し、基盤となるインフラストラクチャの管理を行わずにワークロードをデプロイできるようにします。このコンポーネントは、アプリケーション Pod を自動的に ECI 上で実行するようスケジュールします。ECI はサーバーレス型のコンテナサービスであり、各 ECI インスタンスは 1 つの Pod に対応します。ECI を使用してコンテナ化されたアプリケーションをデプロイする際には、コンテナイメージを指定するだけでよく、実際に使用したリソース分のみ課金されます。

主なメリット

仮想ノードには、以下のメリットがあります。

  • フルマネージド:基盤となるリソースプールを作成する必要がなく、運用・保守(O&M)負荷が低減されます。仮想ノードはマネージドリソースであり、Kubernetes ノードに対する通常の O&M 操作(例:システムアップグレードやセキュリティパッチの適用)は不要です。

  • 大規模なキャパシティ:容量計画を行うことなく、最大 50,000 個の Pod までスケールアウトできます。

    重要

    多数の Pod が Service と関連付けられている場合は、Pod 数を 20,000 個以内に保つことを推奨します。

  • 秒単位での弾力性:短時間で数千個の Pod を作成できます。これにより、トラフィックの急増時に Pod の作成遅延がサービスに影響を与えることを防ぎます。

  • 安全な隔離:Pod は ECI をベースに作成されます。各コンテナーインスタンスは、軽量なサンドボックス型コンテナ技術を用いて、他のインスタンスから厳密に隔離されます。

  • コスト効率が高い:アプリケーションは必要に応じてオンデマンドで作成され、従量課金方式で課金されます。アイドル状態のリソースに対しては課金されません。また、サーバーレスアーキテクチャにより、O&M コストも削減されます。

利用シーン

仮想ノードは、以下のようなユースケースに適しています。

  • オンラインサービス

    オンライン教育や e コマースなど、頻繁にトラフィックが急増するオンラインサービスでは、仮想ノードを活用することで秒単位でのスケーリングが可能です。これにより、トラフィックの急増時にスケールアウトが遅れることによるシステム障害を防止し、アイドル状態のリソースによる無駄を回避できます。

  • データ処理

    Spark や Presto などの同時実行数が多いオンラインデータ処理タスクでは、基盤となるリソースのコストに制約を受けずに並列処理を実現できます。ビッグデータ処理の要求に応えるために、数千個の Pod へ迅速にスケールアウトできます。

  • AI タスク

    モデル学習やモデル推論など、継続的に実行されないものの、大量のコンピューティングリソースを必要とする AI タスクでは、リソースを事前に確保する必要がありません。代わりに、必要に応じてリソースをオンデマンドで利用し、秒単位で課金されるため、AI 推論コストを削減できます。さらに、秒単位の弾力性により、バーストワークロードへの迅速な対応が可能です。

  • CI/CD ステージング環境

    CI/CD プロセスにおけるバッチテスト(例:CI パッケージング、ストレステスト、シミュレーションテスト)では、仮想ノードを活用して、任意のタイミングでコンテナインスタンスを作成・解放できます。リソースをオンデマンドで利用でき、秒単位で課金されるため、低コストで大規模なリソースを確保できます。

  • Job および CronJob

    Job や CronJob は継続的に実行されるものではなく、ジョブが完了すると停止し、対応する Pod は自動的に削除されます。仮想ノードを使用すれば、ジョブ完了時に課金が停止し、コンピューティングリソースが自動的に解放されるため、アイドル状態のリソースによる無駄を回避できます。

制限事項

仮想ノードをご利用になる前に、以下の制限事項をご確認ください。

  • DaemonSet はサポートされていません。DaemonSet の代わりにサイドカーコンテナーをご利用ください。

  • Pod の HostPath または HostNetworkマニフェスト で指定することはできません。

  • 特権付きコンテナーはサポートされていません。Security Context を使用して、Pod に必要な機能を追加できます。

    説明

    特権付きコンテナー機能は内部プレビュー版です。この機能を利用するには、チケットを送信してください。

  • NodePort Service およびセッションアフィニティ機能はサポートされていません。

  • 中国南部 Finance リージョンおよび Alibaba Gov Cloud リージョンはサポートされていません。

課金

仮想ノード自体は無料です。仮想ノード上で実行される ECI Pod については、ECI の課金ルールに基づき課金されます。詳細については、「ECI の課金概要」をご参照ください。

説明

ECI Pod は従量課金方式で課金されます。課金は ECI Pod が Pending 状態になった時点で開始され、Succeeded または Failed 状態になった時点で終了します。詳細については、「ECI Pod のライフサイクル」をご参照ください。

仮想ノードの使い方

クイックスタート

仮想ノードの使い方については、「Pod を ECI 上で実行するようにスケジュールする」をご参照ください。

ack-virtual-node コンポーネントのデプロイ

ACK クラスターに ack-virtual-node コンポーネントをデプロイすると、仮想ノード機能を有効化できます。

ACK マネージドクラスター

ACK マネージドクラスターでは、コンポーネント管理ページから ack-virtual-node コンポーネントをデプロイする必要があります。このコンポーネントはデフォルトでマネージド状態であり、ワーカーノードのリソースを消費しません。

  1. Container Service Management Console にログインします。左側のナビゲーションウィンドウで、クラスターリスト をクリックします。

  2. クラスターリスト ページで、ご利用のクラスター名をクリックします。左側のナビゲーションウィンドウで、アドオン管理 をクリックします。

  3. アドオン ページで、コアコンポーネント タブをクリックし、「ACK Virtual Node」を見つけ、インストール をクリックします。画面の指示に従って、インストールを完了します。

    インストール中、クラスターのデフォルト vSwitch およびセキュリティグループが、初期 ECI 構成パラメーターとして使用されます。これらのパラメーターを変更するには、「eci-profile の設定」を実行してください。

ACK 専用クラスター

ACK 専用クラスターでは、マーケットプレイス ページから ack-virtual-node コンポーネントをデプロイする必要があります。インストールが完了すると、ack-virtual-node-controller という名前の Deployment が kube-system 名前空間に作成され、ワーカーノード上で実行されます。

  1. Container Service Management Console にログインします。左側のナビゲーションウィンドウで、ストア > Marketplace をクリックします。

  2. マーケットプレイス ページで、アプリカタログ タブをクリックします。「ack-virtual-node」を検索して選択し、ack-virtual-node ページで デプロイ をクリックします。

  3. 作成 パネルで、クラスターおよび名前空間を選択し、次へ をクリックします。

    名前空間 は kube-system に設定され、リリース名 は ack-virtual-node に設定されます。

  4. パラメーター ページで、最新の Chart バージョン を選択します。パラメーター セクションで仮想ノードのパラメーターを構成し、OK をクリックします。

    パラメーター

    オプションのプロパティ

    説明

    取得方法

    ALIYUN_CLUSTERID

    必須

    クラスター ID。

    基本情報 タブの クラスター情報 ページから、クラスター ID を取得します。

    ALIYUN_RESOURCEGROUP_ID

    任意

    リソースグループ ID。

    このパラメーターを設定しない場合、デフォルトのリソースグループが使用されます。このパラメーターを設定するには、Resource Management コンソール にログインし、目的のリソースグループの ID を取得します。

    ECI_REGION

    必須

    リージョン ID。

    基本情報 タブの クラスター情報 ページから、リージョン 情報を取得します。

    説明

    リージョン名とリージョン ID の対応関係については、「リージョンとゾーン」をご参照ください。

    ECI_VPC

    任意

    VPC ID。

    基本情報 タブの クラスター情報 ページから、クラスターの VPC ID を取得します。

    ECI_VSWITCH

    必須

    vSwitch ID。

    アプリケーション Pod に IP アドレスを割り当てるために使用される vSwitch ID の一覧。複数の vSwitch ID をカンマ(,)で区切り、例: vsw-xxx1, vsw-xxx2。ノードプールと同じ vSwitch の一覧を使用することを推奨します。

    ノードプール ページで、ノードプールをクリックします。詳細 タブの ノード構成 セクションから、ノードの vSwitch ID を取得します。

    説明

    vSwitch が ECI がサポートするゾーンにあることをご確認ください。

    ECI_SECURITY_GROUP

    必須

    セキュリティグループ ID。

    基本情報 タブの クラスター情報 ページから、セキュリティグループ ID を取得します。

    ECI_ACCESS_KEY

    必須

    AccessKey ID。

    詳細については、「AccessKey ペアの取得」をご参照ください。

    RAM ユーザーに AliyunECIFullAccess ポリシーを付与します。詳細については、「RAM ユーザーへの権限付与」をご参照ください。

    ECI_SECRET_KEY

    必須

    AccessKey Secret。

    詳細については、「AccessKey ペアの取得」をご参照ください。

    RAM ユーザーに AliyunECIFullAccess ポリシーを付与します。詳細については、「RAM ユーザーへの権限付与」をご参照ください。

    KUBERNETES_APISERVER_HOST

    必須

    API サーバーの IP アドレス

    API サーバー の内部エンドポイントの IP アドレスおよびポート。これは、基本情報 タブの クラスター情報 ページで確認できます。

    KUBERNETES_APISERVER_PORT

    必須

    API サーバーのポート

  5. ack-virtual-node コンポーネントのデプロイメントステータスを確認します。

    kubectl -n kube-system get deploy ack-virtual-node-controller

    期待される出力:

    NAME                          READY   UP-TO-DATE   AVAILABLE   AGE
    ack-virtual-node-controller   1/1     1            1           2m31s

Pod を ECI 上で実行するようにスケジュールする

ACK では、ECS と ECI のハイブリッドデプロイメントという多様なスケジューリング要件に対応するため、複数のスケジューリングソリューションを提供しています。詳細については、「Pod を仮想ノードにスケジュールする」をご参照ください。

説明

ECI Pod のデフォルト CPU アーキテクチャは x86、デフォルトオペレーティングシステムは Linux です。Arm アーキテクチャまたは Windows オペレーティングシステムを使用する ECI Pod を作成するには、「Arm 対応仮想ノードに Pod をスケジュールする」または「(招待制プレビュー)Windows 仮想ノードに Pod をスケジュールする」をご参照ください。

ECI Pod の柔軟な構成

Pod のアノテーションを活用することで、ECI の機能(例:ECI Pod の仕様指定、Pod 作成高速化のためのイメージキャッシュの有効化、ECI Pod への IPv6 アドレス割り当て、一時記憶領域のサイズ拡張など)を構成できます。詳細については、「ECI Pod のアノテーション」をご参照ください。

説明

eci-profile の ECI Effect 機能を活用することで、特定の条件を満たす ECI Pod に必要なアノテーションを動的に追加できます。これにより、Pod の一括オーケストレーションが可能になります。

仮想ノードの管理

ack-virtual-node コンポーネントのアップグレード

仮想ノードの高度な機能を利用するには、ack-virtual-node コンポーネントをアップグレードする必要があります。

重要

アップグレードには約 1 分かかります。アップグレード中は Pod の作成ができませんが、既存の Pod には影響しません。

ACK マネージドクラスター

  1. Container Service Management Console にログインします。左側のナビゲーションウィンドウで、クラスターリスト をクリックします。

  2. クラスターリスト ページで、ご利用のクラスター名をクリックします。左側のナビゲーションウィンドウで、アドオン管理 をクリックします。

  3. アドオン ページで、コアコンポーネント タブをクリックし、「ACK Virtual Node」を見つけ、アップグレード をクリックします。画面の指示に従って、アップグレードを完了します。

ACK 専用クラスター

  1. Container Service Management Console にログインします。左側のナビゲーションウィンドウで、クラスターリスト をクリックします。

  2. クラスターリスト ページで、ご利用のクラスター名をクリックします。左側のナビゲーションウィンドウで、アプリケーション > Helm をクリックします。

  3. Helm のリストで、「ack-virtual-node」を見つけ、更新 をクリックします。操作 列の バージョン セクションで、最新の Chart バージョンを選択します。

  4. パラメーター構成セクションでパラメーターを更新し、OK をクリックします。

    また、virtualNode.image.tag を指定することで、イメージを特定のバージョンにアップグレードできます。

仮想ノード構成の変更

eci-profile には、ACS および ECI Pod が属する VPC や vSwitch、Arm 仮想ノードの有効化の有無などの構成が含まれています。必要に応じて、data フィールド内の固定構成項目を更新できます。

仮想ノードの削除

ack-virtual-node コンポーネントをアンインストールすると、仮想ノードが自動的に削除され、クラスター内の ACS および ECI Pod も自動的にクリアされます。

  1. クラスター内の ACS および ECI Pod を確認し、Pod の削除後にサービスに影響がないことを確認します。

  2. ack-virtual-node コンポーネントをアンインストールします。

    • ACK マネージドクラスターアドオン ページで、ack-virtual-node コンポーネントをアンインストールします。

    • ACK 専用クラスターHelm ページで、ack-virtual-node コンポーネントを削除します。

よくある質問