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

Container Compute Service:ALB Ingress を使用した Knative トラフィックのルーティング

最終更新日:Jun 05, 2026

ALB Ingress を使用して、HTTP、HTTPS、QUIC トラフィックを Knative Service にルーティングします。ALB は、きめ細かなルーティングを必要とするアプリケーション向けに、自動スケーリングとトラフィック分割を備えた、完全に管理されたメンテナンスフリーのレイヤー 7 負荷分散サービスを提供します。

前提条件

ステップ 1:ALB Ingress のデプロイ

新しい ALB インスタンスを作成するか、既存のインスタンスを使用して ALB Ingress をデプロイします。

ALB インスタンスの自動作成

最初の Knative デプロイ時に、または既存のデプロイの設定ファイルを変更して、ALB Ingress を設定します。

デプロイ時

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

  2. クラスター ページで、管理するクラスターを見つけ、その ID をクリックします。クラスター詳細ページの左側のナビゲーションペインで、アプリケーション > Knative を選択します。

  3. アドオン管理 タブで Knative のデプロイ をクリックします。デプロイページで、サービスゲートウェイとして [ALB] を選択し、少なくとも 2 つの vSwitch を選択し、画面の指示に従って Knative をデプロイします。

    vSwitch を作成するには、「vSwitch の作成」をご参照ください。

設定ファイルの変更

既存のデプロイに対して ALB Ingress を設定するには、Knative の設定ファイルを変更します。Knative をデプロイするには、「Knative のデプロイ」をご参照ください。

  1. 次のコマンドを実行して、config-network.yaml ファイルを編集します。

    kubectl -n knative-serving edit configmap config-network
  2. config-network.yaml ファイルを以下のように変更し、変更を保存します。

    ALB ゲートウェイを設定するには、config-network ファイルで ingress.class: alb.ingress.networking.knative.dev を変更し、vswitch-ids を設定してから、保存して終了します。ALB がサポートするリージョンとゾーンの詳細については、「ALB がサポートするリージョンとゾーン」をご参照ください。

    apiVersion: v1
    data:
      ...
      ingress.class: alb.ingress.networking.knative.dev # ALB Ingress コントローラーを使用することを指定します。
      vswitch-ids: vsw-uf6kbvc7mccqia2pi****,vsw-uf66scyuw2fncpn38**** # パラメーター値を、異なるゾーンに作成した 2 つの vSwitch の ID に置き換えます。システムは ALB インスタンスを作成する際に vSwitch を自動的に関連付けます。
      intranet: "true" # 内部向け ALB インスタンスを作成します。
      ...
    kind: ConfigMap
    metadata:
      name: config-network
      namespace: knative-serving
      ...

既存の ALB インスタンスの使用

既存の ALB インスタンスを使用するには、Knative の設定ファイルを変更します。

  1. 次のコマンドを実行して、config-network.yaml ファイルを編集します。

    kubectl -n knative-serving edit configmap config-network
  2. config-network.yaml ファイルを以下のように変更し、変更を保存します。

    構成ファイルで、ingress.class を alb.ingress.networking.knative.dev に、albconfig を既存の ALB インスタンスに設定します。vswitch-ids を構成する必要はありません。

    apiVersion: v1
    data:
      ...
      ingress.class: alb.ingress.networking.knative.dev # ALB Ingress コントローラーを使用することを指定します。
      albconfig: alb-dev-albconfig # 再利用する既存のインターネット向け ALB インstance の名前を指定します。
    ...
    kind: ConfigMap
    metadata:
      name: config-network
      namespace: knative-serving
      ...

ステップ 2:ALB Ingress 経由でのサービスへのアクセス

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

  2. クラスター ページで、管理するクラスターを見つけ、その ID をクリックします。クラスター詳細ページの左側のナビゲーションペインで、アプリケーション > Knative を選択します。

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

    次の YAML の例では、helloworld-go という名前の Knative サービスを作成します。

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: helloworld-go
    spec:
      template:
        spec:
          containers:
          - image: registry-vpc.cn-beijing.aliyuncs.com/knative-sample/helloworld-go:73fbdd56 # リージョンを実際のリージョンに置き換えます。
            env:
            - name: TARGET
              value: "Knative"
  4. [サービス] ページで、helloworld-go サービスを見つけ、[デフォルトドメイン] 列からドメイン名を取得し、[ゲートウェイ] 列からゲートウェイアドレスを取得します。

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

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

    想定される出力:

    Hello Knative!

(任意) ステップ 3:サービスモニタリングデータの表示

Knative は組み込みの可観測性を提供します。[Knative] ページで モニタリングダッシュボード タブをクリックしてモニタリングデータを表示します。「Knative Service モニタリングダッシュボードの表示」をご参照ください。

image.png

関連ドキュメント