Alibaba Cloud Container Service for Kubernetes(ACK)は、仮想ノードとエラスティックコンテナインスタンスに基づくさまざまなサーバーレスコンテナを提供します。たとえば、ACK Serverlessクラスターを使用すると、KubernetesとElastic Container Instance(ECI)をシームレスに統合できます。このトピックでは、Service Mesh(ASM)を使用して、ACK Serverlessクラスターのエラスティックコンテナインスタンスで実行されるポッドにデプロイされたアプリケーションを管理する方法について説明します。
前提条件
ACK Serverlessクラスターが作成されていること。詳細については、ACK Serverlessクイックスタートをご参照ください。
説明サービスディスカバリ機能を使用するには、ACK Serverlessクラスターの作成時に、サービスディスカバリモードをPrivateZoneまたはCoreDNSに設定する必要があります。
ACK ServerlessクラスターがASMインスタンスに追加されていること。詳細については、ASMインスタンスへのクラスターの追加をご参照ください。
自動サイドカープロキシインジェクションの有効化
ASMコンソールで名前空間の自動サイドカープロキシインジェクションを有効にすると、Envoyプロキシがサイドカーとして名前空間に作成された各ポッドに自動的に挿入されます。これらのEnvoyプロキシは、ASMインスタンスのデータプレーンを構成します。この例では、default名前空間に対して自動サイドカープロキシインジェクションが有効になっています。詳細については、グローバル名前空間の管理をご参照ください。
Elastic Container Instanceベースのポッドで実行されるアプリケーションの作成
ACK Serverlessクラスターのすべてのポッドは、エラスティックコンテナインスタンスにデプロイされます。ラベルを使用して、アプリケーションがElastic Container Instanceベースのポッドにデプロイされることを指定する必要はありません。
アプリケーションがエラスティックコンテナインスタンスで実行されるポッドにデプロイされると、ASMはサイドカーを使用してデータプレーンでアプリケーションを管理できます。
次のコマンドを実行して、NGINXアプリケーションをデプロイします:
kubectl run nginx -n default --image nginx次のコマンドを実行して、仮想ノード上のポッドを表示します:
kubectl get pod -n default -o wide|grep virtual-kubelet
FAQ
ACK Serverlessクラスターでサービスディスカバリを有効にできないのはなぜですか?
サイドカーが挿入されたコンテナのログに、istiod.istio-systemサービスが無効なIPアドレスに解決されていることが示されている場合、Alibaba Cloud DNS PrivateZoneサービスはアクティブ化されていません。ACKコンソールの アドオン ページで Alibaba Cloud DNS PrivateZone サービスをアクティブにするか、CoreDNSをインストールできます。アドオンページのシステムコンポーネントの管理方法の詳細については、「コンポーネントの管理」をご参照ください。