大規模な分散システムおよびマイクロサービスアプリケーション、特にIstioをサービスメッシュフレームワークとして使用する、または使用する予定のアプリケーションでのトラフィック管理の場合、Alibaba Cloud service mesh (ASM) を、Knativeサービスのトラフィック分散およびルーティングのゲートウェイとして使用することを推奨します。 ASMゲートウェイはオープンソースのIstio仕様と互換性があり、Container Service for Kubernetes (ACK) によって管理される制御プレーンコンポーネントを備えています。 ASMゲートウェイを使用すると、サービスコール間のトラフィックルーティングおよび分割管理、サービス間通信のための認証およびセキュリティ、ならびにメッシュ内の高度な可観測能力を含むサービス管理が簡略化される。
前提条件
バージョン1.21.6.84以降のASMインスタンスが作成されます。 詳細については、「ASMインスタンスの作成」をご参照ください。
ASMインスタンスを作成する場合、[Kubernetesクラスター] エリアで、作成した [ACKマネージドクラスター] または [ACKサーバーレスクラスター] をASMインスタンスに追加し、[データプレーンクラスターKubeAPIによるIstio CRへのアクセスを許可] を有効にします。
手順1: Knativeのデプロイ時にサービスゲートウェイとしてASMを選択する
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のナビゲーションウィンドウで、 を選択します。
[Knative] ページの [コンポーネント] タブで、Knative のデプロイ をクリックし、ゲートウェイ セクションで [ASM] を選択し、デプロイ をクリックします。
デプロイが成功したら、KnativeでASMを使用できます。
手順2: ASMゲートウェイを介してデプロイされたサービスにアクセスする
この手順では、Knative Serviceを使用して、ASMによるサービス展開を完了します。
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のナビゲーションウィンドウで、 を選択します。
[Knative] ページの [サービス] タブで、[名前空間] を [デフォルト] として選択し、[テンプレートから作成] をクリックします。 次のYAML例をコピーしてテンプレートに貼り付け、[作成] をクリックしてhelloworld-goという名前のサービスを作成します。
重要以下のコードの
{REGION-ID}
をクラスターのリージョンID (cn-beijing
など) に置き換えて、イメージへのアクセスと使用を保証します。apiVersion: serving.knative.dev/v1 kind: Service metadata: name: helloworld-go spec: template: spec: containers: - image: registry.{REGION-ID}.aliyuncs.com/knative-sample/helloworld-go:73fbdd56 # Please replace {REGION-ID} with the region of your cluster. env: - name: TARGET value: "Knative"
[サービス] ページの [ゲートウェイ] 列で、helloworld-goサービスのゲートウェイアドレスを取得できます。
次のコマンドを実行してhelloworld-go Serviceにアクセスします。
curl -H "host: helloworld-go.default.example.com" http://39.XX.XX.XX # Please use the actual IP and domain name of your gateway.
期待される出力:
Hello Knative!
出力は、サービスアクセスが成功したことを示します。
(オプション) 手順3: サービスモニタリングデータの表示
Knativeは、すぐに使えるモニタリング機能を提供します。 [Knative] ページで、[モニタリングダッシュボード] タブをクリックし、helloworld-go Serviceのモニタリングデータを表示します。 Knativeダッシュボードを有効にする方法の詳細については、「」「Alibaba Cloud Prometheusモニタリングを通じてKnativeダッシュボードを表示する」をご参照ください。