Elastic Container Instance は、Kubernetes クラスタに基本的なコンテナランタイムを提供できます。各 Elastic Container Instance はポッドです。このトピックでは、Elastic Container Instance ポッドを構成および作成する方法について説明します。また、ポッドのライフサイクルについても説明します。
基本構成
Elastic Container Instance は、仮想ノードを使用して Kubernetes クラスタに接続できます。仮想ノードは、Kubernetes コミュニティによって提供される Virtual Kubelet テクノロジーに基づいて作成されます。Elastic Container Instance ポッドには、次の構成が含まれます。
仕様
仕様には、ポッドのコンピューティングパフォーマンスを定義する vCPU とメモリの構成が含まれます。ポッドを作成するには、vCPU の数やメモリサイズなど、ポッドの仕様を指定できます。また、GPU やローカルディスクなどの特別な要件を満たすために、Elastic Compute Service (ECS) インスタンスタイプを指定することもできます。
コンテナイメージ
1 つのポッドには最大 20 個のコンテナを含めることができます。コンテナアプリケーションをデプロイする前に、コンテナイメージを準備する必要があります。コンテナイメージには、コンテナ化されたアプリケーションを実行するために必要なプログラム、ライブラリファイル、および構成が含まれています。イメージをプルする前に、ネットワークにアクセスできることを確認してください。ポッドの起動時間を短縮するために、イメージキャッシュ機能を使用することをお勧めします。
ネットワーク
ポッドは、ポッドが属する仮想プライベートクラウド (VPC) 内の vSwitch の 1 つの弾性ネットワークインターフェース (ENI) を使用します。デフォルトでは、ポッドには内部 IP アドレスが割り当てられます。ポッドがインターネットにアクセスする必要がある場合(たとえば、パブリックイメージをプルする場合)、ポッドに Elastic IP アドレス (EIP) を関連付けるか、ポッドが属する VPC にネットワークアドレス変換 (NAT) ゲートウェイを関連付ける必要があります。
ストレージ
デフォルトでは、ポッドは一時ストレージ用に 30 GiB のメモリを提供します。ビジネス要件に基づいて、一時ストレージのメモリサイズを増やすことができます。保存されたファイルを保持する場合は、外部ボリュームをマウントすることをお勧めします。ディスク、File Storage NAS (NAS) ファイルシステム、Object Storage Service (OSS) バケットなどの Alibaba Cloud ストレージボリュームをマウントできます。
作成方法
概要
ビジネスシナリオや使用シナリオに基づいて、さまざまな方法でポッドを作成できます。これらの方法は、異なる課金モードに対応しています。詳細については、Elastic Container Instance の課金 を参照してください。
作成方法 | 課金基準 | 説明 | 参照 |
vCPU の数とメモリサイズを指定する | vCPU とメモリの仕様に基づく | ポッドの作成時に指定した vCPU とメモリの仕様に基づいて、ポッドの料金が請求されます。コストとパフォーマンスの要件に基づいて、コンピューティングカテゴリを指定することもできます。サポートされていない vCPU とメモリの仕様については、システムがインスタンスの仕様を調整し、新しい仕様に基づいて課金されます。 | |
ECS インスタンスタイプを指定する | ECS インスタンスタイプに基づく | ポッドの作成時に指定した ECS インスタンスタイプに基づいて、ポッドの料金が請求されます。ビジネス要件に基づいて、Elastic Container Instance ポッドの基盤となるサポートとして ECS インスタンスタイプを指定できます。このようにして、ポッドは ECS インスタンスタイプの特定の機能を取得できます。たとえば、ecs.gn6i-c4g1.xlarge インスタンスタイプを指定すると、ポッドは GPU アクセラレーション機能を取得できます。 | |
vCPU とメモリの仕様を指定しながら、フィルタリング用の ECS インスタンスファミリまたはインスタンスファミリ世代を設定する | ECS インスタンスタイプに基づく | システムは、vCPU とメモリの仕様、およびポッドの作成時に指定した ECS インスタンスファミリまたはインスタンスファミリ世代のフィルタ条件に基づいて、適切な ECS インスタンスタイプを自動的に選択します。実際に使用された ECS インスタンスタイプに基づいて課金されます。 |
ポッドは、x86 アーキテクチャ (デフォルト) と ARM アーキテクチャをサポートしています。ARM アーキテクチャのポッドを作成する方法については、ポッドを ARM ベースの仮想ノードにスケジュールする を参照してください。
ポッドの使用コストを最適化する
従量課金制の Elastic Container Instance とともに、プリエンティブル Elastic Container Instance、リザーブドインスタンス、および Savings Plan を使用して、ビジネス要件に基づいてコストを削減できます。
プリエンティブル Elastic Container Instance は、ステートレスでフォールトトレラントなワークロードに使用できます。詳細については、プリエンティブル Elastic Container Instance を作成する を参照してください。
長期安定ワークロードの場合、リザーブドインスタンスまたは Savings Plan を使用してポッドの請求を相殺することをお勧めします。ポッドの課金基準に基づいて、次の方法で請求を相殺できます。
vCPU の数とメモリサイズに基づいて課金されるポッド: 汎用 Savings Plan を使用できます。
ECS インスタンスタイプに基づいて課金されるポッド: 汎用 Savings Plan、ECS コンピュート Savings Plan、およびリザーブドインスタンスを使用できます。
Elastic Container Instance に基づいて相殺方法を選択できます。詳細については、リザーブドインスタンスを使用する および Savings Plan を使用する を参照してください。
リソース不足への対応
Elastic Container Instance は、コンテナ用のクラウド リソースを提供します。多数のポッドを作成すると、指定したリージョンとゾーンの一部のリソースが不足する可能性があります。ポッドを確実に作成できるように、複数のゾーンにデプロイされている複数のポッド仕様と複数の vSwitch を指定することをお勧めします。詳細については、以下のトピックを参照してください。
ライフサイクルの管理
ポッドのライフサイクルでは、ポッドはさまざまなステージで異なるステータスを持ちます。Elastic Container Instance のポッドのステータスと、対応する Kubernetes ポッドのステータスの詳細については、ポッドのライフサイクル を参照してください。