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

Container Service for Kubernetes:Knative で ASM ゲートウェイを使用する

最終更新日:Nov 09, 2025

大規模な分散システムやマイクロサービスアプリケーションのトラフィック管理などのシナリオでは、ASM ゲートウェイを使用して Knative サービスのトラフィックを分散およびルーティングできます。これは、Istio をサービスメッシュフレームワークとして既に使用しているか、使用を計画している場合に特に便利です。ASM ゲートウェイは、コミュニティの Istio 仕様と互換性があります。そのコントロールプレーンコンポーネントは ACK によって管理されており、サービス呼び出しのトラフィックルーティングと分割、サービス間通信の認証とセキュリティ、メッシュの可観測性などのサービス管理タスクが簡素化されます。

前提条件

ASM インスタンスが作成されていること。インスタンスのバージョンは 1.21.6.84 以降である必要があります。詳細については、「ASM インスタンスの作成」をご参照ください。

ASM インスタンスを作成する際、[Kubernetes クラスター] セクションで、既存の ACK マネージドクラスター または Serverless Kubernetes クラスター をインスタンスに追加し、[データプレーン上の KubeAPI を有効にして Istio リソースにアクセスする] を選択します。

ステップ 1: ASM ゲートウェイのデプロイ

Knative を初めてデプロイするときに ASM サービスゲートウェイを選択できます。または、Knative のデプロイ後に構成ファイルを変更して ASM ゲートウェイを構成することもできます。

新規 Knative インストール

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

  2. クラスター ページで、目的のクラスターを見つけてその名前をクリックします。左側のナビゲーションウィンドウで、[アプリケーション] > [Knative] を選択します。

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

    デプロイが成功すると、Knative で Service Mesh (ASM) を使用できます。

既存の Knative インストール

  1. config-network ファイルを編集します。

    kubectl -n knative-serving edit configmap config-network
  2. ingress.classistio.ingress.networking.knative.dev に設定し、config-network ファイルを保存します。

    apiVersion: v1
    data:
      ...
      ingress.class: istio.ingress.networking.knative.dev # ASM サービスゲートウェイを使用
      ...
    kind: ConfigMap
    metadata:
      name: config-network
      namespace: knative-serving

ステップ 2: ASM イングレスゲートウェイ経由でデプロイされたサービスにアクセスする

このセクションでは、ASM を使用してサービスをデプロイする方法の例を示します。

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

  2. クラスター ページで、目的のクラスターを見つけてその名前をクリックします。 左側のナビゲーションウィンドウで、[アプリケーション] > [Knative] を選択します。

  3. [Knative] ページの [サービス管理] タブで、[名前空間][default] に設定し、[テンプレートから作成] をクリックします。 次の YAML サンプルをテンプレートに貼り付け、次に [作成] をクリックして helloworld-go サービスを作成します。

    重要

    イメージにアクセスして使用できるように、次のコードの {REGION-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 # {REGION-ID} をクラスターのリージョンに置き換えます。
            env:
            - name: TARGET
              value: "Knative"
  4. [サービス管理] ページの [アクセスゲートウェイ] 列で、helloworld-go サービスのゲートウェイアドレスを見つけます。

  5. 次のコマンドを実行して、helloworld-go サービスにアクセスします。

    curl -H "Host: helloworld-go.default.example.com" http://39.XX.XX.XX # ゲートウェイの IP アドレスとドメイン名を実際のデータに置き換えます。

    予想される出力:

    Hello Knative!

    予想される出力は、サービスに正常にアクセスできたことを示しています。

(任意) ステップ 3: Knative モニタリングダッシュボードの表示

Knative は、すぐに使えるモニタリング機能を提供します。[Knative] ページで、[モニタリングダッシュボード] タブをクリックして、指定されたサービスのモニタリングデータを表示します。Knative モニタリングダッシュボードを有効にする方法の詳細については、「Knative モニタリングダッシュボードの表示」をご参照ください。

参考資料