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

Alibaba Cloud Service Mesh:リソースアノテーションを追加してサイドカープロキシを設定する

最終更新日:Jan 13, 2025

サービスメッシュ(ASM)では、リソースアノテーションを追加することでサイドカープロキシを変更できます。このトピックでは、リソースアノテーションを追加し、ProxyConfigフィールドを設定してサイドカープロキシを設定する方法について説明します。

前提条件

リソースアノテーションを追加する

ASMでは、リソースアノテーションを追加することでサイドカープロキシを変更できます。このトピックでは、リソースアノテーションを追加し、ProxyConfigフィールドを設定してサイドカープロキシを設定する方法について説明します。その他のアノテーションの詳細については、「付録 1:Istioリソースアノテーション」をご参照ください。

  1. デフォルトの名前空間に対してサイドカープロキシの自動インジェクションを有効にします。詳細については、「サイドカープロキシの自動インジェクションを有効にする」をご参照ください。

  2. デフォルトの名前空間にアプリケーションをデプロイします。詳細については、「ASMインスタンスに追加されたACKクラスターにアプリケーションをデプロイする」をご参照ください。

  3. サイドカープロキシの最小メモリを変更します。

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

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

    3. [デプロイメント] ページで、変更するアプリケーションを見つけ、その他 > YAML で表示[アクション] 列で を選択します。

    4. [YAMLの編集] ダイアログボックスで、template パラメーターの下に次のコンテンツを追加します。次に、[更新] をクリックします。

      annotations:
        sidecar.istio.io/proxyMemory: 14Mi

      内存

  4. サイドカープロキシのメモリが変更されたかどうかを確認します。

    1. 詳細ページの左側のナビゲーションペインで、[ワークロード] > [ポッド] を選択します。

    2. [ポッド] ページで、表示するポッドを見つけ、詳細の表示[アクション] 列の をクリックします。

    3. [コンテナー] タブで、[istio-proxy] をクリックします。

      istio-proxy コンテナーに必要なメモリが 14 MiB であることがわかります。所需资源

ProxyConfig フィールドを設定する

ASMでは、ポッドのProxyConfigフィールドを変更することで、サイドカープロキシを設定できます。 ProxyConfig フィールドの詳細については、「付録 2:ProxyConfig フィールド」をご参照ください。

説明

proxy.istio.io/config アノテーションの値は、YAML形式またはJSON形式です。

ProxyConfig フィールドを設定する手順は、リソースアノテーションを追加する手順と似ています。詳細については、「リソースアノテーションを追加する」セクションの手順をご参照ください。この例では、一般的な ProxyConfig フィールドを使用します。

例 1:終了ドレイン期間を設定する

terminationDrainDuration フィールドを設定することで、終了ドレイン期間を変更できます。終了ドレイン期間は、アプリケーションコンテナーが終了したときに、istio-proxy コンテナーが強制終了またはシャットダウンされるまで待機する時間の長さを示します。

アプリケーションのYAMLファイルに次のコンテンツを追加します。アプリケーションコンテナーが終了すると、istio-proxy コンテナーは 3 秒間待機します。

annotations:
  proxy.istio.io/config: |
    terminationDrainDuration: 3s

中止排出时间

[ポッド] ページで、表示するポッドを見つけ、[アクション] 列の [詳細の表示] をクリックします。 [コンテナー] タブで、istio-proxy をクリックします。終了ドレイン期間が 3 秒であることがわかります。proxy配置

例 2:istio-proxy コンテナーの開始シーケンスを設定する

デフォルトでは、ASM でグローバルに holdApplicationUntilProxyStarts フィールドが true に設定されており、ポッドが起動する前に istio-proxy コンテナーが起動していることが保証されます。ポッドの起動時に istio-proxy コンテナーが起動していない場合、ポッドはトラフィックを受信できません。

holdApplicationUntilProxyStarts は、サイドカープロキシがインジェクトされた後のアプリケーションコンテナーの起動動作を制御するために使用されます。 holdApplicationUntilProxyStartstrue に設定されている場合、Istio Container Network Interface(CNI)プラグインまたはサイドカーインジェクターは、istio-proxy コンテナーがトラフィックを受信できるようになるまでアプリケーションコンテナーが起動しないように Kubernetes ポッド YAML を変更します。これにより、ポッドがトラフィックを受信する前にすべてのトラフィックが istio-proxy コンテナーを通過するため、トラフィック管理、監視、およびセキュリティポリシーがすぐに有効になります。ほとんどの場合、ネットワークトラフィックが適切に管理されるように、holdApplicationUntilProxyStartstrue に設定することをお勧めします。特別な場合によっては、holdApplicationUntilProxyStarts を false に設定する方が適切な場合があります。

[ポッド] ページで、表示するポッドを見つけ、[アクション] 列の [詳細の表示] をクリックします。 [イベント] タブをクリックします。すると、ポッドの起動後に istio-proxy コンテナーが起動していることがわかります。启动

付録 1:Istioリソースアノテーション

アノテーション

説明

proxy.istio.io/config

プロキシ設定をオーバーライドします。

readiness.status.sidecar.istio.io/applicationPorts

アプリケーションコンテナーによって公開されるポートのリストを指定します。このアノテーションは、サイドカープロキシの準備プローブによって使用され、サイドカープロキシが設定され、トラフィックを受信する準備ができているかどうかを判断します。

readiness.status.sidecar.istio.io/failureThreshold

サイドカープロキシの準備プローブの失敗しきい値を指定します。

readiness.status.sidecar.istio.io/initialDelaySeconds

サイドカープロキシの準備プローブの初期遅延を指定します。単位:秒。

readiness.status.sidecar.istio.io/periodSeconds

サイドカープロキシの準備プローブの期間を指定します。単位:秒。

sidecar.istio.io/componentLogLevel

サイドカープロキシのコンポーネントログレベルを指定します。

sidecar.istio.io/enableCoreDump

サイドカープロキシのコアダンプを有効にするかどうかを指定します。

sidecar.istio.io/extraStatTags

プロキシ内 Istio テレメトリから抽出された追加タグのリスト。各追加タグはこのリストに存在する必要があります。

sidecar.istio.io/inject

サイドカープロキシの自動インジェクションを有効にするかどうかを指定します。

sidecar.istio.io/interceptionMode

受信トラフィックを Envoy にリダイレクトするために使用されるモード(REDIRECT または TPROXY)を指定します。

sidecar.istio.io/logLevel

サイドカープロキシのログレベルを指定します。

sidecar.istio.io/proxyCPU

サイドカープロキシの要求された CPU 設定を指定します。

sidecar.istio.io/proxyCPULimit

サイドカープロキシの CPU 制限を指定します。

sidecar.istio.io/proxyMemory

サイドカープロキシの要求されたメモリ設定を指定します。

sidecar.istio.io/proxyMemoryLimit

サイドカープロキシのメモリ制限を指定します。

sidecar.istio.io/rewriteAppHTTPProbers

HTTP 準備プローブと生存プローブをサイドカープロキシにリダイレクトするように書き換えます。

status.sidecar.istio.io/port

サイドカープロキシの HTTP ステータス ポートを指定します。ポート番号が 0 の場合、サイドカープロキシはステータスを提供しません。

traffic.sidecar.istio.io/excludeInboundPorts

サイドカープロキシへのトラフィックリダイレクトから除外される受信ポートのカンマ区切りリスト。このアノテーションは、すべての受信トラフィックがサイドカープロキシにリダイレクトされる場合にのみ有効です。ワイルドカード(*)は任意の受信ポートを示します。

traffic.sidecar.istio.io/excludeOutboundIPRanges

サイドカープロキシへの送信トラフィックリダイレクトから除外される CIDR ブロックのカンマ区切りリスト。このアノテーションは、すべての送信トラフィックがサイドカープロキシにリダイレクトされる場合にのみ有効です。ワイルドカード(*)は任意の CIDR ブロックを示します。

traffic.sidecar.istio.io/excludeOutboundPorts

サイドカープロキシへのトラフィックリダイレクトから除外される送信ポートのカンマ区切りリスト。

traffic.sidecar.istio.io/includeInboundPorts

トラフィックがサイドカープロキシにリダイレクトされる受信ポートのカンマ区切りリスト。ワイルドカード(*)は任意の受信ポートを示します。空のリストは、すべての受信トラフィックのサイドカープロキシへのリダイレクトが無効になっていることを示します。

traffic.sidecar.istio.io/includeOutboundIPRanges

送信トラフィックをサイドカープロキシにリダイレクトする CIDR ブロックのカンマ区切りリスト。ワイルドカード(*)は任意の CIDR ブロックを示します。空のリストは、すべての送信トラフィックのサイドカープロキシへのリダイレクトが無効になっていることを示します。

traffic.sidecar.istio.io/includeOutboundPorts

トラフィックがサイドカープロキシにリダイレクトされる送信ポートのカンマ区切りリスト。

traffic.sidecar.istio.io/kubevirtInterfaces

受信トラフィックが送信トラフィックとして扱われる仮想インターフェースのカンマ区切りリスト。

付録 2:ProxyConfig フィールド

フィールド

タイプ

説明

configPath

String

構成ファイルのディレクトリへのパスを指定します。プロキシアгентは実際の構成を生成し、このディレクトリに保存します。

statsdUdpAddress

String

StatsD UDP リスナーの IP アドレスとポートを指定します。

proxyAdminPort

Int32

Envoy が管理コマンドをリッスンするポートを指定します。デフォルトポートはポート 15000 です。

controlPlaneAuthPolicy

AuthenticationPolicy

プロキシがコントロールプレーンに接続するときにどのように認証されるかを指定します。デフォルト値は MUTUAL_TLS です。

concurrency

Int32Value

実行するワーカースレッドの数を指定します。このフィールドが指定されていない場合、数は CPU 要求と制限に基づいて自動的に決定されます。このフィールドが 0 に設定されている場合、マシン上のすべてのコアが使用されます。デフォルト値は 2 です。

interceptionMode

InboundInterceptionMode

受信トラフィックがサイドカープロキシにリダイレクトされるモードを指定します。

tracing

Tracing

サイドカープロキシのトレース構成を指定します。

sds

SDS

サイドカープロキシの Secret Discovery Service(SDS)構成を指定します。

proxyMetadata

Map<string, string>

サイドカープロキシの追加の環境変数を指定します。 ISTIO_META_ で始まる名前の変数は、生成されたブートストラップに含まれ、XDS サーバーに送信されます。

statusPort

Map<string, string>

サイドカープロキシが準備プローブなどの管理コマンドをリッスンするポートを指定します。デフォルトポートはポート 15020 です。

terminationDrainDuration

Duration

プロキシのシャットダウン時に接続が完了するまでに許容される時間の長さを指定します。SIGTERM または SIGINT が受信されると、istio-agent はアクティブな Envoy にドレインを開始するように指示し、新しい接続を防止し、既存の接続を完了できるようにします。次に、istio-agent は終了ドレイン期間の間スリープし、残りのアクティブな Envoy プロセスを強制終了します。デフォルト値は 5 です。単位:秒。

holdApplicationUntilProxyStarts

BoolValue

holdApplicationUntilProxyStarts 動作を有効または無効にするためのブール値フラグを指定します。この機能は、ポッドプロキシがトラフィックを受け入れる準備ができるまでアプリケーションの起動を遅らせるフックを追加し、起動時の競合状態を軽減します。