Google Kubernetes Engine (GKE) Autopilot 클러스터에서 Balanced
및 Scale-Out
ComputeClasses를 사용하여 추가 컴퓨팅 용량이나 특수 CPU 구성이 필요한 워크로드를 실행할 수 있습니다. 이 페이지는 기본 Autopilot 클러스터 구성에서 제공하는 것보다 더 유연한 컴퓨팅 옵션을 원하는 클러스터 관리자를 위해 작성되었습니다.
균형 및 스케일 아웃 ComputeClass 개요
기본적으로 GKE Autopilot 클러스터의 포드는 컨테이너 최적화 컴퓨팅 플랫폼에서 실행됩니다. 이 플랫폼은 웹 서버, 중간 강도 일괄 작업과 같은 범용 워크로드에 적합합니다. 컨테이너 최적화 컴퓨팅 플랫폼은 대부분의 워크로드 요구사항을 처리할 수 있는 안정적이고 확장 가능하며 비용 최적화된 하드웨어 구성을 제공합니다.
머신러닝 또는 AI 태스크 수행, 실시간 높은 트래픽 데이터베이스 실행, 특정 CPU 플랫폼 및 아키텍처 요구와 같은 고유한 하드웨어 요구사항이 있는 워크로드가 있으면 ComputeClasses를 사용하여 해당 하드웨어를 프로비저닝할 수 있습니다.
Autopilot 클러스터에서만 GKE는 기본 컨테이너 최적화 컴퓨팅 플랫폼보다 더 많은 유연성이 필요한 포드를 실행할 수 있는 선별된 ComputeClass를 제공합니다.
Balanced
: 컨테이너에 최적화된 컴퓨팅 플랫폼보다 최대 CPU 및 메모리 용량이 더 높습니다.Scale-Out
: 동시 멀티스레딩 (SMT)을 사용 중지하고 수평 확장에 최적화되어 있습니다.
이러한 ComputeClass는 Autopilot 클러스터에서만 사용할 수 있습니다. 기본 컨테이너 최적화 컴퓨팅 플랫폼과 마찬가지로 Autopilot은 실행 중인 포드를 기준으로 노드 크기 및 리소스 할당을 관리합니다.
유연성을 강화하는 맞춤 ComputeClass
Autopilot 클러스터의 균형 또는 스케일 아웃 ComputeClass가 워크로드 요구사항을 충족하지 않는 경우 자체 ComputeClass를 구성할 수 있습니다.
GKE가 클러스터에서 새 노드를 구성하는 데 사용하는 노드 속성 집합을 사용하여 ComputeClass Kubernetes 커스텀 리소스를 클러스터에 배포합니다. 예를 들어 이러한 맞춤 ComputeClass를 사용하면 GKE Autopilot 또는 Standard 클러스터에서 Balanced
또는 Scale-Out
ComputeClass와 동일한 하드웨어에 워크로드를 배포할 수 있습니다. 자세한 내용은 GKE Standard의 Autopilot 모드 워크로드 정보를 참고하세요.
가격 책정
Balanced
또는 Scale-Out
ComputeClass를 사용하는 포드는 다음 SKU에 따라 요금이 청구됩니다.
자세한 내용은 GKE 가격 책정을 참고하세요.
균형 및 스케일 아웃 기술 세부정보
이 섹션에서는 Balanced
및 Scale-Out
클래스의 머신 유형과 사용 사례를 설명합니다. 포드에서 ComputeClass를 요청하지 않으면 Autopilot에서 기본적으로 컨테이너 최적화 컴퓨팅 플랫폼에 포드를 배치합니다. 컨테이너 최적화 컴퓨팅 플랫폼을 사용하는 Autopilot 노드에서 노드 머신 시리즈가 ek
로 표시되는 경우가 있습니다. EK 머신은 Autopilot 전용 E2 머신 유형입니다.
다음 표에서는 Balanced
및 Scale-Out
ComputeClass에 대한 기술 개요를 보여줍니다.
균형 및 수평 확장 ComputeClass | ||
---|---|---|
Balanced |
컨테이너 최적화 컴퓨팅 플랫폼 최댓값보다 더 많은 CPU 용량과 메모리 용량을 제공합니다. 추가 CPU 플랫폼을 제공하고 Intel Ice Lake 이상과 같이 포드에 최소 CPU 플랫폼을 설정하는 기능을 제공합니다.
다음과 같은 애플리케이션에는
|
|
Scale-Out |
단일 코어당 스레드 컴퓨팅 및 수평 확장을 제공합니다.
다음과 같은 애플리케이션에는
|
워크로드의 ComputeClass 선택
GKE 워크로드에 ComputeClass를 사용하려면 cloud.google.com/compute-class
라벨의 노드 선택기를 사용하여 워크로드 매니페스트에서 ComputeClass를 선택합니다.
다음 예시 배포 매니페스트는 ComputeClass를 선택합니다.
COMPUTE_CLASS
을 ComputeClass 이름(예: Balanced
또는 Scale-Out
)으로 바꿉니다. 워크로드에서 ComputeClass는 최대 하나만 선택할 수 있습니다.
워크로드를 배포하면 GKE가 다음을 수행합니다.
- 지정된 구성으로 지원되는 노드를 자동으로 프로비저닝하여 포드를 실행합니다.
- 다른 포드가 이 노드에 예약되지 않도록 노드 라벨과 taint를 새 노드에 자동으로 추가합니다. taint는 각 ComputeClass마다 고유합니다. CPU 아키텍처도 선택하는 경우 GKE에서 해당 아키텍처에 고유한 별도의 taint를 추가합니다.
- 적용된 taint에 해당하는 톨러레이션(toleration)을 배포된 포드에 자동으로 추가합니다. 그러면 GKE가 해당 포드를 새 노드에 배치할 수 있습니다.
예를 들어 포드에 대한 Scale-Out
ComputeClass를 요청하는 경우 다음과 같이 처리됩니다.
- Autopilot에서 이 노드에서
Scale-Out
에 해당하는 taint를 추가합니다. - Autopilot이 해당 taint에 대한 톨러레이션(toleration)을
Scale-Out
포드에 추가합니다.
Scale-Out
을 요청하지 않는 포드에는 톨러레이션(toleration)이 추가되지 않습니다. 그 결과, GKE가 Scale-Out
노드에서 이러한 포드를 예약하지 않습니다.
워크로드 사양에서 ComputeClass를 명시적으로 요청하지 않으면 Autopilot이 기본 컨테이너 최적화 컴퓨팅 플랫폼을 사용하는 노드에 포드를 예약합니다. 대부분의 범용 워크로드는 이 플랫폼에서 문제없이 실행할 수 있습니다.
CPU 아키텍처 요청 방법
일부 경우에는 Arm과 같은 특정 아키텍처에 따라 워크로드를 빌드할 수 있습니다. 수평 확장 ComputeClass는 여러 CPU 아키텍처를 지원합니다. 다음 예시에서와 같이 노드 선택기 또는 노드 어피니티 규칙에 라벨을 지정하여 ComputeClass 요청과 함께 특정 아키텍처를 요청할 수 있습니다.
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-arm
spec:
replicas: 3
selector:
matchLabels:
app: nginx-arm
template:
metadata:
labels:
app: nginx-arm
spec:
nodeSelector:
cloud.google.com/compute-class: COMPUTE_CLASS
kubernetes.io/arch: ARCHITECTURE
containers:
- name: nginx-arm
image: nginx
resources:
requests:
cpu: 2000m
memory: 2Gi
ARCHITECTURE
를 원하는 CPU 아키텍처(예: arm64
또는 amd64
)로 바꿉니다. 워크로드에서 아키텍처를 최대 1개까지 선택할 수 있습니다. 선택한 ComputeClass가 지정된 아키텍처를 지원해야 합니다.
아키텍처를 명시적으로 요청하지 않으면 Autopilot이 ComputeClass의 기본 아키텍처를 사용합니다.
Autopilot의 ARM 아키텍처
Autopilot은 ARM CPU 아키텍처를 사용하는 노드에 대한 요청을 지원합니다. ARM 노드는 유사한 x86 노드보다 비용 효율적이며 성능 개선도 제공합니다. ARM 노드를 요청하는 방법은 ARM 아키텍처에 Autopilot 워크로드 배포를 참조하세요.
배포에서 올바른 이미지를 사용 중인지 확인합니다. 포드에서 Arm 이미지를 사용하고 Arm 노드를 요청하지 않으면 Autopilot이 x86 노드에 포드를 예약하고 포드가 충돌합니다. 마찬가지로 실수로 x86 이미지를 사용하지만 포드에 Arm 노드를 요청하면 포드가 충돌합니다.
기본, 최소, 최대 리소스 요청
Autopilot 워크로드의 ComputeClass를 선택할 때 해당 ComputeClass의 최소 및 최대 요청을 충족하는 리소스 요청을 지정해야 합니다. 각 ComputeClass의 최소 및 최대 요청과 함께 기본 요청에 대한 자세한 내용은 GKE Autopilot의 리소스 요청 및 한도를 참고하세요.