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

Elastic Container Instance:自己管理型 Kubernetes クラスターを Elastic Container Instance に接続する

最終更新日:Apr 03, 2025

Elastic Container Instance は、Kubernetes クラスターに基本的なポッドランタイム環境を提供するために使用できます。サービス間の依存関係、負荷分散、自動スケーリング、定期スケジューリングなどのその他の機能は、引き続き Kubernetes によって提供される必要があります。このトピックでは、自己管理型 Kubernetes クラスターを Elastic Container Instance に接続する方法について説明します。また、Elastic Container Instance の機能の実装方法についても説明します。

接続方法

Elastic Container Instance は、Kubernetes リソースを管理するための階層型ソリューションを提供します。Elastic Container Instance はインフラストラクチャ層でポッドのスケジューリングと管理を行い、Kubernetes はプラットフォーム層でデプロイメント、サービス、ステートフルセット、CronJob などのワークロードを管理します。

Kubernetes クラスターを Elastic Container Instance に接続すると、Elastic Container Instance はインフラストラクチャとリソースの可用性を含め、ポッドの管理を引き継ぎます。Kubernetes は、基盤となる仮想マシン (VM) のライフサイクルとリソースを管理する必要がなくなります。長時間実行されるワークロードの過剰なトラフィックを Elastic Container Instance にスケジューリングできます。これにより、アイドルリソースを削減し、迅速かつ柔軟なスケーラビリティを確保できます。ビジネストラフィックが減少すると、Kubernetes クラスターは Elastic Container Instance にデプロイされたポッドを解放してコストを削減できます。

データセンターまたは Alibaba Cloud Elastic Compute Service (ECS) に自己管理型 Kubernetes クラスターがある場合は、仮想ノード (VNode) をデプロイして Elastic Container Instance を使用できます。VNode はネイティブ Kubernetes ノードに接続されています。VNode には、virtual-kubelet や kube-proxy などのコンポーネントが組み込まれており、ネイティブ Kubernetes API と互換性があります。ポッドが VNode にスケジューリングされると、VNode は基盤となる Elastic Container Instance リソースを自動的に作成および管理します。VNode にデプロイされた各ポッドは、Elastic Container Instance として実行されます。次の図は、自己管理型 Kubernetes クラスターと Elastic Container Instance のハイブリッドアーキテクチャを示しています。vnode

VNode を自己管理型 Kubernetes クラスターに接続する方法については、以下を参照してください。

課金

作成した VNode ごとに課金されます。各 VNode には 1 つの常駐ノードがあり、2 vCPU と 8 GiB のメモリを提供する Elastic Container Instance と同等です。同等のインスタンス数に基づいて課金されます。

説明

VNode はタグ付け機能を提供します。VNode にタグをバインドできます。その後、タグに基づいて VNode と Elastic Container Instance のコストを個別に計算できます。

1 つの VNode の価格は、次の式を使用して計算されます。1 つの VNode の価格 = (2 × vCPU の単価 + 8 × メモリの単価) × 実行時間。

  • Elastic Container Instance の料金、および vCPU とメモリの単価については、「Elastic Container Instance の課金」をご参照ください。

  • 実行時間は、常駐ノードが Ready 状態になると開始されます。

    常駐ノードのステータスは、クラスター内のノードのステータスと同じではありません。Elastic Container Instance コンソールの [仮想ノード] ページで、常駐ノードのステータスを確認できます。

制限

Elastic Container Instance は、Alibaba Cloud パブリッククラウドのセキュリティ制限と仮想ノードによる制限のため、hostPath や DaemonSet などの一部の Kubernetes 機能をサポートしていません。次の表に、サポートされていない機能を示します。

サポートされていない機能

説明

推奨される代替手段

HostPath

オンプレミスホストからコンテナーにファイルをマウントできます。

emptyDir ボリューム、ディスク、または NAS ファイルシステム (NAS) を使用します。

HostNetwork

ホストポートをコンテナーにマップできます。

LoadBalancer タイプのサービスを作成します。

DaemonSet

コンテナーのホストに静的ポッドをデプロイできます。

sidecar コンテナーを使用して、ポッドに複数のイメージをデプロイします。

NodePort タイプのサービス

ホストポートをコンテナーにマップできます。

LoadBalancer タイプのサービスを作成します。

スケジューリングモード

実ノードと VNode の両方を使用する Kubernetes クラスターの場合、ビジネス要件に基づいてポッドを VNode にスケジューリングし、ポッドを Elastic Container Instance として実行できます。主なスケジューリングモードは次のとおりです。

  • 手動スケジューリング

    nodeSelector および tolerations パラメーターを構成するか、nodeName パラメーターを指定して、ポッドを VNode にスケジューリングできます。詳細については、「ポッドを VNode にスケジューリングする」をご参照ください。

  • 自動スケジューリング

    eci-profile コンポーネントをデプロイした後、Selector パラメーターを指定できます。このようにして、システムは Selector で指定された条件を満たすポッドを VNode に自動的にスケジューリングします。詳細については、「eci-profile を使用してポッドを VNode にスケジューリングする」をご参照ください。

Elastic Container Instance の機能を実装する

Kubernetes クラスターのポッドを Elastic Container Instance にスケジューリングする場合、ポッドにアノテーションを追加して、Elastic Container Instance の機能を最大限に活用できます。追加するアノテーションが Kubernetes 構文に準拠していることを確認してください。ポッドの構成ファイルのメタデータにアノテーションを追加する必要があります。追加できるアノテーションとアノテーションの構成例については、「Elastic Container Instance ベースのポッドのアノテーション」をご参照ください。

説明

ポッドを作成するときに手動でアノテーションを追加できます。また、eci-profile コンポーネントを構成することもできます。eci-profile は、指定されたラベルを持つポッドにアノテーションを自動的に追加します。