すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:KnativeでASM Gatewayを使用する

最終更新日:Dec 16, 2024

大規模な分散システムおよびマイクロサービスアプリケーション、特に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を選択する

  1. ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。

  2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のナビゲーションウィンドウで、[アプリケーション] > [ネイティブ] を選択します。

  3. [Knative] ページの [コンポーネント] タブで、Knative のデプロイ をクリックし、ゲートウェイ セクションで [ASM] を選択し、デプロイ をクリックします。

    デプロイが成功したら、KnativeでASMを使用できます。

手順2: ASMゲートウェイを介してデプロイされたサービスにアクセスする

この手順では、Knative Serviceを使用して、ASMによるサービス展開を完了します。

  1. ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。

  2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のナビゲーションウィンドウで、[アプリケーション] > [ネイティブ] を選択します。

  3. [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"
  4. [サービス] ページの [ゲートウェイ] 列で、helloworld-goサービスのゲートウェイアドレスを取得できます。

  5. 次のコマンドを実行して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ダッシュボードを表示する」をご参照ください。