ASM イングレスゲートウェイの圧縮を有効にすると、HTTP 応答が圧縮されます。これにより、応答速度が向上し、帯域幅の使用量が削減されます。このトピックでは、ASM イングレスゲートウェイの圧縮を有効にする方法について説明します。
前提条件
イングレスゲートウェイがデプロイされていること。詳細については、「イングレスゲートウェイの作成」をご参照ください。
-
ドメイン名を使用する場合、アクセス可能にするには、インターネットコンテンツプロバイダー (ICP) 申請が必要です。
操作手順
-
ACK クラスターに Nginx をデプロイします。
-
次の内容で nginx.yaml という名前のファイルを作成します。
-
次のコマンドを実行して、Nginx アプリケーションをデプロイします。
kubectl apply -f nginx.yaml
-
-
VirtualService と Gateway を作成します。
-
ASM コンソールにログインします。左側のナビゲーションウィンドウで、 を選択します。
-
[メッシュ管理] ページで、設定する ASM インスタンスを見つけます。ASM インスタンスの名前をクリックするか、[操作] 列の [管理] をクリックします。
-
ASM インスタンスの詳細ページで、左側のナビゲーションウィンドウから を選択します。表示されたページで、[YAML から作成] をクリックします。
-
Create ページで、対象の Namespaces を選択し、次の内容をコードエディタに貼り付けてから、Create をクリックします。
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 -
ASM インスタンスの詳細ページで、左側のナビゲーションウィンドウから を選択します。表示されたページで、[YAML から作成] をクリックします。
-
Create ページで、対象の Namespaces を選択し、次の内容をコードエディタに貼り付けてから、Create をクリックします。
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
-
-
ASM イングレスゲートウェイの圧縮を有効にします。
-
左側のナビゲーションウィンドウで、 を選択します。
-
Ingress Gateway ページで、[ingressgateway] を見つけ、[操作] 列の View YAML をクリックします。
-
Edit ダイアログボックスで、次の内容を追加し、OK をクリックします。
compression: content_type: - text/html enabled: true gzip: memory_level: 9 remove_accept_encoding_header: true次の表に、主要な圧縮フィールドを示します。圧縮フィールドの詳細については、「Kubernetes API を使用したイングレスゲートウェイの管理」をご参照ください。
パラメーター
説明
compression.content_type
圧縮するコンテンツタイプのリスト。
compression.enabled
イングレスゲートウェイの圧縮を有効にするかどうかを指定します。
compression.gzip
Gzip 圧縮のメモリレベル。
compression.remove_accept_encoding_header
-
trueに設定すると、イングレスゲートウェイはクライアントリクエストをアップストリームサービスに転送する前に、リクエストから Accept-Encoding ヘッダーを削除します。 -
falseに設定すると、イングレスゲートウェイはクライアントリクエストをアップストリームサービスに転送する前に、リクエストの Accept-Encoding ヘッダーを保持します。
-
-
圧縮の確認
-
ブラウザの開発者ツールを開きます。このガイドでは、例として Google Chrome を使用します。
-
Google Chrome の右上隅にある
アイコンをクリックします。 -
を選択します。
-
-
Nginx アプリケーションにアクセスします。
ACK コンソールにログインします。左側のナビゲーションウィンドウで、クラスターリスト をクリックします。
クラスターリスト ページで、目的のクラスターの名前をクリックします。 左側のナビゲーションウィンドウで、 をクリックします。
-
サービス ページで、名前空間 を [istio-system] に設定し、[外部 IP] 列で istio-ingressgateway サービス (ポート 80) の IP アドレスを見つけます。
-
ブラウザのアドレスバーに、istio-ingressgateway サービスの外部 IP アドレスを入力します。
応答の
Content-Encodingがgzipであることがわかります。これは、ASM イングレスゲートウェイの圧縮が正常に有効化されたことを示します。ネットワークパネルで任意のリクエストを選択し、レスポンスヘッダー にcontent-encoding: gzipが含まれていることを確認します。これにより、ASM イングレスゲートウェイで gzip 圧縮が正常に有効化されたことが示されます。