GKE의 Cloud Service Mesh 확장 제한사항
이 문서에서는 배포에 관해 정보에 입각한 결정을 내릴 수 있도록 GKE의 관리형 Cloud Service Mesh 아키텍처에 관한 제어 영역의 확장 한도를 설명합니다.
개요
GKE의 Cloud Service Mesh 확장성은 두 가지 기본 구성요소인 데이터 영역과 컨트롤 영역의 효율적인 작동에 따라 달라집니다. 이 문서에서는 컨트롤 플레인의 확장 한도에 중점을 둡니다. 데이터 영역 확장성 권장사항은 확장성 권장사항을 참고하세요.
문서화된 일부 확장 한도는 할당량 제한에 의해 적용됩니다. 이 한도를 초과하려면 할당량 상향 요청이 필요합니다. 다른 제한사항은 엄격하게 적용되지 않지만 초과하면 정의되지 않은 동작과 성능으로 이어질 수 있습니다.
Istio 리소스가 Google Cloud 리소스로 변환되는 방식을 알아보려면 먼저 API 리소스 이해 가이드를 참고하세요.
서비스 확장 한도
서비스 확장은 두 가지 측정기준으로 제한됩니다.
프로젝트당:Google Cloud 프로젝트당 최대 1,000개의 Cloud Service Mesh 서비스가 지원됩니다(Kubernetes 헤드리스 서비스 제외).
프로젝트당 영역별: Cloud Service Mesh는 클러스터의 GKE 서비스에 대해 영역별 네트워크 엔드포인트 그룹을 만들므로 영역별 NEG 할당량 제한은 해당 영역에 엔드포인트가 있을 수 있는 프로젝트당 서비스 수에 적용됩니다.
특정 멤버십 (예: GKE 클러스터)에 Cloud Service Mesh가 사용 설정되면 클러스터의 모든 Kubernetes 서비스가 Cloud Service Mesh 사이드카 없이 워크로드를 타겟팅하는 서비스를 포함하여 Cloud Service Mesh 서비스로 변환됩니다. Cloud Service Mesh는 GKE 클러스터의 모든 서비스에 대해 영역별 네트워크 엔드포인트 그룹을 만듭니다. 클러스터가 지역 클러스터인 경우 리전의 모든 노드 풀 영역에 네트워크 엔드포인트 그룹이 생성됩니다.
Cloud Service Mesh 서비스와 Kubernetes 서비스 비교
Cloud Service Mesh 서비스는 포트당 하나의 서비스라는 점에서 Kubernetes 서비스와 다릅니다.
예를 들어 이 Kubernetes 서비스는 내부적으로 포트별로 하나씩 두 개의 Cloud Service Mesh 서비스로 변환됩니다.
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
selector:
app: my-app
ports:
- port: 80
targetPort: 80
protocol: TCP
name: http
- port: 443
targetPort: 443
protocol: TCP
name: https
대상 규칙 하위 집합
하위 집합으로 Istio Destination Rule API를 구성하면 각 하위 집합으로 인해 여러 개의 새 Cloud Service Mesh 서비스가 생성될 수 있습니다.
예를 들어 앞에서 정의된 Kubernetes 서비스를 타겟팅하는 다음 DestinationRule
를 고려해 보세요.
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
name: my-service-destinationrule
spec:
host: my-service
subsets:
- name: testversion
labels:
version: v3
- name: prodversion
labels:
version: v2
정의된 각 하위 집합에 대해 새로운 합성 서비스가 생성됩니다. 원래 Kubernetes 서비스에서 Cloud Service Mesh 서비스를 2개 만들었다면 DestinationRule
는 하위 집합별로 2개씩 Cloud Service Mesh 서비스를 4개 추가로 만들어 총 6개의 Cloud Service Mesh 서비스를 만듭니다.
다중 프로젝트 배포
단일 메시가 여러 프로젝트의 워크로드에 배포되는 경우 Google Cloud 모든 Cloud Service Mesh 서비스 리소스는 함대 호스트 프로젝트에 생성됩니다. 즉, 모두 Fleet 호스트 프로젝트의 Cloud Service Mesh 확장성 제한사항이 적용됩니다.
Kubernetes 헤드리스 서비스
Kubernetes 헤드리스 서비스는 일반 서비스에 비해 한도가 낮습니다. Cloud Service Mesh는 클러스터당 헤드리스 Cloud Service Mesh 서비스를 50개만 지원합니다. 예시는 Kubernetes 네트워킹 문서를 참고하세요.
엔드포인트 확장 한도
엔드포인트 확장 한도는 일반적으로 다음과 같습니다.
Cloud Service Mesh 서비스
GKE 클러스터
일반 Kubernetes 서비스
NEG 할당량당 엔드포인트 수는 단일 Kubernetes 서비스에 속할 수 있는 최대 엔드포인트 수에 영향을 미칩니다.
Kubernetes 헤드리스 서비스
Kubernetes 헤드리스 서비스의 경우 Cloud Service Mesh는 헤드리스 서비스당 36개 이하의 엔드포인트를 지원합니다. 예시는 Kubernetes 네트워킹 문서를 참고하세요.
GKE 클러스터 한도
Cloud Service Mesh는 클러스터당 최대 5,000개의 엔드포인트 (Pod IP)를 지원합니다.
게이트웨이 확장 한도
Istio 게이트웨이를 사용하는 경우, 특히 Kubernetes 보안 비밀에서 TLS 사용자 인증 정보를 사용하여 HTTPS 연결을 종료하는 경우 Cloud Service Mesh는 최대 다음과 같은 수의 pod을 지원합니다.
리전별 GKE 클러스터를 사용하는 경우 게이트웨이 포드 1,500개
Zonal 또는 Autopilot GKE 클러스터를 사용하는 경우 게이트웨이 pod 500개