최소 CPU 플랫폼 선택


이 페이지에서는 Google Kubernetes Engine(GKE) 클러스터에 있는 노드의 최소 CPU 플랫폼을 지정하는 방법을 보여줍니다.

최소 CPU 플랫폼을 선택해야 하는 이유

최소 CPU 플랫폼을 지정하면 높은 기본 주파수나 최적화된 전원 관리 기능과 같은 특정 CPU 기능 및 사양이 필요한 경우에 유용합니다.

그래픽, 게임, 애널리틱스 산업 부문의 일부 고급 컴퓨팅 집약적 워크로드는 AVX-2 및 AVX-512와 같은 여러 CPU 플랫폼 기능 집합을 통해 제공되는 특정 기능을 활용할 수 있습니다. 특정 CPU 플랫폼을 선택하면 실행 시간 및 성능에 있어서 상당한 이점을 얻을 수 있습니다. 최소 CPU 플랫폼을 지정함으로써 워크로드가 보다 예측 가능한 방식으로 이러한 이점을 실현하고, 노드에 해당 워크로드에 적합하지 않은 CPU 플랫폼이 사용되지 않도록 보장할 수 있습니다.

플랫폼 선택 방법

다음 표에서는 GKE 사용 방식에 따라 최소 CPU 플랫폼을 선택하는 방법을 보여줍니다.

범위 설명 지원되는 클러스터 구성
워크로드 수준(권장)

포드 사양에서 최소 플랫폼을 선택합니다. GKE는 이러한 포드를 다음과 같이 예약합니다.

  • Autopilot: GKE가 지정된 플랫폼 이상을 사용하는 노드에 포드를 예약합니다.
  • Standard: GKE가 지정된 플랫폼을 사용하는 노드에서만 포드를 예약합니다. 예를 들어 Intel Ice Lake 노드 풀이 있고 새 포드에서 최소한 Intel Cascade Lake를 요청하는 경우 GKE는 Intel Ice Lake가 상위 플랫폼이지만 Intel Cascade Lake를 사용하여 새 노드 풀을 만듭니다.

노드 및 클러스터 수준 새 Standard 모드 클러스터 또는 노드 풀을 만들 때 최소 CPU 플랫폼을 선택합니다. 이 설정은 노드 자동 프로비저닝을 지원하지 않습니다. 자세한 안내를 보려면 노드 풀 수준에서 최소 CPU 플랫폼 선택으로 건너뛰세요. 새 Standard 클러스터 또는 노드 풀

가격 책정

추가 비용 없이 최소 CPU 플랫폼을 선택할 수 있습니다.

시작하기 전에

시작하기 전에 다음 태스크를 수행했는지 확인합니다.

  • Google Kubernetes Engine API를 사용 설정합니다.
  • Google Kubernetes Engine API 사용 설정
  • 이 태스크에 Google Cloud CLI를 사용하려면 gcloud CLI를 설치한 후 초기화합니다. 이전에 gcloud CLI를 설치한 경우 gcloud components update를 실행하여 최신 버전을 가져옵니다.

CPU 플랫폼 가용성 확인

사용 가능한 CPU 플랫폼은 노드가 실행되는 컴퓨팅 영역에 따라 달라집니다. Autopilot 클러스터 또는 리전 Standard 클러스터를 사용하더라도 영역에서 사용할 수 있는 CPU 플랫폼을 확인해야 합니다.

특정 영역에서 사용 가능한 플랫폼을 확인하려면 다음 명령어를 실행합니다.

gcloud compute zones describe COMPUTE_ZONE

COMPUTE_ZONE을 영역 이름(예: us-central1-a)으로 바꿉니다. 리전 클러스터 유형을 사용하는 경우 해당 리전의 영역 이름을 지정합니다.

출력은 다음과 비슷합니다.

availableCpuPlatforms:
- Intel Ice Lake
- Intel Cascade Lake
- Intel Skylake
- Intel Broadwell
- Intel Haswell
- Intel Ivy Bridge
- Intel Sandy Bridge
- AMD Milan
- AMD Rome
- Ampere Altra
- Intel Sapphire Rapids

이러한 값을 사용하여 최소 CPU 플랫폼을 요청하는 경우 플랫폼 이름의 공백을 밑줄로 바꿉니다. 예를 들면 AMD_Milan입니다.

워크로드 수준에서 최소 CPU 플랫폼 선택

노드 자동 프로비저닝과 함께 GKE Autopilot 클러스터 또는 GKE Standard 클러스터를 사용하는 경우 포드 사양에서 최소 CPU 플랫폼을 선택할 수 있습니다. 워크로드를 배포하면 GKE가 지정된 플랫폼 이상을 사용하는 노드에서만 이러한 포드를 예약합니다. 이 방법을 권장합니다.

Autopilot

Autopilot에서 최소 CPU 플랫폼과 컴퓨팅 클래스를 요청합니다. 컴퓨팅 클래스는 CPU 플랫폼을 지원해야 합니다. Autopilot은 Balanced 컴퓨팅 클래스의 최소 CPU 플랫폼을 선택할 수 있도록 지원합니다. 각 컴퓨팅 클래스에서 사용할 수 있는 CPU 플랫폼 목록은 특정 컴퓨팅 클래스를 사용하는 경우를 참조하세요.

다음 매니페스트를 min-cpu.yaml로 저장합니다.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: min-cpu-platform
  labels:
    app: min-cpu
spec:
  replicas: 3
  selector:
    matchLabels:
      app: min-cpu
  template:
    metadata:
      labels:
        app: min-cpu
    spec:
      nodeSelector:
        cloud.google.com/compute-class: "COMPUTE_CLASS"
        supported-cpu-platform.cloud.google.com/PLATFORM: "true"
      containers:
      - name: hello-app
        image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
        ports:
        - containerPort: 8080
        resources:
          requests:
            cpu: 250m

다음을 바꿉니다.

  • PLATFORM: CPU 플랫폼의 이름(예: AMD_Milan)입니다. 플랫폼 이름은 대소문자를 구분하며 밑줄로 구분해야 합니다.
  • COMPUTE_CLASS: 컴퓨팅 클래스의 이름이며, Balanced여야 합니다.

표준

노드 자동 프로비저닝이 사용 설정된 Standard 클러스터에서 Compute Engine 머신 계열과 함께 CPU 플랫폼을 요청합니다. 머신 계열이 CPU 플랫폼을 지원해야 합니다. 각 머신 계열에 지원되는 플랫폼 목록은 Compute Engine CPU 플랫폼을 참조하세요.

다음 매니페스트를 min-cpu.yaml로 저장합니다.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: min-cpu-platform
  labels:
    app: min-cpu
spec:
  replicas: 3
  selector:
    matchLabels:
      app: min-cpu
  template:
    metadata:
      labels:
        app: min-cpu
    spec:
      nodeSelector:
        cloud.google.com/machine-family: MACHINE_FAMILY
        cloud.google.com/requested-min-cpu-platform: PLATFORM
      containers:
      - name: hello-app
        image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
        ports:
        - containerPort: 8080
        resources:
          requests:
            cpu: 250m

다음을 바꿉니다.

  • PLATFORM: CPU 플랫폼의 이름(예: AMD_Milan)입니다. 플랫폼 이름은 대소문자를 구분하며 밑줄로 구분해야 합니다.
  • MACHINE_FAMILY: 머신 계열의 이름(예: n2d)입니다.

워크로드를 배포합니다.

kubectl apply -f min-cpu.yaml

지정된 CPU 플랫폼이 폐기되어 노드가 새 플랫폼에서 실행되지 않는 한 노드의 수명 주기 동안 동일 플랫폼이 유지됩니다.

노드 풀 수준에서 최소 CPU 플랫폼 선택

노드 자동 프로비저닝을 사용하지 않는 GKE Standard 클러스터의 경우 새 클러스터 또는 노드 풀을 만들 때 최소 CPU 플랫폼을 지정할 수 있습니다. 워크로드 수준 설정을 사용할 수 없는 경우에만 이 방법을 사용해야 합니다. 이 설정은 노드 자동 프로비저닝에 영향을 주지 않습니다.

gcloud

gcloud CLI를 사용하여 최소 CPU 플랫폼으로 새 노드 풀을 만들려면 --min-cpu-platform 플래그를 설정하고 CPU 플랫폼 이름을 지정합니다.

gcloud container node-pools create POOL_NAME \
    --cluster CLUSTER_NAME \
    --region COMPUTE_REGION \
    --min-cpu-platform PLATFORM

다음을 바꿉니다.

  • POOL_NAME: 새 노드 풀의 이름입니다.
  • CLUSTER_NAME: 클러스터 이름입니다.
  • COMPUTE_REGION: 클러스터의 리전입니다.
  • PLATFORM: 노드 풀에서 실행할 CPU 플랫폼(예: "Intel Broadwell")입니다.

콘솔

  1. Google Cloud 콘솔에서 Google Kubernetes Engine 페이지로 이동합니다.

    Google Kubernetes Engine으로 이동

  2. 클러스터 목록에서 수정하려는 클러스터 이름을 클릭합니다.

  3. 노드 풀 추가를 클릭합니다.

  4. 노드 풀을 원하는 대로 구성합니다.

  5. 탐색창에서 노드를 클릭합니다.

  6. 머신 구성

  7. 계열 드롭다운 목록에서 머신 유형을 선택합니다.

  8. 머신 유형 드롭다운 목록에서 커스텀을 선택합니다.

  9. 원하는 경우 코어메모리를 선택합니다.

  10. CPU 플랫폼 및 GPU를 클릭합니다.

  11. CPU 플랫폼 드롭다운 목록에서 원하는 플랫폼을 선택합니다.

  12. 만들기를 클릭합니다.

API

요청 본문에서 nodeConfig 필드의 일부로 minCpuPlatform 속성을 포함합니다. minCpuPlatform 값은 플랫폼 이름(예: Intel Haswell, Intel Broadwell, Intel Sandy Bridge)이어야 합니다.

예를 들어 다음 요청은 Intel Broadwell 플랫폼을 실행하는 새 노드 풀을 만듭니다.

POST https://container.googleapis.com/v1/projects/PROJECT_ID/regions/COMPUTE_REGION/clusters/CLUSTER_NAME/nodePools

{
  'nodePool': {
    'name': 'POOL_NAME',
    'nodeConfig': {
      'minCpuPlatform': 'Intel Broadwell'
      ...
    }
    ...
  }
}

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID입니다.
  • COMPUTE_REGION: 클러스터의 리전입니다.
  • CLUSTER_NAME: 클러스터 이름입니다.
  • POOL_NAME: 새 노드 풀의 이름입니다.

클러스터를 만들 때 플랫폼을 지정할 경우 최소 CPU 플랫폼 설정이 새 클러스터의 기본 노드 풀에 적용됩니다.

대안

GKE에서 다음 방법을 사용하여 최소 CPU 플랫폼을 선택할 수도 있습니다.

대안

클러스터 수준 플래그

--autoprovisioning-min-cpu-platform 플래그

제한사항

최소 CPU 플랫폼을 선택하는 모든 방법에 다음 제한 사항이 적용됩니다.

  • Compute Engine 최소 CPU 플랫폼의 모든 제한사항이 적용됩니다.
  • 특정 CPU 플랫폼의 가용성은 영역마다 다릅니다.
  • E2 머신 유형은 최소 CPU 플랫폼을 지원하지 않습니다. 다른 머신 유형을 선택해야 합니다.
  • Autopilot 클러스터는 기본 또는 Scale-Out 컴퓨팅 클래스가 아닌 Balanced 컴퓨팅 클래스에 대한 플랫폼 선택만 지원합니다.
  • Autopilot 워크로드가 80개를 초과하는 vCPU를 요청하는 경우 최소 CPU 플랫폼이 Intel Ice Lake 이상이어야 합니다. 상위 플랫폼을 지정하지 않으면 포드가 Pending 상태로 무기한 유지될 수 있습니다.

다음 제한사항은 클러스터 또는 노드 풀 최소 CPU 플랫폼 설정에 적용됩니다.

영역의 기본 CPU 플랫폼보다 낮은 최소 CPU 플랫폼을 선택하거나 선택한 플랫폼을 더 이상 사용할 수 없는 경우 GKE가 동일 비용의 최신 플랫폼이 있는지 확인합니다. 동일 비용의 새 플랫폼이 존재하는 경우 GKE는 최신 플랫폼을 사용하여 노드를 만듭니다. 동일 비용의 최신 플랫폼이 없는 경우에는 클러스터 또는 노드 풀 만들기가 실패합니다.

다음 단계