Apigee Hybrid에서 대상 제한 시간 한도 구성

개요

Apigee Hybrid는 기본적으로 대상 io.timeout.millis를 최대 55,000밀리초까지 지원합니다. 대상 엔드포인트 전송 사양을 참조하세요.

느린 대상 엔드포인트의 대상 제한 시간을 늘리려면 런타임 구성을 다음과 같이 변경하세요.

  • Istio와 메시지 프로세서(MP) 간에 virtualhosts[].requestTimeout을 구성합니다. virtualhosts를 참조하세요.
  • MP와 대상 간에 conf_http_HTTPTransport.io.timeout.millis를 구성합니다.

이러한 설정은 설치의 개별 환경 또는 모든 환경에 대해 구성할 수 있습니다.

요청 제한 시간 한도를 변경하도록 virtualhost 구성

requestTimeout은 MP에서 요청을 처리하기 위해 가상 호스트에 설정된 최대 시간(초)입니다.

요청 제한 시간 한도를 구성하려면 virtualhosts[].requestTimeout 속성을 사용하면 됩니다. overrides.yaml 파일을 다음과 같이 변경합니다.

  1. overrides.yaml 파일에 다음 스탠자를 추가합니다.
    virtualhosts:
    - name: ENV_GROUP_NAME
      requestTimeout: 600   # Increase requestTimeout to 600 seconds
    
  2. 한 번에 환경 그룹(virtualhost) 하나만 설치해야 합니다. --set envgroup=ENV_GROUP_NAME으로 환경 그룹을 지정합니다. override.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를 설치하면 Apigee 감시자가 제어 영역에서 환경 그룹 관련 세부정보를 가져온 후 내부적으로 ApigeeRoute(AR)를 만드는 ApigeeRouteConfig(ARC)가 생성됩니다. 따라서 해당 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

대상 제한 시간 한도를 변경하도록 개별 환경 구성

느린 대상 엔드포인트가 있는 프록시가 설치에서 한 개 또는 몇 개의 환경에만 있는 경우 대상 제한 시간 한도를 변경하도록 환경을 개별적으로 구성할 수 있습니다. 이렇게 하면 다른 환경에 영향을 더 이상 미치지 않습니다.

대상 제한 시간 한도를 변경하도록 개별 환경을 구성하려면 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. 한 번에 환경 하나만 업그레이드해야 합니다. 업데이트할 각 환경에 대해 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_NAMEapigee-env 차트 설치 및 업그레이드를 추적하는 데 사용되는 이름입니다. 이 이름은 설치 내 다른 Helm 출시 이름과 다르게 고유해야 합니다. 일반적으로 ENV_NAME과 동일합니다. 그러나 환경 이름이 환경 그룹 이름과 같으면 환경과 환경 그룹에 서로 다른 출시 이름(예: dev-env-releasedev-envgroup-release)을 사용해야 합니다. Helm의 출시 버전에 대한 자세한 내용은 Helm 문서의 세 가지 주요 개념 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