Traffic Director GKE 서비스 메시 개요

이 문서는 Kubernetes Gateway API를 사용하여 Traffic Director 서비스 메시를 배포하려는 Google Kubernetes Engine 사용자를 대상으로 합니다.

Kubernetes Gateway API를 사용해서 GKE 용 Traffic Director를 구성하여 서비스 메시 사용 사례에 대해 서비스 간 통신, 트래픽 관리, 전역 부하 분산, 보안 정책 시행을 활성화할 수 있습니다.

Kubernetes API 및 Google Cloud API

두 가지 서로 다른 API를 사용하여 Traffic Director 서비스 메시를 구성할 수 있습니다.

이 문서 및 관련 설정 가이드에서는 Kubernetes Gateway API를 사용하여 Traffic Director 서비스 메시를 구성하는 방법을 안내합니다.

Google Kubernetes Engine에서 Kubernetes Gateway API를 사용하는 것이 좋으며, 두 API를 사용하여 GKE에서 동일한 서비스 메시에서 라우팅을 구성하지 않는 것을 권장합니다.

서비스 라우팅 API에서는 Kubernetes Gateway API의 리소스와 동일한 리소스 이름이 사용되어 두 가지 API를 더 쉽게 사용할 수 있습니다. 구성하는 Kubernetes 리소스는 Traffic Director의 서비스 라우팅 API로 표현되는 Google Cloud 리소스와 동등한 기능입니다.

다음 섹션에서는 Kubernetes Gateway API와 Traffic Director 통합에 사용되는 리소스와 아키텍처를 설명합니다.

Gateway API

Gateway API는 Kubernetes에서 서비스 네트워킹을 모델링하는 리소스 모음입니다. Kubernetes Gateway API는 일반 라우팅 API를 제공하여 인그레스 및 부하 분산기 사용 사례를 집중적으로 지원하는 오픈소스 프로젝트입니다. 일반 라우팅 API에는 여러 구현이 있습니다. Traffic Director 커스텀 리소스 정의(CRD)는 오픈소스 Gateway API에 대한 확장 프로그램으로 추가됩니다. CRD는 서비스 메시 사용 사례를 지원하고 Gateway API에 도입된 동일한 일반 라우팅 API를 사용합니다.

Gateway API는 게이트웨이 상위 리소스 및 경로를 연결하는 연관된 GatewayClass를 포함하여 계층적으로 구성됩니다. GKE에는 Gateway 리소스의 피어인 TDMesh 리소스가 포함됩니다. 동일한 Route 유형을 TDMesh 리소스에 연결할 수 있습니다. TDMesh 리소스에는 서비스 메시에 대한 경로 및 정책을 연결합니다.

Gateway API, 게이트웨이 리소스, 메시 리소스, 경로
Gateway API, 게이트웨이 리소스, 메시 리소스, 경로(확대하려면 클릭)

Fleet

Fleet은 논리적으로 그룹화된 하나 이상의 GKE 클러스터로 구성됩니다. Fleet을 사용하면 기능을 관리하고 여러 클러스터에 정책을 일관되게 적용할 수 있습니다. Fleet을 사용하면 여러 클러스터에 걸쳐 있는 Traffic Director 서비스 메시를 관리할 수 있습니다.

건축물

Traffic Director는 Gateway API 리소스에 지정된 네트워킹 동작을 구현하도록 클러스터의 데이터 영역을 프로그래밍하여 GKE에서 Gateway API를 지원합니다. Traffic Director 자체는 데이터 영역 트래픽을 처리하지 않는 Google 관리 제어 영역입니다. 워크로드 또는 프록시리스 gRPC 클라이언트에 사이드카로 실행되는 Envoy 프록시는 데이터 영역의 트래픽을 처리합니다. Traffic Director는 xDSv3 API를 통해 Envoy 프록시와 프록시리스 gRPC 클라이언트를 모두 구성합니다.

Traffic Director는 클러스터 내 컨트롤러를 실행하는 것보다 더 강력하고 확장성이 뛰어난 관리형 전역 제어 영역 솔루션을 제공합니다. 글로벌 솔루션인 Traffic Director는 여러 GKE 클러스터에 분산된 워크로드 간에 트래픽을 부하 분산할 수 있습니다. 다음 그림에서 Traffic Director는 Gateway API 리소스를 사용하여 단일 Fleet에 있는 3개 클러스터의 서비스에 대한 트래픽을 관리합니다.

Gateway API를 사용하여 구성된 Traffic Director 멀티 클러스터 서비스 메시
Gateway API를 사용하여 구성된 Traffic Director 멀티 클러스터 서비스 메시(확대하려면 클릭)

Fleet에서 하나의 클러스터를 구성 클러스터로 지정합니다. 구성 클러스터에는 Gateway API 리소스가 저장됩니다. Traffic Director는 구성 클러스터에 있는 리소스만 감시하고 Fleet에서 다른 클러스터에 있는 리소스는 무시합니다. 구성 클러스터에 대한 자세한 내용은 GKE 문서에서 구성 클러스터 설계를 참조하세요.

GKE 멀티 클러스터 서비스를 사용하면 구성 클러스터의 Gateway API 리소스는 Fleet 내에 있는 모든 클러스터의 Kubernetes 서비스를 참조할 수 있습니다. 멀티 클러스터 서비스 검색에 대한 자세한 내용은 멀티 클러스터 서비스를 참조하세요.

리소스

Traffic Director는 서비스 메시의 데이터 영역에서 Envoy 프록시와 프록시리스 gRPC를 모두 지원합니다. 두 클라이언트 모두 해당 부트스트랩 구성에서 TDMesh 리소스의 이름과 해당 프로젝트 번호를 지정하여 특정 서비스 메시에 대한 Traffic Director에서 구성을 수신합니다. Kubernetes Gateway API를 사용하는 Traffic Director 설정 가이드는 Envoy 및 프록시리스 gRPC를 갖춘 데모 데이터 영역 구성을 제공합니다.

TDMesh 리소스

TDMesh 리소스는 Traffic Director 커스텀 리소스입니다. 이는 Traffic Director의 서비스 메시 사용 사례를 지원하기 위한 오픈소스 Gateway API에 대한 확장 프로그램입니다. TDMesh 리소스를 사용하여 Fleet에 서비스 메시 인스턴스를 만듭니다. TDMesh 리소스에 연결된 경로는 서비스 메시에서 서비스 간 경로 동작을 지정합니다.

리소스 Route

Gateway API 경로 리소스의 하위 집합을 TDMesh 리소스에 연결하여 서비스 메시 내에서 서비스 수준 라우팅을 지정할 수 있습니다. Traffic Director는 다음 Route 리소스를 지원합니다.

  • HTTPRoute
  • TCPRoute
  • TDGRPCRoute(Traffic Director 커스텀 리소스)

예를 들어 HTTPRoute를 만들어 payments.svc.internal 호스트를 대상으로 하는 HTTP 요청이 Kubernetes 서비스 service-payments로 라우팅되도록 지정할 수 있습니다. 데이터 영역 인스턴스가 구독하는 TDMesh 리소스에 HTTPRoute 리소스를 연결하면 이에 따라 메시 내 워크로드에서 전송된 HTTP 요청이 라우팅됩니다.

이 출시 버전은 Gateway API의 일반 Route 리소스를 새로운 경로 유형인 TDGRPCRoute로 확대합니다. 새로운 경로 유형은 메서드 및 서비스 정의와 같은 기본 gRPC 기본 요소를 일치시켜 gRPC 요청 라우팅을 위한 최고 수준의 경험을 제공합니다.

GKE의 Gateway API 리소스를 사용하여 Traffic Director 구성
GKE의 Gateway API 리소스를 사용하여 Traffic Director 구성(확대하려면 클릭)

제한사항

  • Traffic Director는 서비스 메시에서 모든 Kubernetes 서비스에 대해 다음 기본 동작을 구성합니다. 이러한 동작은 변경할 수 없습니다.
    • TCP 상태 점검은 Gateway API Route 리소스에서 참조하는 서비스 포트에 구성됩니다.
    • 서비스에 대한 모든 수신 요청에 대해 기본 30초 제한 시간이 구성됩니다.
    • 세션 어피니티는 사용 중지됩니다.
  • Envoy 자동 인젝터는 Fleet당 하나의 메시만 지원합니다.
  • Traffic Director의 보안 기능은 Gateway API를 사용하여 사용 설정할 수 없습니다.
  • Gateway API만 사용하여 GKE에서 TDMeshRoute 리소스를 구성해야 합니다. Google Cloud 콘솔, gcloud CLI 또는 REST API를 사용할 수 없습니다.
  • 모든 클러스터가 하나의 프로젝트에 있어야 합니다. 여러 프로젝트의 클러스터에 걸쳐 있는 서비스 메시는 지원되지 않습니다.
  • Google Cloud 콘솔을 사용하여 GKE 서비스 메시를 구성하거나 볼 수 없습니다.
  • Cloud Logging 및 Cloud Monitoring을 사용하는 제어 영역 관측 가능성은 지원되지 않습니다.

다음 단계