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
APIWasmPlugin
APIIstioOperator
APIKubernetes 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
만 지원합니다.관리형 Cloud Service Mesh를 새로 설치하면 Fleet에 이 동작이 사용 설정되지 않은 다른 클러스터가 포함되어 있지 않는 한 Envoy만 사용하여 JWKS를 가져옵니다. 이는
PILOT_JWT_ENABLE_REMOTE_JWKS=envoy
Istio 옵션과 동일합니다. VPCSC_GA_SUPPORTED 조건이 없는 설치 (아래 참고)에 비해ServiceEntry
및DestinationRule
구성에 추가 구성이 필요할 수 있습니다. 예를 보려면requestauthn-with-se.yaml.tmpl
을 참고하세요. 컨트롤 플레인에서 VPC 서비스 제어가 지원되는지 (즉, VPCSC_GA_SUPPORTED 조건이 표시되는지) 확인하여 현재 작업 모드가PILOT_JWT_ENABLE_REMOTE_JWKS=envoy
와 동일한지 확인할 수 있습니다.
컨트롤 플레인 차이점
ISTIOD
와 TRAFFIC_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 Sandbox를 사용하는 경우 관리형 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가 포함된 다중 프로젝트 |
멀티 클러스터 배포
용어에 대한 참고사항
- 다중 기본 구성은 해당 구성을 모든 클러스터에 복제해야 함을 의미합니다.
- 기본 원격 구성의 경우 단일 클러스터가 구성을 포함하고 정보 소스로 고려됩니다.
- Cloud Service Mesh는 일반 연결을 기준으로 간소화된 네트워크 정의를 사용합니다. 워크로드 인스턴스는 게이트웨이 없이 직접 통신할 수 있는 경우 동일한 네트워크에 있습니다.
기본 이미지
기능 | 관리형(TD) | 관리형(istiod) |
---|---|---|
Distroless 프록시 이미지 | † |
† 관리형(TD) 컨트롤 플레인이 포함된 Cloud Service Mesh는 distroless 이미지 유형만 지원합니다. 변경은 불가능합니다.
Distroless 이미지에는 최소한의 바이너리가 있으므로 bash 또는 curl과 같은 일반적인 명령어는 distroless 이미지에 없으므로 실행할 수 없습니다. 하지만 임시 컨테이너를 사용하여 실행 중인 워크로드 포드에 연결하여 검사하고 커스텀 명령어를 실행할 수 있습니다. 예시는 Cloud Service Mesh 로그 수집을 참고하세요.
보안
VPC 서비스 제어
기능 | 관리형(TD) | 관리형(istiod) |
---|---|---|
VPC 서비스 제어 |
인증서 배포 및 순환 메커니즘
인증 기관(CA) 지원
기능 | 관리형(TD) | 관리형(istiod) |
---|---|---|
Cloud Service Mesh 인증 기관 | ||
Certificate Authority Service | ||
Istio CA | ||
커스텀 CA와 통합 |
보안 기능
Istio 보안 기능 지원 외에도 Cloud Service Mesh는 애플리케이션 보안이 강화되도록 더 많은 기능을 제공합니다.
승인 정책
기능 | 관리형(TD) | 관리형(istiod) |
---|---|---|
승인 v1beta1 정책 | † | |
커스텀 승인 정책 | § |
† TRAFFIC_DIRECTOR
컨트롤 플레인 구현은 rules.from.source.RemoteIp
및 rules.from.source.NotRemoteIp
필드를 지원하지 않습니다.
피어 인증
기능 | 관리형(TD) | 관리형(istiod) |
---|---|---|
자동 mTLS | ||
mTLS PERMISSIVE 모드 | ||
mTLS STRICT 모드 | * | * |
mTLS DISABLE 모드 |
인증 요청
기능 | 관리형(TD) | 관리형(istiod) |
---|---|---|
JWT 인증(참고 1) | ||
JWT 클레임 기반 라우팅 | ||
헤더에 대한 JWT 사본 클레임 |
참고:
- 제3자 JWT는 기본적으로 사용 설정됩니다.
- RequestAuthentication API를 정의할 때 JWKSURI에 전체 FQDN/호스트 이름을 추가합니다.
- 관리형 컨트롤 플레인은 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) |
---|---|---|
Cloud Trace | * | * |
Jaeger 추적(고객 관리형 Jaeger 사용 가능) | 호환 가능 | |
Zipkin 추적(고객 관리형 Zipkin 사용 가능) | 호환 가능 |
네트워킹
트래픽 가로채기 및 리디렉션 메커니즘
기능 | 관리형(TD) | 관리형(istiod) |
---|---|---|
CAP_NET_ADMIN 과 함께 init 컨테이너를 사용하는 iptables 사용 |
† | |
Istio 컨테이너 네트워크 인터페이스(CNI) | ||
화이트박스 사이드카 |
† init
컨테이너 대신 컨테이너 네트워크 인터페이스 (CNI)를 사용하는 것이 좋습니다.
프로토콜 지원
참고:
- TCP는 네트워킹 및 TCP 측정항목 수집에 지원되는 프로토콜이지만 보고되지는 않습니다. 측정항목은 Google Cloud 콘솔의 HTTP 서비스에만 표시됩니다.
- WebSocket, MongoDB, Redis, Kafka, Cassandra, RabbitMQ, Cloud SQL 등의 프로토콜을 위한 레이어 7 기능으로 구성된 서비스는 지원되지 않습니다. TCP 바이트 스트림 지원을 사용하여 프로토콜을 작동시킬 수 있습니다. TCP 바이트 스트림에서 프로토콜을 지원할 수 없는 경우(예: Kafka가 프로토콜별 응답에서 리디렉션 주소를 전송하고 이 리디렉션이 Cloud Service Mesh의 라우팅 로직과 호환되지 않는 경우)에는 프로토콜이 지원되지 않습니다.
- † 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) |
---|---|---|
라운드 로빈 | ||
최소 연결 수 | ||
무작위 | ||
패스 스루 | ||
일관된 해시 | ||
지역 | ||
GCPTrafficDistributionPolicy | ||
GCPBackendPolicy |
서비스 항목
기능 | 관리형(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 도구 |