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

Alibaba Cloud Service Mesh:ASM インスタンスのイングレスゲートウェイサービスのデータ圧縮を有効にする

最終更新日:Mar 21, 2025

Service Mesh (ASM) インスタンスのイングレスゲートウェイサービスのデータ圧縮を有効にすると、サーバーは HTTP リクエストのレスポンスコンテンツを圧縮します。これにより、応答時間とトラフィック消費が削減されます。このトピックでは、ASM インスタンスのイングレスゲートウェイサービスのデータ圧縮を有効にする方法について説明します。

前提条件

  • クラスターが ASM インスタンスに追加されていること。詳細については、「ASM インスタンスへのクラスターの追加」をご参照ください。

  • イングレスゲートウェイがデプロイされていること。詳細については、「イングレスゲートウェイの作成」をご参照ください。

  • ドメイン名を使用する場合は、ドメイン名のインターネットコンテンツプロバイダー (ICP) ファイリングを取得していること。

手順

  1. ACK クラスターに NGINX アプリケーションをデプロイします。

    1. 以下の内容を含む nginx.yaml ファイルを作成します。

      apiVersion: apps/v1 # 1.9.0 より前のバージョンでは apps/v1beta2 を使用します
      kind: Deployment
      metadata:
        name: nginx-deployment
      spec:
        selector:
          matchLabels:
            app: nginx
        replicas: 1
        template:
          metadata:
            labels:
              app: nginx
              sidecarset-injected: "true"
          spec:
            containers:
            - name: nginx
              image: nginx:1.14.2
              ports:
              - containerPort: 80
      ---
      apiVersion: v1
      kind: Service
      metadata:
        name: nginx
      spec:
        ports:
          - name: http
            port: 80
            protocol: TCP
            targetPort: 80
        selector:
          app: nginx
        type: ClusterIP
    2. 次のコマンドを実行して、NGINX アプリケーションをデプロイします。

      kubectl apply -f nginx.yaml
  2. 仮想サービスと Istio ゲートウェイを作成します。

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

    2. [メッシュ管理] ページで、構成する ASM インスタンスを見つけます。ASM インスタンスの名前をクリックするか、管理[アクション] 列の をクリックします。

    3. ASM インスタンスの詳細ページで、左側のナビゲーションペインの [トラフィック管理センター] > [virtualservice] を選択します。表示されるページで、[YAML から作成] をクリックします。

    4. [作成] ページで、名前空間を選択し、次の内容をコードエディターにコピーして、[作成] をクリックします。

      apiVersion: networking.istio.io/v1beta1
      kind: VirtualService
      metadata:
        name: nginx
        namespace: default
      spec:
        gateways:
          - nginx-gateway
        hosts:
          - '*'
        http:
          - match:
              - uri:
                  exact: /
            route:
              - destination:
                  host: nginx
                  port:
                    number: 80
    5. ASM インスタンスの詳細ページで、左側のナビゲーションペインの [ASM ゲートウェイ] > [ゲートウェイ] を選択します。表示されるページで、[YAML から作成] をクリックします。

    6. [作成] ページで、名前空間を選択し、次の内容をコードエディターにコピーして、[作成] をクリックします。

      apiVersion: networking.istio.io/v1beta1
      kind: Gateway
      metadata:
        name: nginx-gateway
        namespace: default
      spec:
        selector:
          istio: ingressgateway
        servers:
          - hosts:
              - '*'
            port:
              name: http
              number: 80
              protocol: HTTP
  3. ASM インスタンスのイングレスゲートウェイサービスのデータ圧縮を有効にします。

    1. ASM インスタンスの詳細ページで、左側のナビゲーションペインの [ASM ゲートウェイ] > [イングレスゲートウェイ] を選択します。

    2. [イングレスゲートウェイ] ページで、使用するイングレスゲートウェイを見つけて、[YAML] をクリックします。

    3. [編集] ダイアログボックスで、次の内容を YAML コードに追加し、[OK] をクリックします。

      compression:
        content_type:
          - text/html
        enabled: true
        gzip:
          memory_level: 9
        remove_accept_encoding_header: true

      次の表に、いくつかのフィールドについて説明します。フィールドの詳細については、「Kubernetes API を使用したイングレスゲートウェイの作成と管理」をご参照ください。

      フィールド

      説明

      compression.content_type

      圧縮される Content-Type ヘッダー。

      compression.enabled

      イングレスゲートウェイサービスのデータ圧縮を有効にするかどうかを指定します。

      compression.gzip

      圧縮形式と圧縮に使用できるメモリの量。

      compression.remove_accept_encoding_header

      • イングレスゲートウェイが HTTP リクエストをアップストリームサービスに転送する前に、クライアントから送信された HTTP リクエストから Accept-Encoding ヘッダーを削除するかどうかを指定します。パラメーターが true に設定されている場合、Accept-Encoding ヘッダーは HTTP リクエストから削除されます。

      • パラメーターが false に設定されている場合、Accept-Encoding ヘッダーは HTTP リクエストに保持されます。

      設定例:

      Compression

イングレスゲートウェイサービスのデータ圧縮が有効になっていることを確認する

  1. ブラウザーのデバッグページを開きます。この例では、Google Chrome を使用します。

    1. Google Chrome の右上隅にある Settings icon アイコンをクリックします。

    2. [その他のツール] > [デベロッパーツール] を選択します。

  2. NGINX アプリケーションにアクセスします。

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

    2. [クラスター] ページで、管理するクラスターを見つけて、その名前をクリックします。左側のペインで、[ネットワーク] > [サービス] を選択します。

    3. [サービス] ページの上部で、istio-system[名前空間] ドロップダウンリストから 外部 IP を選択します。 istio_ingressgateway を見つけ、 列でポートが 80 の IP アドレスを表示します。

    4. DevTools パネルで、取得した istio_ingressgateway サービスのエンドポイントを入力します。

      次の図に示すように、[レスポンスヘッダー] セクションで content-encoding パラメーターの値が gzip の場合、イングレスゲートウェイサービスのデータ圧縮が有効になっていることを示します。Compression