Gemini를 사용하여 GKE에서 리소스 획득 가능성 설계

이 문서에서는 GPU, TPU, 고성능 CPU와 같은 리소스를 확보하는 데 도움이 되는 복원력이 우수한 Google Kubernetes Engine (GKE) 클러스터 및 워크로드 예약 전략을 설계하는 방법을 설명합니다. Compute Advisor (미리보기)에서 Gemini를 활용하면 Google Cloud 대기 중인 포드를 방지하고 AI 워크로드의 안정적인 예약을 개선할 수 있습니다.

이 문서는 GKE 인프라를 관리하고 용량 계획 및 예약을 최적화하려는 클라우드 설계자, 플랫폼 관리자, 운영자를 대상으로 합니다.

GKE의 리소스 확보 가능성 개요

Kubernetes 예약은 선언된 리소스 요청에 의존합니다. GPU 또는 TPU와 같은 대규모 가속기를 예약할 때 엄격한 리소스 요청으로 인해 특정 하드웨어를 사용할 수 없는 경우 클러스터가 확장되지 않을 수 있습니다. 다음 기능을 사용하여 GKE에서 용량 가용성을 최적화할 수 있습니다.

  • 노드 풀 자동 생성: 동적 멀티 계열 노드 풀 생성
  • 워크로드 수준 대체: 대체 하드웨어를 허용하도록 구성된 톨러레이션(toleration) 및 노드 선택기
  • 지리적 및 리전별 예약: GKE 멀티 영역 및 멀티 리전 기능
  • 예약 관리: 주문형 리소스를 요청하기 전에 미리 구매한 용량 사용

GKE의 리소스 확보 가능성을 위한 권장사항

이 섹션에서는 GKE에서 워크로드를 예약할 때 용량 가용성을 높이기 위한 권장사항을 제공합니다. 이러한 권장사항은 유연한 하드웨어 요구사항 설계, 노드 풀 자동 생성 구성, 지리적 분포 활용과 같은 리소스 제약조건에 맞게 조정하는 전략을 다룹니다. 노드 풀 자동 생성 은 포드 사양을 기반으로 노드 풀을 자동으로 관리합니다. 노드 풀을 미리 정의하는 대신 포드 매니페스트에서 리소스 요구사항을 지정하고 GKE에서 노드를 동적으로 만들도록 합니다.

Compute Advisor를 사용하여 다음 권장사항을 검색하고 구현할 수도 있습니다. 자세한 내용은 Compute Advisor 사용을 참조하세요.

하드웨어 유연성 옵션

용량 가용성을 최적화하려면 GKE에서 워크로드를 단일 정적 머신 계열 또는 가속기 유형에 바인딩하지 않도록 지시할 수 있습니다. 다음은 다양한 워크로드 클래스에 대해 유연한 노드 풀 및 포드 어피니티 규칙을 구성하는 방법의 예입니다. 선택하는 특정 대안은 애플리케이션의 리소스 요구사항에 따라 다릅니다.

  • 범용 CPU 노드 풀:

    • 기본 예시: N2 (Intel 기반 범용)
    • 샘플 대안: N2D (AMD EPYC), C2 또는 C2D (컴퓨팅 최적화) 또는 E2 (비용 최적화)
    • 구현 패턴: 여러 머신 계열 라벨(예: cloud.google.com/machine-family["n2", "n2d", "c2d"])에서 예약을 허용하는 노드 어피니티 또는 톨러레이션(toleration)으로 포드 사양을 구성합니다. 이 구성을 사용하면 GKE에서 사용 가능한 용량이 있는 풀을 프로비저닝할 수 있습니다.
  • GPU 노드 풀:

    • 기본 예시: A2 시리즈 (NVIDIA A100 GPU)
    • 샘플 대안: L4 (범용 AI/ML) 또는 T4 (추론)
    • 구현 패턴: 다양한 GPU 등급에 대해 별도의 노드 풀 또는 ComputeClass를 구성합니다. A100 관련 기능 없이 실행할 수 있는 워크로드의 경우 A2 프로비저닝이 제한되면 포드가 L4 또는 T4 풀로 대체되도록 허용합니다.
  • TPU 노드 풀:

    • 기본 예시: TPU Ironwood (TPU7x)
    • 샘플 대안: TPU v6 (Trillium) 또는 TPU v5 (v5e 또는 v5p)
    • 구현 패턴: TPU 슬라이스 프로비저닝은 매우 제한될 수 있습니다. TPU Ironwood(TPU7x) 용량을 사용할 수 없는 경우 v6 또는 v5 슬라이스에 배포할 수 있도록 프레임워크 수준의 유연성 (예: 가변 슬라이스 토폴로지를 지원하는 JAX 또는 PyTorch 구성)으로 학습 워크로드를 설계합니다.

다음 표에는 다양한 워크로드 유형에 대한 기본 선택 및 하드웨어 대안이 요약되어 있습니다.

워크로드 유형 기본 선택 예시 샘플 대안 아키텍처 고려사항
시스템 또는 핵심 워크로드 N2 N2D, C2D, E2 노드 풀 자동 생성을 위해 Intel 및 AMD 하드웨어 풀에 걸쳐 있습니다.
GPU 추론 및 처리 A2 (A100) L4, T4 비용이 저렴하거나 가용성이 높은 GPU 노드 풀을 유연하게 타겟팅합니다.
TPU 모델 학습 TPU Ironwood (TPU7x) TPU v6, TPU v5 (v5e 또는 v5p) 슬라이스 기반 예약에 유연한 토폴로지를 활용합니다.

노드 풀 자동 생성 및 ComputeClass 구현

용량 가용성을 최적화하려면 노드 풀 자동 생성과 ComputeClasses를 결합합니다. 다음 목록에는 권장사항이 포함되어 있습니다.

  • ComputeClass 정의: 머신 계열, GPU 유형 또는 프로비저닝 모델의 우선순위 목록을 지정하는 ComputeClass 리소스를 만듭니다. GKE는 클래스에서 사용 가능한 최우선순위 구성을 사용하여 노드를 프로비저닝하려고 시도합니다. 우선순위가 지정된 대체 목록은 워크로드에 필요한 리소스를 확보하는 데 크게 도움이 됩니다. 예를 들어 선호하는 특수 가속기를 사용할 수 없는 경우 GKE가 범용 머신으로 대체되지 않도록 하려면 ComputeClass 구성에 whenUnsatisfiable: DoNotScaleUp 설정을 추가합니다. 자세한 내용은 커스텀 ComputeClass로 자동 확장된 노드 속성 제어를 참조하세요.

  • 포드 사양에서 ComputeClass 참조: 워크로드 포드 사양에서 특정 머신 계열 또는 GPU 유형 대신 cloud.google.com/compute-class 라벨을 사용하여 커스텀 ComputeClass를 타겟팅합니다. 자세한 내용은 워크로드에서 ComputeClass 요청 을 참조하세요.

  • 여러 톨러레이션(toleration) 정의: ComputeClass를 사용하지 않는 경우 포드 사양에서 다양한 머신 계열(예: cloud.google.com/machine-family["n2", "n2d"])을 허용하는 노드 어피니티 규칙을 사용합니다. 자세한 내용은 노드 풀 자동 생성 구성을 참조하세요.

GKE의 지리적 및 멀티 리전 유연성

용량 가용성을 높이려면 여러 영역에 걸쳐 있는 GKE 클러스터를 배포하거나 멀티 클러스터 아키텍처를 실행합니다.

  • 멀티 영역 클러스터: 노드 풀이 리전의 모든 사용 가능한 영역에서 자동 확장되도록 구성합니다.

  • 멀티 리전 클러스터 제휴: 대규모 비동기 작업 (예: 오프라인 일괄 추론 또는 분산 학습)의 경우 멀티 클러스터 오케스트레이터 (예: Kueue 또는 Cluster Director)를 배포하여 워크로드를 전역적으로 큐에 추가하고 사용 가능한 용량이 있는 리전에 디스패치합니다.

  • Spot VM에서 실행되는 포드: 톨러레이션(toleration)을 추가하고 GKE에 여러 영역에서 초과 용량을 분산하도록 지시하여 Spot VM에서 중단 가능한 워크로드를 실행합니다.

GKE 확보 가능성을 위한 추가 권장사항

하드웨어 다각화 외에도 이러한 GKE 권장사항을 통합하여 클러스터 확장 성공률을 최적화합니다.

  • 포드 오버프로비저닝 (용량 버퍼) 구현: 노드 용량을 미리 예약하는 낮은 우선순위의 '일시중지' 포드를 배포합니다. 우선순위가 높은 AI 워크로드가 제출되고 리전 용량이 제한되면 Kubernetes는 즉시 일시중지 포드를 선점하여 새 노드 프로비저닝을 기다리지 않고 컨테이너를 시작할 수 있도록 합니다. 자세한 내용은 용량 버퍼 정보를 참조하세요.
  • 큐에 추가된 프로비저닝을 통한 flex-start 사용: 대규모 일괄 및 AI 모델 학습 작업의 경우 Kueue 및 동적 워크로드 스케줄러와 통합되는 큐에 추가된 프로비저닝을 통한 flex-start를 사용합니다. 큐에 추가된 프로비저닝을 통한 flex-start는 부분적인 클러스터 수직 확장 실패를 방지하는 모든 또는 전혀 없는 원자적 노드 할당을 제공합니다. 자세한 내용은 큐에 추가된 프로비저닝을 통한 flex-start로 대규모 워크로드 실행을 참조하세요.
  • 이미지 스트리밍 및 컨테이너 이미지 미리 로드 사용 설정: 대규모 AI 컨테이너 이미지 (예: 10GB를 초과하는 PyTorch 또는 TensorFlow 이미지)의 경우 GKE 이미지 스트리밍을 사용 설정하거나 보조 부팅 디스크를 사용하여 이미지를 미리 로드합니다. 이 구성을 사용하면 노드 워밍업 시간이 단축되어 새로 프로비저닝된 노드가 몇 초 만에 워크로드 실행을 시작할 수 있습니다. 자세한 내용은 이미지 스트리밍을 사용하여 컨테이너 이미지 가져오기보조 부팅 디스크를 사용하여 데이터 또는 컨테이너 이미지 미리 로드를 참조하세요.
  • 클러스터 자동 확장 처리 위치 정책을 ANY로 설정: `ANY` 위치 정책으로 노드 풀 (특히 Spot VM 또는 flex-start)을 구성합니다.ANY 이 설정은 클러스터 자동 확장 처리에 지정된 모든 영역에서 요청된 용량을 검색하도록 지시합니다. 클러스터 자동 확장 처리는 노드 수 균형 조정을 통해 용량을 찾습니다. 자세한 내용은 클러스터 자동 확장 처리 개요를 참조하세요.
  • GPU 공유로 가속기 사용률 최적화: 전용 GPU가 필요하지 않은 워크로드의 경우 GPU 시간 공유, 멀티 인스턴스 GPU(MIG) 또는 NVIDIA MPS를 사용하여 여러 컨테이너가 단일 가속기를 공유하도록 허용합니다. 이 접근 방식은 노드 풀 전반에서 유효 용량을 최적화합니다. 자세한 내용은 GKE의 GPU 공유 전략 정보 를 참조하세요.

Compute Advisor 사용

Compute Advisor는 Google Cloud GKE의 복원력이 우수한 아키텍처를 설계하는 데 도움이 되는 Gemini 기반의 콘솔에 있는 AI 기반 인터페이스입니다. Compute Advisor는 배포 전에 조직 정책 및 리소스 할당량을 확인하면서 거의 실시간으로 flex-start VM 및 Spot VM 가용성 안내를 제공합니다. Compute Advisor는 주문형 리소스가 필요한 워크로드에 대한 가용성 안내를 제공하지 않습니다.

콘솔 Google Cloud 에서 Gemini에 액세스하려면 다음 단계를 완료하세요.

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

    개요로 이동

  2. Compute Advisor로 인프라 설계 섹션에서 프롬프트를 제출합니다. Gemini가 응답 생성을 시작합니다.

  3. 아키텍처 추천을 생성하려면 Compute Advisor에서 다음 예시 프롬프트 중 하나를 실행합니다. Compute Advisor에서 프롬프트 실행 버튼을 클릭하면 Google Cloud 콘솔이 로드되는 데 15 초 이상 걸릴 수 있습니다.

    • 일반 가속기 전략:

      사용 사례: 이 프롬프트를 사용하여 클러스터 구성을 설계할 때 리전 용량 신호를 분석하고 머신 유형, 영역, 대체 예약 전략에 대한 추천을 받습니다.

      Configure a GKE cluster to improve chances of obtaining scarce GPU or TPU capacity.
      

      Compute Advisor에서 프롬프트 실행

    • 지리적 유연성 및 대체:

      사용 사례: 이 프롬프트를 사용하여 리소스 가용성에 따라 리전 간에 워크로드 실행을 전환하도록 멀티 클러스터 아키텍처 또는 전역 작업 큐 시스템 (예: Kueue)을 설계합니다.

      Configure multi-region fallbacks and geographic scheduling on GKE to increase GPU availability.
      

      Compute Advisor에서 프롬프트 실행

    • 우선순위 예약 사용:

      사용 사례: 이 프롬프트를 사용하여 예약 용량의 우선순위를 지정하는 포드 어피니티 및 자동 확장 규칙의 YAML 구성 패턴을 생성합니다.

      Configure GKE autoscaling rules and Pod specs to prioritize consuming active reservations before scaling into on-demand pools.
      

      Compute Advisor에서 프롬프트 실행

    • 대체 우선순위 지정을 위한 ComputeClass:

      사용 사례: 이 프롬프트를 사용하여 고성능 GPU의 우선순위를 지정하지만 워크로드 예약을 보장하기 위해 하위 등급 대체가 포함된 ComputeClass CustomResourceDefinition의 YAML 매니페스트를 생성합니다.

      Define a ComputeClass manifest for GKE to prioritize A2 GPU nodes with automatic fallbacks to L4 or T4 GPUs.
      

      Compute Advisor에서 프롬프트 실행

    • 다각화를 위한 노드 풀 자동 생성:

      사용 사례: 이 프롬프트를 사용하여 NAP에서 대체 GPU 또는 CPU 노드를 자동으로 프로비저닝할 수 있도록 하는 GKE 클러스터 자동 확장 처리 리소스 한도 및 포드 어피니티 규칙의 YAML 매니페스트를 작성합니다.

      Configure GKE node pool auto-creation to diversify machine families and prevent pending pods when regional accelerator capacity is constrained.
      

      Compute Advisor에서 프롬프트 실행

다음 단계