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

Elastic Container Instance:ACK と ECI の統合

最終更新日:Aug 29, 2026

Elastic Container Instance (ECI) は、Kubernetes の Pod にコンテナランタイム環境を提供します。一方、Kubernetes は、サービス依存関係、負荷分散、弾性スケーリング、定期的なスケジューリングなどの機能を提供します。このトピックでは、Container Service for Kubernetes (ACK) が ECI と統合し、ECI を Pod のコンピューティングリソースとして使用する方法について説明します。

統合方法

ECI は、Kubernetes 向けの階層化されたソリューションを提供します。ECI はインフラストラクチャレイヤーで Pod コンテナリソースのスケジューリングと管理を処理し、Kubernetes は ECI 上の PaaS レイヤーとして機能し、Deployment、Service、StatefulSet、CronJob などのビジネスワークロードを管理します。

Kubernetes コミュニティの Virtual Kubelet (VK) に基づいて、ECI は仮想ノードとして Kubernetes クラスターに追加できます。これにより、クラスターはクラスターノードのコンピューティング容量に制約されることなく弾性的にスケーリングします。ECI は、基盤となる Pod インフラストラクチャを管理します。Pod が必要とするリソースを準備し、Pod インスタンスを起動します。そのため、基盤となる仮想マシンのリソースを監視する必要はありません。ECI は、Pod が必要とするリソースが常に利用可能であることを保証します。クラスターは、お客様のスケジューリング設定に基づいて、どの Pod を ECI 上で実行するかを引き続き決定します。

ECI 上で実行される Pod は、安全で分離されたコンテナランタイム環境を使用します。各 Pod は 1 つの ECI インスタンスに対応します。

ECI 上で Pod を実行する場合、次の Kubernetes 機能がサポートされます。

  • ワークロードコントローラー — Deployment、ReplicaSet、Job、CronJob、StatefulSet などの一般的なコントローラーをサポートしており、直接実行できます。

  • サービスディスカバリー — サービスディスカバリーでは、PrivateZone がサポートされています。

  • 負荷分散 — 負荷分散がサポートされています。LoadBalancer タイプの Service を設定してください。

ECI は、Alibaba Cloud ACK と統合されています。次の表では、ECI 上で Pod を実行できるクラスタータイプと、それぞれを選択する場合について説明します。

クラスタータイプ

選択する場合

仮想ノードの要件

ACK サーバーレスクラスター (推奨)

完全に ECI 上で実行される Kubernetes 環境が必要な場合。オンラインおよびオフラインサービス、シミュレーション環境、または開発およびテスト環境に適しています。

不要です。ECI Pod を直接作成します。

ACK クラスター (ECI と ECS のハイブリッド)

既に ACK クラスターがあり、長時間実行されるワークロードのバーストトラフィックなど、必要に応じて ECI Pod を追加したい場合。

VK に基づいて仮想ノードをデプロイする必要があります。

自己管理型 Kubernetes クラスター

Kubernetes クラスターが Alibaba Cloud ECS 上またはオンプレミスデータセンター内で実行されている場合。

VNode に基づいて仮想ノードをデプロイする必要があります。

ACK サーバーレスクラスター (完全に ECI ベース)

ACK サーバーレスクラスターは、完全に ECI 上で実行される Kubernetes 環境を提供します。すべての Pod が ECI 上で実行され、Kubernetes はビジネスワークロードの管理のみを担当します。

(推奨) Kubernetes クラスタータイプを評価している場合は、オンラインおよびオフラインサービス、シミュレーション環境、開発およびテスト環境には ACK サーバーレスクラスターを選択してください。

  • コスト効率が高い — ノードを購入したり、ノードのメンテナンスを実行したり、クラスター容量を計画したりする必要はありません。コンテナ化されたアプリケーションを直接デプロイし、アプリケーション用に設定された CPU およびメモリリソースに対してのみ料金が発生します。

  • インフラストラクチャのメンテナンスが不要 — Kubernetes API またはコマンドラインを使用して、コンテナ化されたアプリケーションを直接管理します。ACK サーバーレスクラスターは、さまざまな Alibaba Cloud サービスとも統合されており、Kubernetes 開発を簡素化するため、インフラストラクチャの管理ではなく、アプリケーションの構築に集中できます。

ACK サーバーレスクラスターでは、仮想ノードを手動でデプロイする必要はありません。ECI Pod を直接作成できます。詳細については、「ACK サーバーレスの概要」をご参照ください。

次の図は、すべての Pod が ECI 上で実行されるクラスターを示しています。

Architecture of a Kubernetes cluster that runs entirely on ECI

ACK クラスター (ECI と ECS のハイブリッド)

ACK は、Kubernetes 準拠認定に世界で初めて合格したプラットフォームの 1 つです。Alibaba Cloud の仮想化、ストレージ、ネットワーク、セキュリティ機能を統合した高性能なコンテナ化アプリケーション管理サービスを提供し、クラスターの作成とスケーリングを簡素化します。

既に ACK クラスターがある場合は、VK に基づいて仮想ノードをデプロイし、ECI を使用します。次に、必要に応じて ECI Pod を作成して、ノードのコンピューティング容量を計画することなくクラスターをスケーリングできます。ECI Pod は、クラスター内の実際のノード上の Pod と通信できます。

バーストトラフィックを ECI にスケジューリングすると、スケールアウト時間が短縮され、スケーリングコストが削減され、既存のリソースを最大限に活用できます。トラフィックが減少した場合は、ECI にデプロイされた Pod を迅速に解放してコストを削減できます。

詳細については、「ACK 製品概要」をご参照ください。

次の図は、Pod が ECI と Elastic Compute Service (ECS) ノードの両方で実行される ACK クラスターを示しています。

Architecture of an ACK cluster that uses both ECI and ECS nodes

自己管理型 Kubernetes クラスター

Alibaba Cloud ECS 上またはオンプレミスデータセンター内に自己管理型 Kubernetes クラスターがある場合は、VNode に基づいて仮想ノードをデプロイし、ECI を使用する必要があります。詳細については、「自己管理型 Kubernetes クラスターと ECI の統合」をご参照ください。

制限事項と注意事項

パブリッククラウドのセキュリティ制約と仮想ノードの固有の制限により、ECI は、次の表に示すように、HostPath や DaemonSet などの一部の Kubernetes 機能をサポートしていません。

サポートされていない機能サポートされていない理由代替案
HostPathホストのファイルシステムへの直接アクセスが必要emptyDir ボリューム、ディスク、または File Storage NAS (NAS) を使用
HostNetworkホストポートをコンテナにマッピングする必要があるLoadBalancer タイプの Service を作成
DaemonSet固定されたコンテナホスト上に静的 Pod が必要サイドカーコンテナを使用して Pod に複数のイメージをデプロイ
NodePort タイプの Serviceホストポートをコンテナにマッピングする必要があるLoadBalancer タイプの Service を作成

以下の項目の一部は、クラスターを作成する前に決定する必要があります。ACK で ECI を使用する場合は、次の点に注意してください。

  • コンテナイメージ — イメージのプルを高速化するために、コンテナイメージを事前にイメージリポジトリにアップロードしてください。ベストプラクティスとして、Alibaba Cloud Container Registry (ACR) を使用し、イメージリポジトリの VPC エンドポイントアドレス (例: registry-vpc.xxx) を使用してください。

  • サービスディスカバリー — (推奨) クラスターを作成する際に PrivateZone を有効にしてください。

  • アドオンバージョン — 新しい ECI 関連機能を使用するには、ACK クラスターの ack-virtual-node アドオンをアップグレードする必要があります。

ワークフロー

ACK サーバーレスクラスター

  1. ACK サーバーレスクラスターを作成します。手順については、「クラスターの作成」をご参照ください。

  2. このトピックの「制限事項と注意事項」セクションで説明されているように、コンテナイメージを準備し、イメージリポジトリにアップロードします。

  3. ECI Pod を作成します。手順については、「ECI Pod の作成」をご参照ください。

  4. Pod に対応する ECI インスタンスの実行ステータスを表示します。詳細については、このトピックの「ECI インスタンスの表示と管理」セクションをご参照ください。

ACK クラスター

  1. ACK クラスターを作成します。手順については、「マネージド ACK クラスターの作成」をご参照ください。

  2. ack-virtual-node アドオンをデプロイして仮想ノードを作成します。手順については、「ACK 仮想ノードコンポーネントのデプロイ」をご参照ください。

  3. このトピックの「制限事項と注意事項」セクションで説明されているように、コンテナイメージを準備し、イメージリポジトリにアップロードします。

  4. Pod がクラスターの ECS ノードではなく ECI 上で実行されるようにスケジューリング方法を設定します。詳細については、このトピックの「Pod を ECI にスケジューリング」セクションをご参照ください。

  5. ECI Pod を作成します。手順については、「ECI Pod の作成」をご参照ください。

  6. Pod に対応する ECI インスタンスの実行ステータスを表示します。詳細については、このトピックの「ECI インスタンスの表示と管理」セクションをご参照ください。

Pod を ECI にスケジューリング

ACK サーバーレスクラスターの場合、クラスター全体が ECI 上で実行されるため、特定のスケジューリングは必要ありません。ECI と ECS ノードの両方を使用するハイブリッド ACK クラスターの場合、次の方法を使用して Pod を ECI 上で実行するようにスケジューリングできます。個々のワークロードを手動でスケジューリングするか、名前空間または Pod ラベルによって Pod を自動的にスケジューリングします。

ECI 機能の使用

Kubernetes クラスター内の ECI 上で Pod を作成する場合、Kubernetes のセマンティクスを変更することなく ECI 機能を使用するために、Pod レベルのメタデータにアノテーションを追加できます。サポートされているアノテーションと設定例のリストについては、「ECI Pod アノテーション」をご参照ください。

Pod を作成する際にアノテーションを手動で追加するか、eci-profile を設定して、一致するラベルを持つ Pod にアノテーションを自動的に追加できます。eci-profile の詳細については、このトピックの「Pod を ECI にスケジューリング」セクションをご参照ください。

ECI インスタンスの表示と管理

次のツールを使用して、Kubernetes クラスターを管理し、ECI インスタンスの実行ステータスを監視します。これらのツールは、ACK サーバーレスクラスターと仮想ノードを使用する ACK クラスターの両方に適用されます。

  • Elastic Container Instance コンソール

    Elastic Container Instance コンソールで ECI インスタンスの実行ステータスを表示するには、次の手順を実行します。

    1. Elastic Container Instance コンソールにログインします。

    2. 上部メニューでリージョンを選択します。

    3. [コンテナグループ] ページで、選択したリージョンで作成された ECI インスタンスを表示します。

  • ACK コンソール

    ACK コンソールを使用して、ACK サーバーレスクラスターまたは ACK クラスターを管理し、ECI インスタンスの実行ステータスを表示できます。ECI インスタンスを表示するには、次の手順を実行します。

    1. ACK コンソールにログインします。

    2. 上部メニューでリージョンを選択します。

    3. 左側メニューで クラスターリスト をクリックします。

    4. [クラスター] ページで、対象のクラスターを見つけ、クラスター ID をクリックして詳細ページに移動します。

    5. 左側メニューで、ワークロード > ポッド を選択します。

    6. ポッド ページで、名前空間を選択して、その名前空間内の ECI インスタンスを表示します。

  • Alibaba Cloud CloudShell

    Alibaba Cloud CloudShell を使用して Kubernetes クラスターにアクセスし、kubectl コマンドを使用してクラスターを管理できます。手順については、「kubectl を使用して Workbench または CloudShell でクラスターに接続」をご参照ください。

  • kubectl クライアント

    ローカルの kubectl クライアントを使用してリモートの Kubernetes クラスターにアクセスし、kubectl コマンドを使用してクラスターを管理できます。手順については、「kubectl を使用した Kubernetes クラスターへの接続」をご参照ください。