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

Container Service for Kubernetes:仮想ノードにおけるサーバーレス弾力性

最終更新日:Jan 26, 2025

Container Service for Kubernetes (ACK) クラスターを使用する場合、短時間で多くのポッドを起動する必要があります。 仮想ノードは、ノードプールを予約または維持する必要なしに迅速なポッド作成を可能にし、柔軟性を提供し、リソースコストを削減します。 追加のelastic Compute Service (ECS) ノードの予約に伴うスケールアウト速度の低下や潜在的なリソースの浪費を回避して、Elasticコンテナインスタンスへのポッドの直接スケジューリングを可能にします。

なぜ仮想ノードが必要なのですか?

仮想ノードとは何ですか?

ノードは、ACKクラスターでワークロードを実行するためのコンピューティングリソースとストレージリソースを提供する基本単位です。 ほとんどの場合、ACKクラスターには少なくとも1つのECS (Elastic Compute Service) ノードプールがあります。 ポッドが作成されると、kubeletはポッドをノードプール内のECSノードにスケジュールします。 このスケジューリングモードは、安定したトラフィック量を受信するアプリケーションに適しています。 ただし、ACKがECSインスタンスをスケールアウトできる場合でも、このスケジューリングモードではトラフィックスパイクを効率的に処理できません。 これは、ECSインスタンスの作成と起動に時間がかかるためです。 仮想ノードの助けを借りて、ポッドを

elasticコンテナーインスタンス。 これにより、ノードのO&Mが簡単になり、アイドルノードがなくなり、リソースコストが削減されます。

仮想ノードは、ack-virtual-nodeコンポーネントを使用して計算リソースをカプセル化します。 これにより、インフラストラクチャについて心配することなくワークロードをデプロイできます。 ack-virtual-nodeは、ポッドをエラスティックコンテナインスタンスに自動的にスケジュールします。 Elastic Container Instanceはサーバーレスコンテナサービスで、各elastic container instanceはポッドに相当します。 エラスティックコンテナインスタンスにアプリケーションをデプロイするには、コンテナをデプロイするためのDockerイメージを提供し、コンテナが消費するリソースの料金を支払うだけです。

メリット

仮想ノードには次の利点があります。

  • O&Mフリー: インフラストラクチャリソースを管理または維持する必要はありません。 さらに、仮想ノードはホストされたリソースであるため、システムの更新やパッチのインストールなど、仮想ノードに対して通常のノードO&M操作を実行する必要はありません。

  • 超大容量: 事前に計画を立てなくても、クラスター内の50,000のポッドにスケールアウトできます。

    重要

    ポッドが多くのサービスに関連付けられている場合は、クラスター内に保持するポッドを20,000個未満にすることをお勧めします。

  • 第2レベルのスケーリング: トラフィックの急増を処理するために、短時間で数千のポッドを作成できます。

  • セキュリティの分離: elasticコンテナインスタンスにポッドをデプロイできます。 ポッドがデプロイされているインスタンスは、軽量仮想サンドボックスを使用して互いに分離されます。

  • コスト削減: ポッドはオンデマンドで作成され、従量課金制で請求されます。 サーバーレスアーキテクチャは、リソースの無駄を防ぎ、O&Mコストを削減するのに役立ちます。

シナリオ

仮想ノードは、その特性と利点に基づいて、次のシナリオに適しています。

  • オンラインビジネス

    オンライン教育やeコマースなど、トラフィックの急増を頻繁に処理する必要があるオンラインビジネスでは、仮想ノードを使用すると、ピーク時にリソースをスケールアウトできないことによるシステムの過負荷を防ぎ、ピーク時以外にリソースを浪費することを回避できます。

  • 情報処理

    仮想ノードを使用して、SparkタスクやPrestoタスクなどの多数の同時オンラインタスクを処理する場合、基盤となるリソースのコストを心配する必要がなくなります。 数千のポッドを短期間でデプロイして、ビッグデータビジネスを処理できます。

  • AIジョブ

    仮想ノードを使用する場合、モデルトレーニングやモデル推論ジョブなど、大量のコンピューティングリソースを消費する長期AIジョブのリソースを予約する必要はありません。 リソースはオンデマンドでデプロイし、コストを削減するために1秒単位で請求できます。 さらに、リソースを数秒以内にスケールアウトして、予期しないジョブを処理できます。

  • CI/CDテスト

    仮想ノードを使用して、コンテナインスタンスをいつでも作成およびリリースして、CIパッケージ、ストレステスト、シミュレーションテストなどのCI/CDのバッチテストタスクを処理できます。 リソースはオンデマンドでデプロイでき、1秒ごとに課金されます。 これにより、多くのリソースを低コストでプロビジョニングできます。

  • 仕事とCronJobs

    ジョブとCronJobsは、完了後に自動的に終了します。 JobsとCronJobsによって作成されたポッドも削除されます。 仮想ノードを使用する場合、JobまたはCronJobが完了した後、リソースの課金が自動的に停止し、追加コストが発生しないようにコンピューティングリソースがリリースされます。

制限事項

仮想ノードは、Kubernetes V1.28以降を実行するACK Edgeクラスターで使用できます。 使用前にそれらの制限に慣れることをお勧めします。

  • DaemonSetsはサポートされていません。 DaemonSetsをサイドカーコンテナに置き換えることができます。

  • ポッドマニフェストHostPathまたはHostNetworkを指定することはできません。

  • 特権コンテナはサポートされません。 セキュリティコンテキストを使用して、ポッドに機能を追加できます。

    説明

    特権コンテナー機能は内部プレビュー中です。 この機能を使用するには、

    チケットを起票してサポートセンターにお問い合わせくださいしてサポートセンターにお問い合わせください。

  • NodePortサービスとセッションアフィニティ機能はサポートされていません。

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

課金

仮想ノード機能は無料です。 仮想ノードを使用すると、ACKクラスター管理料金が課金されます。 さらに、Elastic Container Instance、virtual Private Cloud (VPC) 、Server Load Balancer (SLB) など、仮想ノードによって使用されるAlibaba Cloudサービスも課金されます。 エラスティックコンテナインスタンスでポッドを実行するための料金の詳細については、「課金の概要」をご参照ください。

クイックスタート

ポッドを仮想ノードにスケジュールする方法については、[ポッドを仮想ノードとしてデプロイされたエラスティックコンテナインスタンスにスケジュールする] を参照してください。

  1. ack-virtual-nodeコンポーネントをインストールして、仮想ノード機能を有効にします。

  2. 仮想ノードとして機能するエラスティックコンテナインスタンスにポッドをスケジュールするには、ポッドまたは名前空間にラベルを追加します。

関連する操作

Elastic Container InstanceプラットフォームバージョンがターゲットKubernetesバージョンと互換性があることを確認します。 クラスターをアップグレードする前に、システムはElastic Container InstanceプラットフォームバージョンとKubernetes間の互換性をチェックします。 Elastic Container InstanceベースのポッドがターゲットKubernetesバージョンと互換性がない場合は、クラスターをアップグレードする前に手動で削除して再作成する必要があります。 詳細については、「Elastic Container Instanceプラットフォームのバージョンの更新」をご参照ください。

サポートされる操作

説明

関連ドキュメント

ポッドの柔軟な構成

ECIプロファイル (eci-profileという名前のConfigMap) を作成して、セキュリティグループとゾーンを含むElastic Container Instanceベースのポッドを一括設定します。 更新された設定は、再起動せずに新しいElastic Container Instanceベースのポッドに直ちに適用されます。 既存のElastic Container Instanceベースのポッドは、ローリング更新後に更新を適用します。

eci-profileの設定

ポッド注釈を追加して、エラスティックコンテナインスタンスタイプの指定、イメージキャッシュによるポッド作成の高速化、IPv6アドレスのElastic Container Instanceベースのポッドへの割り当て、一時ストレージの拡張など、一部のelastic container instance機能を使用できます。

ECIポッドの注釈

ポッドを仮想ノードにスケジュールする

ACKは複数のスケジューリングポリシーを提供し、アプリケーションポッドを仮想ノード専用にスケジュールできるようにします。 ポッドを従量課金またはサブスクリプションECSノードにスケジュールし、ECSリソースが利用できない場合は仮想ノードを使用し、ポッドを逆の順序でスケールすることもできます。 スケジューリング方法の選択の詳細については、「仮想ノードベースのスケジューリングソリューションの概要と比較」をご参照ください。

特定のOSまたはアーキテクチャを持つノードにポッドをスケジュールする

デフォルトでは、ACKクラスターはワークロードポッドをx86-based仮想ノードにスケジュールします。 x86ノードが不十分な場合、ポッドは保留になります。 ワークロードポッドをARMベースの仮想ノードにスケジュールすることもできます。

ARM仮想ノードへのスケジュール

ポッドをWindowsノードにスケジュールするには、クラスターにWindows仮想ノードを追加し、それに応じてポッドをスケジュールします。

(招待プレビュー中) スケジュールポッドがWindows仮想ノードで実行される

仮想ノードのベストプラクティス

仮想ノード上でジョブを実行して、ピーククラスタコンピューティングリソース需要を処理します。 この方法では、新しいノードを作成する必要がないため、クラスターのO&Mコストを最小限に抑えます。

エラスティックコンテナインスタンスを使用したジョブの実行

デフォルトでは、ACKクラスターのE-MapReduce (EMR) は、x86アーキテクチャを使用するノードでSparkジョブを実行します。 ARMアーキテクチャを使用する仮想ノード (弾性コンテナインスタンス) でSparkジョブを実行することもできます。

ARMベースの仮想ノードでSparkジョブを実行

ACK仮想ノードコンポーネントを使用して、仮想ノードでスケジュールされたポッドにサイドカーコンテナを自動的に挿入し、アプリケーションコンテナから分離します。

サイドカーコンテナを仮想ノードのポッドに挿入

Prometheusモニタリング設定を変更して、特定の仮想ノードからメトリックを収集します。

指定された仮想ノードのメトリックの収集

仮想ノードは、イントラネット、ヘッドレス、およびClusterIPサービスを含むサービス検出をサポートします。

Alibaba Cloud DNS PrivateZoneを使用した仮想ノードへのサービス検出の実装

ACKクラスターの仮想ノードにIngressを使用してサービスを提供するアプリケーションをデプロイします。 このアプローチにより、クラスターに新しいノードを作成することなく、スケーラブルで無制限のコンピューティング能力をアプリケーションに提供できます。 これにより、トラフィックの変動に耐えるアプリケーションの弾力性も保証されます。

Ingressを使用してサービスを提供するアプリケーションをデプロイする

仮想ノードに関するよくある質問

仮想ノードの使用に関するよくある質問。

仮想ノードに関するよくある質問