Elastic Container Instanceを使用して、Kubernetesクラスターに基本的なポッドランタイム環境を提供できます。 サービス間の依存関係、負荷分散、自動スケーリング、および通常のスケジューリングなどのその他の機能は、Kubernetesによって引き続き提供される必要があります。 このトピックでは、サーバーレスKubernetes (ASK) およびContainer Service for Kubernetes (ACK) クラスターをElastic Container Instanceに接続し、elastic containerインスタンスでポッドを実行する方法について説明します。
接続方法
Elastic Container Instanceは、Kubernetesリソースを管理するための階層ソリューションを提供します。 Elastic Container Instanceはインフラストラクチャレイヤーでポッドをスケジュールおよび管理しますが、Kubernetesはプラットフォームレイヤーでデプロイ、サービス、StatefulSets、CronJobsなどのワークロードを管理します。
Elastic Container Instanceは、Kubernetesコミュニティが提供するvirtual Kubeletに基づく仮想ノードを使用して、Kubernetesにシームレスに接続します。 Elastic Container Instanceは、Kubernetesクラスターに高い弾力性を提供し、コンピューティング容量の制限を克服します。 Elastic Container InstanceをKubernetesに接続すると、インフラストラクチャやリソースの可用性など、ポッドの管理がElastic Container Instanceによって引き継がれます。 Kubernetesは、基盤となる仮想マシン (VM) のライフサイクルとリソースを管理する必要がなくなりました。
Elastic Container Instanceは、ASKとACKにシームレスに統合されます。 ASKまたはACKを使用して、実行中のコンテナでElastic Container Instanceが提供する機能を体験できます。 次の方法を使用して、KubernetesをElastic Container Instanceに接続できます。
ASKクラスターをデプロイして、Elastic Container InstanceでのみKubernetesポッドを実行する
この接続方法では、すべてのKubernetesポッドは、基盤となるインフラストラクチャを管理するElastic Container Instance上で実行されます。 Kubernetesは、基盤となるVMのO&Mと容量に集中する必要なしに、ビジネスの信頼性を確保するためにワークロードを管理するだけで済みます。
この方法を選択する場合は、ASKクラスターを選択することを推奨します。 ASKは、Elastic Container Instanceで完全に実行するように最適化されています。 これは、オンラインおよびオフラインのビジネス、シミュレーション環境、開発およびテスト環境に適した、フルマネージド型で費用対効果の高いKubernetes環境です。
Elastic Container Instanceを使用してASKクラスターをデプロイする方法の詳細については、「ASKクラスターでのElastic Container Instanceの使用」をご参照ください。
ACKクラスターをデプロイして、Elastic Container Instanceと従来のサーバーの両方でKubernetesポッドを実行する
ACKクラスターを作成した場合、クラスターに仮想ノードをデプロイしてElastic Container Instanceを使用できます。 長期にわたるビジネス負荷の過剰なトラフィックをエラスティックコンテナインスタンスにスケジュールできます。 これにより、アイドルリソースを削減し、高速で柔軟なスケーラビリティを確保できます。 ビジネストラフィックが減少すると、Kubernetesクラスターはelastic containerインスタンスにデプロイされたポッドをリリースしてコストを削減できます。
Elastic Container Instanceを使用してACKクラスターをデプロイする方法の詳細については、「ACKクラスターでのElastic Container Instanceの使用」をご参照ください。
説明Alibaba Cloud ECS (Elastic Compute Service) または自己管理型データセンターにKubernetesクラスターをデプロイする場合、Elastic Container Instanceを使用する仮想ノードをデプロイする必要があります。 詳細については、「自己管理型KubernetesクラスターのElastic Container Instanceへの接続」をご参照ください。
管理ツール
次の方法を使用して、Kubernetesを管理し、エラスティックコンテナインスタンスの実行ステータスを表示できます。
Elastic Container Instanceコンソール
elastic container Instanceコンソールで、Elastic Containerインスタンスの実行ステータスを表示できます。 次の操作を実行します。
Elastic Container Instanceコンソールにログインします。
上部のナビゲーションバーで、リージョンを選択します。
[Elastic Container Group] ページで、リージョン内の既存のelastic containerインスタンスを表示できます。
ACKコンソール
ASKまたはACKクラスターを管理し、ACKコンソールでエラスティックコンテナインスタンスの実行ステータスを表示できます。 エラスティックコンテナインスタンスの実行ステータスを表示するには、次の手順を実行します。
ACKコンソールにログインします。
左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、表示するクラスターを見つけ、クラスターIDをクリックして詳細ページに移動します。
左側のナビゲーションウィンドウで、[ワークロード]> [ポッド] を選択します。
[ポッド] ページで、名前空間ドロップダウンリストから名前空間を選択します。 次に、名前空間でエラスティックコンテナインスタンスを表示できます。
クラウドシェル
Alibaba Cloudが提供するCloud Shellを使用してKubernetesクラスターにアクセスし、Cloud Shell上のkubectlを使用してクラスターを管理できます。 詳細については、「Cloud Shellでのkubectlの使用によるACKクラスターの管理」をご参照ください。
kubectlクライアント
コンピューター上のkubectlクライアントを使用してリモートKubernetesクラスターにアクセスし、kubectlコマンドを実行してクラスターを管理できます。 詳細については、「kubectlを使用したACKクラスターへの接続」をご参照ください。
制限事項
Alibaba Cloudパブリッククラウドのセキュリティ制限と仮想ノードによる制限により、Elastic Container InstanceはhostPathやDaemonSetsなどの一部のKubernetes機能をサポートしていません。 サポートされていない機能を次の表に示します。
項目 | 説明 | 推奨される代替案 |
---|---|---|
HostPath | オンプレミスホストからコンテナーにファイルをマウントできます。 | emptyDirボリューム、ディスク、またはApsara File Storage NAS (NAS) ファイルシステムを使用します。 |
HostNetwork | ホストポートをコンテナーにマップできます。 | LoadBalancerタイプのサービスを作成します。 |
DaemonSet | コンテナーのホストに静的ポッドをデプロイできます。 | サイドカーコンテナーを使用して、ポッドに複数のイメージを展開します。 |
特権権限 | コンテナーに特権権限を付与できます。 | セキュリティコンテキストを使用して、ポッドに権限を付与します。 |
NodePortタイプのサービス | ホストポートをコンテナーにマップできます。 | LoadBalancerタイプのサービスを作成します。 |
ASKまたはACKクラスターの仮想ノードで実行されているElastic Container Instanceポッドを使用する場合は、次の項目に注意してください。
イメージの取得を簡単にするために、事前にコンテナイメージをイメージリポジトリにアップロードできます。 Alibaba Cloud Container Registry (ACR) と仮想プライベートクラウド (VPC) のイメージアドレス (registry-vpc.xxx) を使用して、コンテナイメージをアップロードすることを推奨します。
どちらの接続方法も、Deployments、ReplicaSets、CronJobs、StatefulSetsなどの一般的なコントローラーをサポートします。
どちらの接続方法もPrivateZoneを使用してサービス検出を実装します。 クラスターの作成時にPrivateZoneを有効にすることを推奨します。
どちらの接続方法も負荷分散をサポートしています。これは、サービスのタイプがLoadBalancerであることを示します。