Apigee ハイブリッドでターゲット タイムアウトの上限を構成する

概要

Apigee ハイブリッドは、デフォルトで最大 55,000 ミリ秒のターゲット io.timeout.millis をサポートしています。ターゲット エンドポイントのトランスポート仕様をご覧ください。

ターゲット タイムアウトの上限を増やして、ターゲット エンドポイントの遅延に対応するには、ランタイム構成に次の変更を加えます。

  • Istio と Message Processor(MP)間の virtualhosts[].requestTimeout を構成します。virtualhosts をご覧ください
  • MP とターゲット間の conf_http_HTTPTransport.io.timeout.millis を構成する

これらの設定は、個々の環境またはインストール内のすべての環境に対して構成できます。

リクエスト タイムアウトの上限を変更するように仮想ホストを構成する

requestTimeout は、MP でリクエストが処理される仮想ホストに設定された最大時間(秒単位)です。

リクエスト タイムアウトの上限を構成するには、virtualhosts[].requestTimeout プロパティを使用します。overrides.yaml ファイルに次の変更を加えます。

  1. 次のスタンザを overrides.yaml ファイルに追加します。
    virtualhosts:
    - name: ENV_GROUP_NAME
      requestTimeout: 600   # Increase requestTimeout to 600 seconds
    
  2. 一度にアップグレードできる環境グループ(virtualhost)は 1 つだけです。--set envgroup=ENV_GROUP_NAME を使用して環境グループを指定します。overrides.yaml ファイルに記載されている環境グループごとに、次のコマンドを繰り返します。

    ドライランを実行します。

    helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --set envgroup=ENV_GROUP_NAME \
      -f OVERRIDES_FILE \
      --dry-run=server
    

    ENV_GROUP_RELEASE_NAME は、以前に apigee-virtualhost チャートをインストールしたときに使用した名前です。通常は ENV_GROUP_NAME です。

    チャートをアップグレードします。

    helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --set envgroup=ENV_GROUP_NAME \
      -f OVERRIDES_FILE
    
  3. ApigeeRoute(AR)の状態を確認します。

    virtualhosts をインストールすると、ApigeeRouteConfig(ARC)が作成されます。これにより、Apigee ウォッチャーがコントロール プレーンから環境グループ関連の詳細を pull した時点で、ApigeeRoute(AR)が内部で作成されます。このため、対応する AR の状態が実行中であることを確認します。

    kubectl -n APIGEE_NAMESPACE get arc
    
    NAME                                STATE   AGE
    apigee-org1-dev-egroup                       2d
    kubectl -n APIGEE_NAMESPACE get ar
    
    NAME                                        STATE     AGE
    apigee-org1-dev-egroup-cb9a8a                running   2d

ターゲット タイムアウトの上限を変更するように個々の環境を構成する

ターゲット エンドポイントが遅いプロキシがインストール内の 1 つまたは少数の環境のみにある場合は、環境を個別に構成してターゲット タイムアウトの上限を変更できます。これにより、他の環境への影響を回避できます。

ターゲット タイムアウトの制限を変更するように個々の環境を構成するには、envs[].components.runtime プロパティを使用します。overrides.yaml ファイルに次の変更を加えます。

  1. 次のスタンザを overrides.yaml ファイルに追加します。
    envs:
    - name: ENV_NAME
      components.
        runtime:
          cwcAppend:
            conf_http_HTTPTransport.io.timeout.millis: 600000   # Increase io.timeout.millis to 600000 milliseconds
    
  2. 一度にアップグレードできる環境は 1 つだけです。更新する各環境の apigee-env チャートをアップグレードします。

    ドライランを実行します。

    helm upgrade ENV_RELEASE_NAME apigee-env/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --set env=ENV_NAME \
      -f OVERRIDES_FILE \
      --dry-run=server
    
    • ENV_RELEASE_NAME は、apigee-env チャートのインストールとアップグレードの追跡に使用する名前です。この名前は、インストール内の他の Helm リリース名と重複していない必要があります。通常、これは ENV_NAME と同じにします。ただし、環境と環境グループの名前が同じである場合は、環境と環境グループに対して異なるリリース名(dev-env-releasedev-envgroup-release など)を使用する必要があります。Helm のリリースの詳細については、Helm ドキュメントの 3 つの大きなコンセプト class="external" をご覧ください。
    • ENV_NAME はアップグレードする環境の名前です。
    • OVERRIDES_FILE は、編集した overrides.yaml ファイルです。
  3. チャートをアップグレードします。
    helm upgrade ENV_RELEASE_NAME apigee-env/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --set env=ENV_NAME \
      -f OVERRIDES_FILE
    
  4. それぞれの環境の状態をチェックして、稼働していることを確認します。

    kubectl -n APIGEE_NAMESPACE get apigeeenv
    
    NAME                          STATE       AGE   GATEWAYTYPE
    my-org-my-env-123abc          running     2d

ターゲット タイムアウトの上限を変更するようにすべての環境を構成する

runtime スタンザを変更すると、インストール内のすべての環境のターゲット タイムアウトの上限が変更されます。runtime プロパティを使用して、個々の環境でこれらの設定をオーバーライドできます。

  1. 次のスタンザを overrides.yaml ファイルに追加します。
    runtime:
      cwcAppend:
        conf_http_HTTPTransport.io.timeout.millis: 600000   # Increase io.timeout.millis to 600000 milliseconds
    
  2. インストール内の各環境の apigee-env チャートをアップグレードします。

    ドライランを実行します。

    helm upgrade ENV_RELEASE_NAME apigee-env/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --set env=ENV_NAME \
      -f OVERRIDES_FILE \
      --dry-run=server
    

    チャートをアップグレードします。

    helm upgrade ENV_RELEASE_NAME apigee-env/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --set env=ENV_NAME \
      -f OVERRIDES_FILE