サイドカープロキシは、サービス呼び出しのセキュリティ、信頼性、可観測性を向上させます。これらの特徴を必要としないシナリオでは、Service Mesh を使用して、選択的にサイドカープロキシをバイパスできます。このトピックでは、インバウンドトラフィック、アウトバウンドトラフィック、および特定の送信先へのトラフィックがサイドカープロキシをバイパスするように設定する方法について説明します。
前提条件
ASM インスタンスが作成されていること。詳細については、「ASM インスタンスの作成」をご参照ください。
ACK マネージドクラスターが作成されていること。詳細については、「ACK マネージドクラスターの作成」をご参照ください。
イングレスゲートウェイがデプロイされていること。詳細については、「イングレスゲートウェイの作成」をご参照ください。
インバウンドおよびアウトバウンドトラフィックに対するサイドカーバイパスの設定
パフォーマンスが重視されるシナリオでは、一部の Pod は、mTLS などのセキュリティ認証や、ASM が提供する Service Mesh の機能を必要としない場合があります。この例では、ポート 7001、7002、7005 のインバウンドトラフィックをサイドカープロキシから除外し、同じポートのアウトバウンドトラフィックはサイドカープロキシ経由でルーティングする方法を示します。このアプローチにより、istio-proxy のリソースフットプリントが削減され、全体的なパフォーマンスが向上します。アウトバウンドトラフィックは引き続きインターセプトされるため、負荷分散などの Service Mesh の機能を引き続き使用できます。

ASM コンソール
この例では、Ports on Which Outbound Traffic Redirected to Sidecar Proxy と Ports on Which Inbound Traffic Not Redirected to Sidecar Proxy の設定を使用して、default 名前空間に対して名前空間レベルのサイドカーインターセプションポリシーを設定する方法を示します。
-
ASM コンソールにログインします。
-
左側のナビゲーションウィンドウで、 を選択します。
-
[メッシュ管理] ページで、設定する ASM インスタンスを見つけます。ASM インスタンスの名前をクリックするか、[操作] 列の [管理] をクリックします。
-
ASM インスタンスの詳細ページで、左側のナビゲーションウィンドウから を選択します。
-
Configure the agent parameters of the injected Sidecar ページで、Namespace タブをクリックします。
-
デフォルトの名前空間を選択し、
アイコンをクリックして Enable/Disable Sidecar Proxy by Ports or IP Addresses を展開し、チェックボックスを選択し、次のパラメーターを設定してから、Update Settings をクリックします。パラメーター
説明
Ports on Which Outbound Traffic Redirected to Sidecar Proxy
このパラメーターを 7001,7002,7005 に設定します。
Ports on Which Inbound Traffic Not Redirected to Sidecar Proxy
このパラメーターを 7001,7002,7005 に設定します。
-
Pod を再起動して設定を適用します。
ACK コンソールにログインします。左側のナビゲーションウィンドウで、クラスターリスト をクリックします。
クラスターリスト ページで、ご利用のクラスターの名前をクリックします。左側のナビゲーションウィンドウで、 をクリックします。
-
ポッド ページで、対象の Pod を見つけ、Actions 列で を選択します。
-
ダイアログボックスで OK をクリックします。
コンテナが再起動するまで待ちます。
ACK コンソール
この例では、Deployment にアノテーションを追加して、個別の Pod に対してサイドカーインターセプションポリシーを設定する方法を示します。詳細については、「アノテーションを使用したサイドカープロキシの設定」をご参照ください。
ACK コンソールにログインします。左側のナビゲーションウィンドウで、クラスターリスト をクリックします。
クラスターリスト ページで、お使いのクラスターの名前をクリックします。左側のナビゲーションウィンドウで、 をクリックします。
-
展開 ページで、対象のアプリケーションを見つけ、Actions 列の 詳細 をクリックします。
-
アプリケーション詳細ページの右上隅にある Yaml をクリックします。
-
YAML の編集 ダイアログボックスで、spec.template.metadata パラメーターの下に次の内容を追加し、更新 をクリックします。
annotations: traffic.sidecar.istio.io/excludeInboundPorts: '7001,7002,7005' traffic.sidecar.istio.io/includeOutboundPorts: '7001,7002,7005'template: metadata: annotations: traffic.sidecar.istio.io/excludeInboundPorts: '7001,7002,7005' traffic.sidecar.istio.io/includeOutboundPorts: '7001,7002,7005' -
Pod を再起動して設定を適用します。
ACK コンソールにログインします。左側のナビゲーションウィンドウで、クラスターリスト をクリックします。
クラスターリスト ページで、ご利用のクラスターの名前をクリックします。左側のナビゲーションウィンドウで、 をクリックします。
-
ポッド ページで、対象の Pod を見つけ、Actions 列で を選択します。
-
ダイアログボックスで OK をクリックします。
コンテナが再起動するまで待ちます。
特定の送信先に対するバイパスの設定
この例では、サイドカープロキシが 47.XX.XX.144/32 アドレス範囲へのトラフィックをバイパスするように設定する方法を示します。
ASM コンソール
-
ASM コンソールにログインします。
-
左側のナビゲーションウィンドウで、 を選択します。
-
[メッシュ管理] ページで、設定する ASM インスタンスを見つけます。ASM インスタンスの名前をクリックするか、[操作] 列の [管理] をクリックします。
-
ASM インスタンスの詳細ページで、左側のナビゲーションウィンドウから を選択します。
-
グローバルレベルまたは名前空間レベルでサイドカーインターセプションポリシーを設定します。
-
global
-
Configure the agent parameters of the injected Sidecar ページで、global タブをクリックします。
-
アイコンをクリックして Enable/Disable Sidecar Proxy by Ports or IP Addresses を展開し、Addresses to Which External Access Is Not Redirected to Sidecar Proxy を 47.XX.XX.144/32 に設定し、次に Update Settings をクリックします。
-
-
Namespace
-
Configure the agent parameters of the injected Sidecar ページで、Namespace タブをクリックします。
-
[デフォルト] 名前空間を選択し、
アイコンをクリックして Enable/Disable Sidecar Proxy by Ports or IP Addresses を展開し、チェックボックスを選択し、Addresses to Which External Access Is Not Redirected to Sidecar Proxy を 47.XX.XX.144/32 に設定し、次に Update Settings をクリックします。
-
-
-
Pod を再起動して設定を適用します。
ACK コンソールにログインします。左側のナビゲーションウィンドウで、クラスターリスト をクリックします。
クラスターリスト ページで、ご利用のクラスターの名前をクリックします。左側のナビゲーションウィンドウで、 をクリックします。
-
ポッド ページで、対象の Pod を見つけ、Actions 列で を選択します。
-
ダイアログボックスで OK をクリックします。
コンテナが再起動するまで待ちます。
ACK コンソール
この例では、Deployment にアノテーションを追加して、個別の Pod に対してサイドカーインターセプションポリシーを設定する方法を示します。詳細については、「アノテーションを使用したサイドカープロキシの設定」をご参照ください。
ACK コンソールにログインします。左側のナビゲーションウィンドウで、クラスターリスト をクリックします。
クラスターリスト ページで、ご利用のクラスターの名前をクリックします。左側のナビゲーションウィンドウで、 をクリックします。
-
展開 ページで、対象のアプリケーションをクリックします。
-
アプリケーション詳細ページの右上隅にある Yaml をクリックします。
-
YAML の編集 ダイアログボックスで、spec.template.metadata パラメーターの下に次の内容を追加し、更新 をクリックします。
annotations: traffic.sidecar.istio.io/excludeOutboundIPRanges: 47.XX.XX.144/32template: metadata: annotations: traffic.sidecar.istio.io/excludeOutboundIPRanges: 47.XX.XX.144/32 -
Pod を再起動して設定を適用します。
ACK コンソールにログインします。左側のナビゲーションウィンドウで、クラスターリスト をクリックします。
クラスターリスト ページで、ご利用のクラスターの名前をクリックします。左側のナビゲーションウィンドウで、 をクリックします。
-
ポッド ページで、対象の Pod を見つけ、Actions 列で を選択します。
-
ダイアログボックスで OK をクリックします。
コンテナが再起動するまで待ちます。
結果の確認
Outbound Traffic Policy を [REGISTRY_ONLY] に設定することで、トラフィックがサイドカープロキシをバイパスしていることを検証できます。[REGISTRY_ONLY] モードでは、サイドカープロキシはインターセプトしたトラフィックをブロックします。したがって、接続が成功すると、トラフィックがプロキシをバイパスしたことになります。
-
ASM コンソールで、Configure the agent parameters of the injected Sidecar ページに移動し、global タブをクリックします。
-
アイコンをクリックして Outbound Traffic Policy を展開し、[REGISTRY_ONLY] を選択して、Update Settings をクリックします。 -
次のコマンドを実行して http://47.XX.XX.144/productpage にアクセスします。
curl -I http://47.XX.XX.144/productpage期待される出力:次のレスポンスヘッダーが返されます。
HTTP/1.1 200 OKステータスコードは、アクセスが成功したことを示します。HTTP/1.1 200 OK content-type: text/html; charset=utf-8 content-length: 5179 server: istio-envoy date: Thu, 07 Apr 2022 13:46:22 GMT x-envoy-upstream-service-time: 2347.XX.XX.144/32 がサイドカープロキシをバイパスするように設定した後、http://47.XX.XX.144/productpage に正常にアクセスできます。実際の状況に応じて、特定の送信先アドレスがサイドカープロキシをバイパスするように設定できます。