Elastic Container Instanceは、Kubernetesクラスターの基本的なポッドランタイム環境を提供します。 ビジネス間の依存関係、負荷分散、自動スケーリング、時間ベースのスケジューリングなどのその他の機能は、Kubernetesによって提供される必要があります。 このトピックでは、エラスティックコンテナインスタンスを自己管理型Kubernetesクラスターに接続する方法について説明します。 このトピックでは、エラスティックコンテナインスタンスの機能を実装する方法についても説明します。
接続方法
Elastic Container Instanceは、Kubernetesリソースを管理するための階層ソリューションを提供します。 Elastic Container Instanceはインフラストラクチャレイヤーでポッドをスケジュールおよび管理しますが、Kubernetesはプラットフォームレイヤーでデプロイ、サービス、StatefulSets、CronJobsなどのワークロードを管理します。
エラスティックコンテナインスタンスをKubernetesクラスターに接続すると、エラスティックコンテナインスタンスは、インフラストラクチャやリソースの可用性など、ポッドの管理を引き継ぎます。 Kubernetesは、基盤となる仮想マシン (VM) のライフサイクルとリソースを管理する必要がなくなりました。 長時間実行されるワークロードの過剰なトラフィックをelastic containerインスタンスにスケジュールできます。 これにより、リソース使用率が向上し、高速で柔軟なスケーラビリティが保証されます。 ビジネストラフィックが遅くなった場合は、エラスティックコンテナインスタンスをリリースしてリソースコストを削減できます。
データセンターまたはAlibaba Cloud Elastic Compute Service (ECS) に自己管理型Kubernetesクラスターがある場合、仮想ノード (VNodes) をデプロイしてエラスティックコンテナインスタンスを使用できます。 VNodesはネイティブKubernetesノードと同等です。 VNodesは、virtual-kubeletやkube-proxyなどのコンポーネントと統合されており、ネイティブKubernetesノードのAPI操作と互換性があります。 ポッドがVNodeにスケジュールされると、VNodeは基になるエラスティックコンテナインスタンスリソースを自動的に作成および管理します。 各ポッドは、VNodeにデプロイされた専用のエラスティックコンテナインスタンスで実行されます。 次の図は、自己管理型Kubernetesクラスターとelasticコンテナーインスタンスのハイブリッドアーキテクチャを示しています。
VNodeのデプロイ方法の詳細については、「セルフマネージドKubernetesクラスターのVNodeへの接続」をご参照ください。
仮想ノード機能はパブリックプレビュー中です。 この機能を使用するには、チケットを起票してください。
課金情報
作成したVNodeごとに課金されます。 各VNodeは、2つのvCPUと8 GiBメモリを備えたエラスティックコンテナインスタンスと同等です。 elasticコンテナインスタンスの同等数に基づいて課金されます。
1つのVNodeの価格= (2 × vCPUの単価 + 8 × メモリの単価) × 実行期間。
エラスティックコンテナインスタンスの課金方法、およびvCPUとメモリの単価については、「課金」をご参照ください。
制限事項
Alibaba Cloudパブリッククラウドのセキュリティ制限と仮想ノードによる制限により、Elastic Container InstanceはhostPathやDaemonSetsなどの一部のKubernetes機能をサポートしていません。 サポートされていない機能を次の表に示します。
項目 | 説明 | 推奨される代替案 |
---|---|---|
HostPath | オンプレミスホストからコンテナーにファイルをマウントできます。 | emptyDirボリューム、ディスク、またはApsara File Storage NAS (NAS) ファイルシステムを使用します。 |
HostNetwork | ホストポートをコンテナーにマップできます。 | LoadBalancerタイプのサービスを作成します。 |
DaemonSet | コンテナーのホストに静的ポッドをデプロイできます。 | サイドカーコンテナーを使用して、ポッドに複数のイメージを展開します。 |
特権権限 | コンテナーに特権権限を付与できます。 | セキュリティコンテキストを使用して、ポッドに権限を付与します。 |
NodePortタイプのサービス | ホストポートをコンテナーにマップできます。 | LoadBalancerタイプのサービスを作成します。 |
スケジューリングモード
実ノードとVNodesの両方を使用するKubernetesクラスターの場合、ビジネス要件に基づいてポッドをVNodesにスケジュールし、VNodesにデプロイされたエラスティックコンテナインスタンスでポッドを実行できます。 主なスケジューリングモードは次のとおりです。
Elastic Container Instanceの機能を使用する
KubernetesクラスターのポッドをElastic Container Instanceにスケジュールする場合、ポッドにアノテーションを追加して、Elastic Container Instanceの機能を最大限に活用できます。 追加するアノテーションがKubernetes構文に準拠していることを確認します。 ポッドのメタデータに注釈を追加する必要があります。 次の表に、一般的な注釈を示します。
ポッドをスケジュールするときに、注釈を手動で追加できます。 または、Elastic Container Instanceプロファイルを設定できます。 次に、Elastic Container InstanceプロファイルのElastic Container Instance Effect機能を使用して、ラベルを持つポッドにアノテーションを自動的に追加できます。 Elastic Container Instance Effectの設定方法については、「Elastic Container Instanceプロファイルの設定」をご参照ください。
注釈 | 例 | 説明 |
---|---|---|
k8s.aliyun.com/eci-vswitch | vsw-bp1xpiowfm5vo8o3c**** | vSwitchのIDを指定します。 複数のvSwitchを指定して、複数のゾーンを指定できます。 |
k8s.aliyun.com/eci-use-specs | 2-4Gi,4-8Gi,ecs.c6.xlarge | 弾性コンテナーインスタンスタイプを指定します。 複数のエラスティックコンテナインスタンスタイプを指定できます。 弾性コンテナインスタンスタイプは、vCPUとメモリの組み合わせ、またはECSインスタンスタイプです。 |
k8s.aliyun.com/eci-image-cache | "true" | イメージキャッシュを自動的に一致させるかどうかを指定します。 |
k8s.aliyun.com/eci-with-eip | "true" | Elastic IPアドレス (EIP) を自動的に作成して関連付けるかどうかを指定します。 |
Elastic Container Instanceでサポートされているアノテーションとアノテーションの設定例については、「Elastic Container Instanceでサポートされているポッドアノテーション」をご参照ください。
Elastic Container Instanceの機能を使用するときに例外が発生した場合は、イベント情報を表示できます。 詳細については、「Elastic Container Instanceのカスタムイベント」をご参照ください。