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

Alibaba Cloud Service Mesh:Istio ゲートウェイの管理

最終更新日:Mar 12, 2026

メッシュ内のサービスが外部トラフィックを受信する必要がある場合、Istio ゲートウェイがエントリポイントとして機能します。これは、Service Mesh (ASM) インスタンスのエッジにあるロードバランサーであり、インバウンドまたはアウトバウンドの HTTP/TCP 接続を受信し、VirtualService を介してトラフィックがバックエンドサービスに到達する前に、どのポート、プロトコル、ホストが公開されるかを制御します。

ゲートウェイの仕組み

ゲートウェイはネットワークスタックの L4-L6 で動作し、以下を定義します。

  • リッスンするポートとプロトコル (HTTP、HTTPS、TCP)

  • トラフィックを受け入れるホスト (特定のドメインまたはワイルドカード)

  • 暗号化された接続のための TLS 設定

ゲートウェイ単独では、サービスへのトラフィックをルーティングしません。特定のバックエンドサービスにトラフィックを転送するには、VirtualService をゲートウェイにバインドする必要があります。完全な API 仕様については、「Gateway」をご参照ください。

前提条件

開始する前に、以下があることを確認してください。

Istio ゲートウェイの作成

オプション 1: ASM コンソールの使用

  1. ASM コンソール」にログインします。左側のナビゲーションウィンドウで、[Service Mesh] > [Mesh 管理] を選択します。

  2. [メッシュ管理] ページで、ASM インスタンスの名前をクリックします。左側のナビゲーションウィンドウで、[ASM ゲートウェイ] > [ゲートウェイ] を選択します。表示されるページで、[作成] をクリックします。

  3. [作成]」ページで、ゲートウェイのパラメーターを設定し、「[作成]」をクリックします。フィールドの説明については、「」または「ゲートウェイ」をご参照ください。

    Configuration example

オプション 2: YAML ファイルの使用

  1. ASM コンソールにログインします。左側のナビゲーションウィンドウで、[Service Mesh] > [メッシュ管理] を選択します。

  2. メッシュ管理」ページで、ASM インスタンスの名前をクリックします。左側のナビゲーションウィンドウで、「ASM ゲートウェイ」>「ゲートウェイ」を選択します。表示されるページで、「YAML からの作成」をクリックします。

  3. 作成」ページで、[名前空間] ドロップダウンリストから名前空間を選択し、[テンプレート] ドロップダウンリストからテンプレートを選択し、[YAML] コードエディタで構成を変更してから、[作成] をクリックします。

主要フィールド

次の表に、一般的に構成されるフィールドを示します。完全な API リファレンスについては、「Gateway」をご参照ください。

フィールド説明
spec.selectorこの構成を処理するゲートウェイ Pod を決定するラベルセレクターです。通常、istio: ingressgateway です。
spec.servers[].port.numberリッスンするポート番号。
spec.servers[].port.protocolプロトコルタイプ。例: HTTPHTTPS、または TCP
spec.servers[].port.nameポートのラベル。
spec.servers[].hostsこのポートで公開されるホスト。すべてのホストに一致させるには * を指定するか、example.com のような特定のドメインをリストします。
spec.servers[].tls.modeTLS モード。例: SIMPLE または MUTUAL
spec.servers[].tls.credentialNameTLS 証明書とキーを含む Kubernetes シークレットの名前。

YAML の例

HTTP ゲートウェイ

すべてのホストに対してポート 80 を公開し、HTTP トラフィックを HTTPS にリダイレクトします。

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: http-gateway
  namespace: default
spec:
  selector:
    istio: ingressgateway
  servers:
  - port:
      number: 80
      name: http
      protocol: HTTP
    hosts:
    - "*.example.com"
    tls:
      httpsRedirect: true

TLS を使用した HTTPS ゲートウェイ

Kubernetes シークレットを使用してポート 443 で TLS を終端します。

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: https-gateway
  namespace: default
spec:
  selector:
    istio: ingressgateway
  servers:
  - port:
      number: 443
      name: https
      protocol: HTTPS
    hosts:
    - "bookinfo.example.com"
    tls:
      mode: SIMPLE
      credentialName: bookinfo-tls-secret

マルチポートゲートウェイ

異なるポートで HTTP、HTTPS、およびワイルドカードリスナーを公開します。

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: my-gateway
  namespace: some-config-namespace
spec:
  selector:
    istio: ingressgateway
  servers:
  - port:
      number: 80
      name: http
      protocol: HTTP
    hosts:
    - test1.com
    - test2.com
    tls:
      httpsRedirect: true
  - port:
      number: 443
      name: https-443
      protocol: HTTPS
    hosts:
    - uk.bookinfo.com
    - eu.bookinfo.com
    tls:
      mode: SIMPLE
      serverCertificate: /etc/certs/servercert.pem
      privateKey: /etc/certs/privatekey.pem
  - port:
      number: 9443
      name: https-9443
      protocol: HTTPS
    hosts:
    - "bookinfo-namespace/*.bookinfo.com"
    tls:
      mode: SIMPLE
      credentialName: bookinfo-secret
  - port:
      number: 9080
      name: http-wildcard
      protocol: HTTP
    hosts:
    - "*"

このゲートウェイは、ポート 80、443、9443、および 9080 を公開します。istio: ingressgateway ラベルを持つ Pod に適用されます。

Istio ゲートウェイの変更

  1. [ゲートウェイ] ページで、対象の Istio ゲートウェイを検索し、[YAML] を [操作] 列でクリックします。

  2. [編集]」ダイアログボックスで、ビジネス要件に応じて構成を変更し、「[OK]」をクリックします。

Istio ゲートウェイのロールバック

  1. ゲートウェイ]ページで、対象の Istio ゲートウェイを見つけ、[バージョン]を[操作]列でクリックします。

  2. [バージョン] ダイアログボックスで、[ロールバック] をクリックして以前のバージョンを復元します。

詳細については、「Istio リソースを以前のバージョンにロールバックする」をご参照ください。

Istio ゲートウェイの削除

重要

Istio ゲートウェイを削除すると、対応するトラフィックルーティングルールは機能しなくなります。その結果、サービスにアクセスできなくなる可能性があります。この操作を実行する際は注意してください。

  1. [ゲートウェイ] ページで、対象の Istio ゲートウェイを見つけ、[削除][操作] 列でクリックします。

  2. [送信] メッセージで、[OK] をクリックします。