프록시리스 gRPC 제한사항

이 문서에서는 프록시리스 gRPC 애플리케이션에 사용 시 Traffic Director에 적용되는 제한사항을 설명합니다. 한도에 대한 자세한 내용은 할당량 및 한도를 참조하세요.

일반 제한사항

프록시리스 gRPC 애플리케이션을 사용하는 Traffic Director의 제한사항은 다음과 같습니다.

  • Google Cloud Console에서는 gRPC 프로토콜을 사용하여 백엔드 서비스와 라우팅 규칙 맵을 구성할 수 없습니다. Google Cloud 콘솔에서 이러한 리소스는 읽기 전용으로 제공됩니다.

  • 프록시리스 gRPC는 엔드포인트 검색, 라우팅, 부하 분산, 부하 보고 및 여러 고급 트래픽 관리 기능을 지원합니다.

    • 일부 고급 트래픽 관리 기능을 지원하는 데 필요한 최소 gRPC 버전은 지원되는 gRPC 버전 및 언어를 참조하세요.

    • 지원되지 않는 고급 트래픽 관리 기능이 필요한 gRPC 애플리케이션의 경우 xDS 리졸버 대신 DNS 이름 리졸버를 사용하고 Traffic Director에서 지원되는 사이드카 프록시와 함께 배포하세요. 대상 gRPC 프록시에서 validateForProxyless 필드를 FALSE로 설정하여 아직 gRPC에서 지원되지 않지만 Traffic Director에서 사이드카 프록시를 사용하면 사용할 수 있는 기능을 구성할 수 있습니다.

  • 프록시리스 gRPC는 라운드 로빈 및 링 해시 부하 분산 정책만 지원합니다. 다른 부하 분산 정책은 지원되지 않습니다.

    • Traffic Director는 gRPC 클라이언트에 우선순위와 가중치가 정해진 지역 목록(인스턴스 그룹 또는 네트워크 엔드포인트 그룹(NEG) 한 개)을 제공합니다. Traffic Director는 가장 가까운 가용 영역, 용량, 백엔드 서비스의 분산 모드를 기준으로 이 값을 계산합니다.
    • 특정 요청의 경우 gRPC 클라이언트는 우선순위와 가중치를 기준으로 지역을 한 개 이상 선택하고 이러한 지역 내 백엔드로 라운드 로빈 또는 링 해시 기반 부하 분산을 수행합니다.
  • 현재 영역 용량이 50% 미만으로 떨어지면 한 영역(지역)에서 다른 영역으로 장애 조치가 시작됩니다. 이 임곗값은 구성할 수 없습니다.

  • 대상 gRPC 프록시 및 대상 gRPC 프록시를 참조하는 전달 규칙과 관련된 구성 명령어는 경우에 따라 최대 1분이 걸릴 수 있습니다.

  • 하이브리드 연결 NEG(NON_GCP_PRIVATE_IP_PORT NEG)는 프록시리스 gRPC 클라이언트에서 지원되지 않습니다.

URL 맵 제한사항

프록시리스 gRPC 서비스에서 지원되는 URL 맵 트래픽 관리 기능은 다음과 같습니다.

hostRulespathMatcher에서 지원되는 기능은 다음과 같습니다.

pathMatcher
  name
  description
  defaultService
  defaultRouteAction
     weightedBackendServices
       backendService
       weight
    retryPolicy
       retryConditions
       numRetries
    faultInjectionPolicy
    maxStreamDuration
  pathRules
    service
    routeAction
      weightedBackendServices
         backendService
         weight
      retryPolicy
         retryConditions
         numRetries
      faultInjectionPolicy
      maxStreamDuration
    paths
  routeRules
    priority
    description
    matchRules
        prefixMatch
        fullPathMatch
        headerMatches
        metadataFilters
    service
    routeAction
      weightedBackendServices
         backendService
         weight
      retryPolicy
         retryConditions
         numRetries
      faultInjectionPolicy
      maxStreamDuration

프록시리스 gRPC 서비스를 사용하면 다음 URL 맵 제한사항이 적용됩니다.

  • 호스트 규칙의 와일드 카드 문자와 URL 맵의 기본 규칙(암시적으로 생성된 URL 맵의 * 호스트 규칙 포함)은 지원되지 않습니다. 호스트 일치가 수행되면 이러한 항목은 건너뜁니다.

  • 다음 기능은 지원되지 않습니다.

    • routeRulesqueryParameterMatches
    • headerAction, urlRewrite, requestMirrorPolicy, corsPolicy, urlRedirect 라우팅 작업
    • timeout 라우팅 작업: timeout 대신 maxStreamDuration 사용
    • retryPolicyperTryTimeout
    • retryPolicyretryConditions(cancelled, deadline-exceeded, internal, resource-exhausted, unavailable의 조건 하나 이상을 제외)
    • URL 맵의 defaultService, defaultRouteAction, defaultUrlRedirect, headerAction은 프록시리스 gRPC 서비스에서 사용되지 않습니다. 프록시리스 gRPC 클라이언트가 서비스 이름을 조회할 때 일치하는 호스트 규칙이 없으면 Traffic Director는 URL 맵의 기본 서비스나 작업을 사용하지 않고 이름 조회 오류를 반환합니다.
    • weightedBackendServicesheaderAction
  • URL 맵 헤더 일치 규칙에는 사용자가 지정한 바이너리가 아닌 커스텀 메타데이터content-type 헤더만 지원됩니다. :authority, :method, :path, :scheme, user-agent, accept-encoding, content-encoding, grpc-accept-encoding, grpc-encoding, grpc-previous-rpc-attempts, grpc-tags-bin, grpc-timeout, grpc-trace-bin과 같은 전송 수준 헤더를 헤더 일치 규칙에 사용할 수 없습니다.

  • 한 백엔드 서비스에서 다른 백엔드 서비스로 변경하기 위해 URL 맵 호스트 규칙을 업데이트하면 새 구성이 클라이언트에 푸시되는 동안 트래픽이 잠시 중단될 수 있습니다. 이러한 문제가 방지되도록 가중치가 적용된 백엔드 서비스로 트래픽 분할을 구성합니다. 트래픽 분할을 구성한 다음 이전 백엔드 서비스에서 새 백엔드 서비스로 트래픽을 천천히 전환합니다.

대상 gRPC 프록시 제한사항

대상 gRPC 프록시가 URL 맵을 참조할 때는 다음 URL 맵 기능을 구성할 수 없습니다. 이것은 이러한 HTTP 프로토콜 관련 기능이 gRPC 프로토콜에 적용되지 않기 때문에 사이드카 프록시 또는 프록시리스 gRPC 서비스를 사용하는지 여부와 관계가 없습니다.

  • queryParameterMatches 일치 규칙
  • urlRewrite 라우팅 작업
  • urlRedirect 라우팅 작업
  • corsPolicy 작업

백엔드 서비스 제한사항

사이드카 프록시로 지원되는 프록시리스 gRPC 서비스에는 다음 백엔드 서비스 기능이 지원되지 않습니다.

  • LEAST_REQUEST(Java 클라이언트만 해당), ROUND_ROBIN, RING_HASH를 제외한 localityLbPolicy
  • sessionAffinity(HEADER_FIELDNONE 제외)
  • consistentHash(httpHeaderNameminimumRingSize 필드 제외)
  • affinityCookieTtlSec
  • timeoutSec(maxStreamDuration를 대신 사용)
  • circuitBreakers(maxRequests 필드 제외)

고급 트래픽 관리 제한사항

Traffic Director를 사용하는 프록시리스 gRPC 서비스에 대한 일부 고급 트래픽 관리 기능을 구성할 수 없습니다. 지원되는 기능은 다음을 참조하세요.

서비스 디렉터리 제한사항

  • 서비스 디렉터리와 Traffic Director는 클라이언트의 네트워크 도달성을 보장하지 않습니다.
  • 백엔드 서비스는 다음 중 하나만 참조할 수 있습니다.

    • 관리형 인스턴스 그룹 또는 비관리형 인스턴스 그룹
    • 네트워크 엔드포인트 그룹
    • 서비스 결합
  • 서비스 디렉터리 서비스는 load-balancing-scheme=INTERNAL_SELF_MANAGED가 있는 전역 백엔드 서비스에서만 사용할 수 있습니다.

  • 서비스 결합에서 참조되는 서비스 디렉터리 서비스는 삭제할 수 있습니다. 백엔드 서비스가 연결된 기본 서비스 디렉터리 서비스가 삭제되면 Traffic Director를 사용하는 애플리케이션이 이 서비스에 트래픽을 전송할 수 없으므로, 요청이 실패합니다. 권장사항은 관측 가능성 및 디버깅을 참조하세요.

상태 점검

서비스 디렉터리 서비스를 백엔드 서비스에 바인딩할 때 백엔드 서비스에 상태 점검을 구성할 수 없습니다.

다음 단계