Istio API를 사용하는 지원 기능(관리형 컨트롤 플레인)

이 페이지에서는 TRAFFIC_DIRECTOR 또는 ISTIOD를 컨트롤 플레인으로 사용하는 Cloud Service Mesh에 지원되는 기능과 제한사항, 각 구현 간의 차이점을 설명합니다. 이러한 옵션은 선택할 수 없습니다. ISTIOD 구현은 기존 사용자에게만 제공됩니다. 새 설치는 가능한 경우 TRAFFIC_DIRECTOR 구현을 사용합니다.

클러스터 내 컨트롤 플레인에서 Cloud Service Mesh 지원 기능 목록은 Istio API 사용(클러스터 내 istiod 컨트롤 플레인)을 참조하세요. 사용 중인 Cloud Service Mesh 컨트롤 플레인이 확실하지 않은 경우 컨트롤 플레인 구현 식별의 안내에 따라 컨트롤 플레인 구현을 확인할 수 있습니다.

제한사항

다음과 같은 제한사항이 적용됩니다.

  • GKE 클러스터는 지원되는 리전 중 하나에 있어야 합니다.
  • GKE 버전은 지원되는 버전이어야 합니다.
  • 환경에 나열된 플랫폼만 지원됩니다.
  • 출시 채널 변경은 지원되지 않습니다.
  • asmcli 포함 관리형 Cloud Service Mesh에서 Fleet API 포함 Cloud Service Mesh로 마이그레이션할 수 없습니다. 마찬가지로 --management manual에서 --management automatic까지의 Fleet API를 사용하여 관리형 Cloud Service Mesh를 프로비저닝할 수 없습니다.
  • 마이그레이션 및 업그레이드는 Mesh CA와 함께 설치된 클러스터 내 Cloud Service Mesh 버전 1.9 이상에서만 지원됩니다. Istio CA(이전 명칭: Citadel)를 사용하여 설치하는 경우 먼저 Mesh CA로 마이그레이션해야 합니다.
  • 확장은 클러스터당 1,000개 서비스 및 5,000개 워크로드로 제한됩니다.
  • 멀티 클러스터에 대해서는 다중 기본 배포 옵션만 지원되며, 멀티 클러스터에 대해 기본 원격 배포 옵션은 지원되지 않습니다.
  • istioctl ps는 지원되지 않습니다. 대신 문제 해결에 설명된 대로 gcloud beta container fleet mesh debug 명령어를 사용할 수 있습니다.
  • 지원되지 않는 API:

    • EnvoyFilter API

    • WasmPlugin API

    • IstioOperator API

    • Kubernetes Ingress API

  • GKE Enterprise를 구독하지 않고도 관리형 컨트롤 플레인을 사용할 수 있지만 Google Cloud 콘솔의 특정 UI 요소와 기능은 GKE Enterprise 구독자에게만 제공됩니다. 구독자와 비구독자가 사용할 수 있는 항목에 대한 자세한 내용은 GKE Enterprise 및 Cloud Service Mesh UI 차이점을 참조하세요.

  • 관리형 제어 영역의 프로비저닝 프로세스 중에 선택한 채널에 해당하는 Istio CRD가 지정된 클러스터에 설치됩니다. 클러스터에 기존 Istio CRD가 있으면 덮어씁니다.

  • 관리형 Cloud Service Mesh는 기본 DNS 도메인인 .cluster.local만 지원합니다.

  • 2023년 11월 14일부터는 빠른 출시 채널에서 관리형 Cloud Service Mesh를 새로 설치하면 Envoy만 사용하여 JWKS를 가져옵니다. 이는 PILOT_JWT_ENABLE_REMOTE_JWKS=envoy Istio 옵션과 동일합니다. 규칙적이고 안정적인 출시 채널에 설치된 것과 비교하거나 2023년 11월 14일 이전에 신속한 출시 채널에 설치된 것과 비교하면 추가 ServiceEntryDestinationRule 구성이 필요할 수 있습니다. 이에 관한 예시는 requestauthn-with-se.yaml.tmpl을 참조하세요.

컨트롤 플레인 차이점

ISTIODTRAFFIC_DIRECTOR 컨트롤 플레인 구현 간에 지원되는 기능이 다릅니다. 사용 중인 구현을 확인하려면 컨트롤 플레인 구현 식별을 참조하세요.

  • – 기능이 제공되며 기본적으로 사용 설정되어 있음을 나타냅니다.
  • † - 기능 API가 다양한 플랫폼 간에 차이가 있을 수 있음을 나타냅니다.
  • * – 선택적 기능 사용 설정 또는 기능 테이블에 링크된 기능 가이드에 설명된 대로 해당 기능이 플랫폼에 지원되고 사용 설정될 수 있음을 나타냅니다.
  • § – 기능이 허용 목록에서 지원됨을 나타냅니다. 관리형 Anthos Service Mesh의 이전 사용자는 조직 수준에서 자동으로 허용 목록에 추가됩니다. 액세스를을 요청하거나 허용 목록 상태를 확인하려면 Google Cloud 지원팀에 문의하세요.
  • – 기능이 제공되지 않거나 지원되지 않음을 나타냅니다.

기본 기능 및 선택적 기능은 Google Cloud 지원팀에서 완전하게 지원됩니다. 표에 명시적으로 나열되지 않은 기능은 최선의 지원을 받습니다.

컨트롤 플레인 구현을 결정하는 요소

Fleet에서 관리형 Cloud Service Mesh를 처음으로 프로비저닝하면 사용할 컨트롤 플레인 구현이 결정됩니다. 동일한 구현이 해당 Fleet에서 관리형 Cloud Service Mesh를 프로비저닝하는 모든 클러스터에 사용됩니다.

관리형 Cloud Service Mesh에 온보딩하는 새 Fleet은 특정 예외를 제외하고 TRAFFIC_DIRECTOR 컨트롤 플레인 구현을 수신합니다.

  • 기존 관리형 Cloud Service Mesh 사용자인 경우 2024년 6월 30일까지 동일한 Google Cloud 조직의 새 Fleet을 관리형 Cloud Service Mesh에 온보딩할 때 ISTIOD 컨트롤 플레인 구현을 수신합니다. 이러한 사용자 중 한 명인 경우 지원팀에 문의하여 이 동작을 미세 조정할 수 있습니다. 기존 사용량이 변경 없이 TRAFFIC_DIRECTOR 구현과 호환되지 않는 사용자는 2024년 9월 8일까지 ISTIOD 구현을 계속 받게 됩니다. (이러한 사용자에게는 서비스 공지가 전송되었습니다.)
  • 관리형 Cloud Service Mesh를 프로비저닝할 때 Fleet의 클러스터에서 Certificate Authority Service를 사용하는 경우 ISTIOD 컨트롤 플레인 구현이 수신됩니다.
  • 관리형 Cloud Service Mesh를 프로비저닝할 때 Fleet의 Google Cloud 기반 GKE 클러스터에 클러스터 내 Cloud Service Mesh 컨트롤 플레인이 포함된 경우 ISTIOD 컨트롤 플레인 구현이 수신됩니다.
  • Fleet의 클러스터에서 GKE 샌드박스를 사용하는 경우 관리형 Cloud Service Mesh를 프로비저닝할 때 ISTIOD 컨트롤 플레인 구현이 수신됩니다.

관리형 제어 영역 지원 기능

설치, 업그레이드, 롤백

기능 관리형(TD) 관리형(istiod)
Fleet 기능 API를 사용하여 GKE 클러스터에 설치
Mesh CA를 사용하는 ASM 1.9 버전에서 업그레이드
1.9 이전의 Cloud Service Mesh 버전에서 직접(건너뛰기 수준) 업그레이드(간접 업그레이드 설명 참조)
Istio OSS에서 직접(건너뛰기 수준) 업그레이드(간접 업그레이드 설명 참조)
Istio-on-GKE 부가기능에서 직접(건너뛰기 수준) 업그레이드(간접 업그레이드 설명 참조)
선택 기능 사용 설정

환경

기능 관리형(TD) 관리형(istiod)
지원되는 리전 중 하나에서 현재 출시 채널에서 사용할 수 있는 GKE 버전
지원되는 리전 중 하나의 GKE Autopilot 클러스터에서 현재 출시 채널에서 사용 가능한 GKE 버전
Google Cloud 외부 환경(GKE Enterprise 온프레미스, 기타 퍼블릭 클라우드의 GKE Enterprise, Amazon EKS, Microsoft AKS, 기타 Kubernetes 클러스터)

확장

기능 관리형(TD) 관리형(istiod)
클러스터당 1,000개 서비스 및 5,000개 워크로드
메시당 50개의 헤드리스 서비스 포트, 헤드리스 서비스 포트당 36개의 포드

플랫폼 환경

기능 관리형(TD) 관리형(istiod)
단일 네트워크
다중 네트워크
단일 프로젝트
공유 VPC가 포함된 다중 프로젝트

멀티 클러스터 배포

기능 관리형(TD) 관리형(istiod)
다중 기본
기본 원격
선언적 API를 사용한 멀티 클러스터 엔드포인트 검색
원격 보안 비밀을 사용한 멀티 클러스터 엔드포인트 검색

용어에 대한 참고사항

  • 다중 기본 구성은 해당 구성을 모든 클러스터에 복제해야 함을 의미합니다.
  • 기본 원격 구성의 경우 단일 클러스터가 구성을 포함하고 정보 소스로 고려됩니다.
  • Cloud Service Mesh는 일반 연결을 기준으로 간소화된 네트워크 정의를 사용합니다. 워크로드 인스턴스는 게이트웨이 없이 직접 통신할 수 있는 경우 동일한 네트워크에 있습니다.

기본 이미지

기능 관리형(TD) 관리형(istiod)
Distroless 프록시 이미지

† 관리형(TD) 컨트롤 플레인이 포함된 Cloud Service Mesh는 distroless 이미지 유형만 지원합니다. 변경은 불가능합니다.

Distroless 이미지에는 최소한의 바이너리가 있으므로 bash 또는 curl과 같은 일반적인 명령어는 distroless 이미지에 없으므로 실행할 수 없습니다. 하지만 임시 컨테이너를 사용하여 실행 중인 워크로드 포드에 연결하여 검사하고 커스텀 명령어를 실행할 수 있습니다. 예시는 Cloud Service Mesh 로그 수집을 참고하세요.

보안

VPC 서비스 제어

기능 관리형(TD) 관리형(istiod)
VPC 서비스 제어

인증서 배포 및 순환 메커니즘

기능 관리형(TD) 관리형(istiod)
워크로드 인증서 관리
인그레스이그레스 게이트웨이의 외부 인증서 관리

인증 기관(CA) 지원

기능 관리형(TD) 관리형(istiod)
Cloud Service Mesh 인증 기관
Certificate Authority Service
Istio CA
커스텀 CA와 통합

보안 기능

Istio 보안 기능 지원 외에도 Cloud Service Mesh는 애플리케이션 보안이 강화되도록 더 많은 기능을 제공합니다.

기능 관리형(TD) 관리형(istiod)
IAP 통합
최종 사용자 인증
연습 실행 모드
거부 로깅
감사 정책(지원되지 않음)

승인 정책

기능 관리형(TD) 관리형(istiod)
승인 v1beta1 정책
커스텀 승인 정책 §

TRAFFIC_DIRECTOR 컨트롤 플레인 구현은 rules.from.source.RemoteIprules.from.source.NotRemoteIp 필드를 지원하지 않습니다.

피어 인증

기능 관리형(TD) 관리형(istiod)
자동 mTLS
mTLS PERMISSIVE 모드
mTLS STRICT 모드 * *
mTLS DISABLE 모드

인증 요청

기능 관리형(TD) 관리형(istiod)
JWT 인증(참고 1)
JWT 클레임 기반 라우팅
헤더에 대한 JWT 사본 클레임

참고:

  1. 제3자 JWT는 기본적으로 사용 설정됩니다.
  2. RequestAuthentication API를 정의할 때 JWKSURI에 전체 FQDN/호스트 이름을 추가합니다.
  3. 관리형 컨트롤 플레인은 JWKS URI를 지정할 때 Envoy가 JWKS를 가져오도록 합니다.

원격 분석

측정항목

기능 관리형(TD) 관리형(istiod)
Cloud Monitoring(HTTP 프록시 내 측정항목)
Cloud Monitoring(TCP 프록시 내 측정항목)
Grafana로 Prometheus 측정항목 내보내기(Envoy 측정항목만 해당) * *
Kiali로 Prometheus 측정항목 내보내기
Cloud Service Mesh 대시보드가 포함되지 않는 Google Cloud Managed Service for Prometheus * *
Istio Telemetry API
프로세스 내부 또는 외부의 커스텀 어댑터/백엔드
임의 원격 분석 및 로깅 백엔드

TRAFFIC_DIRECTOR 컨트롤 플레인은 액세스 로그트레이스를 구성하는 데 사용되는 Istio 원격 분석 API의 하위 집합을 지원합니다. TRAFFIC_DIRECTOR 컨트롤 플레인은 트레이스 샘플링 레이트 구성을 지원하지 않습니다.

프록시 요청 로깅

기능 관리형(TD) 관리형(istiod)
트래픽 로그
액세스 로그 * *

추적

기능 관리형(TD) 관리형(istiod)
Cloud Trace * *
Jaeger 추적(고객 관리형 Jaeger 사용 가능) 호환 가능
Zipkin 추적(고객 관리형 Zipkin 사용 가능) 호환 가능

네트워킹

트래픽 가로채기 및 리디렉션 메커니즘

기능 관리형(TD) 관리형(istiod)
CAP_NET_ADMIN과 함께 init 컨테이너를 사용하는 iptables 사용
Istio 컨테이너 네트워크 인터페이스(CNI)
화이트박스 사이드카

init 컨테이너 대신 컨테이너 네트워크 인터페이스 (CNI)를 사용하는 것이 좋습니다.

프로토콜 지원

기능 관리형(TD) 관리형(istiod)
IPv4
HTTP/1.1
HTTP/2
TCP 바이트 스트림(참고 1)
gRPC
IPv6

참고:

  1. TCP는 네트워킹 및 TCP 측정항목 수집에 지원되는 프로토콜이지만 보고되지는 않습니다. 측정항목은 Google Cloud 콘솔의 HTTP 서비스에만 표시됩니다.
  2. WebSocket, MongoDB, Redis, Kafka, Cassandra, RabbitMQ, Cloud SQL 등의 프로토콜을 위한 레이어 7 기능으로 구성된 서비스는 지원되지 않습니다. TCP 바이트 스트림 지원을 사용하여 프로토콜을 작동시킬 수 있습니다. TCP 바이트 스트림에서 프로토콜을 지원할 수 없는 경우(예: Kafka가 프로토콜별 응답에서 리디렉션 주소를 전송하고 이 리디렉션이 Cloud Service Mesh의 라우팅 로직과 호환되지 않는 경우)에는 프로토콜이 지원되지 않습니다.
  3. † IPv6는 미리보기 이중 스택 네트워킹 기능으로 사용할 수 있습니다. 프록시리스 gRPC에서 듀얼 스택 기능은 C++Python 또는 gRPC Node.js v1.12의 gRPC 1.66.1 이상에서만 지원됩니다. 듀얼 스택을 지원하지 않는 gRPC 버전으로 듀얼 스택 기능을 구성하려고 하면 클라이언트는 Traffic Director에서 전송한 첫 번째 주소만 사용합니다.

Envoy 배포

기능 관리형(TD) 관리형(istiod)
사이드카
인그레스 게이트웨이
사이드카에서 직접 이그레스
이그레스 게이트웨이를 사용한 이그레스 * *

CRD 지원

기능 관리형(TD) 관리형(istiod)
사이드카 리소스
서비스 항목 리소스
비율, 결함 삽입, 경로 일치, 리디렉션, 재시도, 재작성, 제한 시간, 재시도, 미러링, 헤더 조작, CORS 라우팅 규칙
`EnvoyFilter` API §
`WasmPlugin` API
Istio Operator

Istio 인그레스 게이트웨이용 부하 분산기

기능 관리형(TD) 관리형(istiod)
서드 파티 외부 부하 분산기
Google Cloud 내부 부하 분산기 * *

서비스 메시 클라우드 게이트웨이

기능 관리형(TD) 관리형(istiod)
서비스 메시 클라우드 게이트웨이

Kubernetes Gateway API

기능 관리형(TD) 관리형(istiod)
Kubernetes Gateway API

부하 분산 정책

기능 관리형(TD) 관리형(istiod)
라운드 로빈
최소 연결 수
무작위
패스 스루
일관된 해시
지역

서비스 항목

기능 관리형(TD) 관리형(istiod)
ServiceEntry v1beta1

TRAFFIC_DIRECTOR 컨트롤 플레인 구현은 다음 필드와 필드의 값을 지원하지 않습니다.

  • workloadSelector 필드
  • endpoints[].network 필드
  • endpoints[].locality 필드
  • endpoints[].weight 필드
  • endpoints[].serviceAccount 필드
  • resolution 필드의 DNS_ROUND_ROBIN
  • location 필드의 MESH_INTERNAL
  • endpoints[].address 필드의 Unix 도메인 소켓 주소
  • subjectAltNames 필드

대상 규칙

기능 관리형(TD) 관리형(istiod)
DestinationRule v1beta1

TRAFFIC_DIRECTOR 컨트롤 플레인 구현은 다음 필드를 지원하지 않습니다.

  • trafficPolicy.loadBalancer.localityLbSetting 필드
  • trafficPolicy.tunnel 필드
  • trafficPolicy.tls.credentialName 필드
  • trafficPolicy.portLevelSettings[].tls.credentialName 필드

또한 TRAFFIC_DIRECTOR 컨트롤 플레인 구현에서는 하위 집합을 정의하는 대상 규칙이 Kubernetes 서비스 또는 ServiceEntry와 동일한 네임스페이스 및 클러스터에 있어야 합니다.

Sidecar

기능 관리형(TD) 관리형(istiod)
Sidecar v1beta1

TRAFFIC_DIRECTOR 컨트롤 플레인 구현은 다음 필드와 필드의 값을 지원하지 않습니다.

  • ingress 필드
  • egress.port 필드
  • egress.bind 필드
  • egress.captureMode 필드
  • inboundConnectionPool 필드

MeshConfig

기능 관리형(TD) 관리형(istiod)
LocalityLB §
ExtensionProviders §
CACert
ImageType - distroless §
OutboundTrafficPolicy §
defaultProviders.accessLogging
defaultProviders.tracing
defaultConfig.tracing.stackdriver §
accessLogFile §

ProxyConfig

기능 관리형(TD) 관리형(istiod)
DNS 프록시(ISTIO_META_DNS_CAPTURE, ISTIO_META_DNS_AUTO_ALLOCATE)
HTTP/1.0 지원(ISTIO_META_NETWORK)
이미지 선택(distroless 또는 기본 이미지)

† 삽입에는 distroless 이미지가 사용됩니다.

리전

GKE 클러스터는 다음 리전 중 하나에 또는 다음 리전 중 하나의 영역에 있어야 합니다.

지역 위치
africa-south1 요하네스버그
asia-east1 타이완
asia-east2 홍콩
asia-northeast1 일본 도쿄
asia-northeast2 일본 오사카
asia-northeast3 대한민국
asia-south1 인도 뭄바이
asia-south2 인도 델리
asia-southeast1 싱가포르
asia-southeast2 자카르타
australia-southeast1 오스트레일리아 시드니
australia-southeast2 오스트레일리아 멜버른
europe-central2 폴란드
europe-north1 핀란드
europe-southwest1 스페인
europe-west1 벨기에
europe-west2 잉글랜드
europe-west3 독일 프랑크푸르트
europe-west4 네덜란드
europe-west6 스위스
europe-west8 이탈리아 밀라노
europe-west9 프랑스
europe-west10 독일 베를린
europe-west12 이탈리아 토리노
me-central1 도하
me-central2 사우디아라비아 담맘
me-west1 텔아비브
northamerica-northeast1 캐나다 몬트리올
northamerica-northeast2 캐나다 토론토
southamerica-east1 브라질
southamerica-west1 칠레
us-central1 아이오와
us-east1 사우스캐롤라이나
us-east4 북버지니아
us-east5 오하이오
us-south1 댈러스
us-west1 오리건
us-west2 로스앤젤레스
us-west3 솔트레이크시티
us-west4 라스베이거스

사용자 인터페이스

기능 관리형(TD) 관리형(Istiod)
Google Cloud 콘솔의 Cloud Service Mesh 대시보드
Cloud Monitoring
Cloud Logging

도구

기능 관리형(TD) 관리형(istiod)
gcloud beta container fleet mesh debug 도구