ALB Ingress を使用して、HTTP、HTTPS、QUIC トラフィックを Knative Service にルーティングします。ALB は、きめ細かなルーティングを必要とするアプリケーション向けに、自動スケーリングとトラフィック分割を備えた、完全に管理されたメンテナンスフリーのレイヤー 7 負荷分散サービスを提供します。
前提条件
-
Knative が ACS クラスターにデプロイされていること。詳細については、Knative をデプロイする を参照してください。
-
ALB Ingress controller がインストール済みであること。
ステップ 1:ALB Ingress のデプロイ
新しい ALB インスタンスを作成するか、既存のインスタンスを使用して ALB Ingress をデプロイします。
ALB インスタンスの自動作成
最初の Knative デプロイ時に、または既存のデプロイの設定ファイルを変更して、ALB Ingress を設定します。
デプロイ時
-
ACS コンソール にログインします。左側のナビゲーションペインで、クラスター をクリックします。
-
クラスター ページで、管理するクラスターを見つけ、その ID をクリックします。クラスター詳細ページの左側のナビゲーションペインで、 を選択します。
-
アドオン管理 タブで Knative のデプロイ をクリックします。デプロイページで、サービスゲートウェイとして [ALB] を選択し、少なくとも 2 つの vSwitch を選択し、画面の指示に従って Knative をデプロイします。
vSwitch を作成するには、「vSwitch の作成」をご参照ください。
設定ファイルの変更
既存のデプロイに対して ALB Ingress を設定するには、Knative の設定ファイルを変更します。Knative をデプロイするには、「Knative のデプロイ」をご参照ください。
次のコマンドを実行して、config-network.yaml ファイルを編集します。
kubectl -n knative-serving edit configmap config-networkconfig-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 の設定ファイルを変更します。
次のコマンドを実行して、config-network.yaml ファイルを編集します。
kubectl -n knative-serving edit configmap config-networkconfig-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 経由でのサービスへのアクセス
-
ACS コンソール にログインします。左側のナビゲーションペインで、クラスター をクリックします。
-
クラスター ページで、管理するクラスターを見つけ、その ID をクリックします。クラスター詳細ページの左側のナビゲーションペインで、 を選択します。
[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"[サービス] ページで、
helloworld-goサービスを見つけ、[デフォルトドメイン] 列からドメイン名を取得し、[ゲートウェイ] 列からゲートウェイアドレスを取得します。次のコマンドを実行して、
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 モニタリングダッシュボードの表示」をご参照ください。

関連ドキュメント
-
Knative Service のカスタムドメインを有効にします。「カスタムドメインの使用」をご参照ください。
-
Knative Service の HTTPS 証明書を設定します。「HTTPS 証明書の設定」をご参照ください。
-
Knative に gRPC サービスをデプロイして、ネットワーク効率を向上させます。「Knative での gRPC サービスのデプロイ」をご参照ください。
-
プローブを設定して、Knative Service のヘルス状態を監視します。「Knative でのポートプローブの設定」をご参照ください。