GKE의 Slurm 정보

이 문서에서는 Google Kubernetes Engine (GKE)에서 Slurm 클러스터를 배포하고 관리할 때의 이점과 공동 책임 모델을 설명합니다. Slurm은 확장성이 높고 고성능 컴퓨팅 (HPC) 워크로드에 중점을 둔 오픈소스 워크로드 관리자 및 작업 스케줄러입니다.

이 문서에서는 일괄 작업용 Slurm 인터페이스를 GKE의 확장성 및 효율적인 리소스 관리와 통합하는 GKE용 Slurm 연산자 부가기능에 중점을 둡니다.

이 문서는 GKE용 Slurm Operator 부가기능으로 Slurm을 사용 설정하고 구성하려는 데이터 관리자, 운영자, 개발자를 대상으로 합니다.

GKE에서 Slurm을 사용하는 이유

GKE에서 Slurm을 실행하면 동일한 공유 컴퓨팅 풀에서 Ray 작업이나 추론 제공과 같은 다른 Kubernetes 워크로드와 병렬로 Slurm 학습 작업을 실행할 수 있는 환경을 설정할 수 있습니다.

Cloud de Confiance by S3NS 는 GKE에서 Slurm을 실행하는 다음과 같은 방법을 제공합니다.

  • Cluster Director: 의견이 반영된 사전 구성된 환경을 제공하는 관리형 솔루션입니다. Google에서 Slurm 컨트롤 플레인, 소프트웨어 버전, 구성을 관리하는 최소한의 구성으로 관리형 환경을 원하는 경우 Cluster Director를 사용하는 것이 좋습니다. 자세한 내용은 Cluster Director를 참고하세요.

  • GKE용 Slurm 운영자 부가기능: 오픈소스 Slinky 프로젝트의 일환으로 개발된 오픈소스 기술로, Slurm 운영자의 관리형 설치를 제공합니다. 이 관리 설치는 Google 권장사항을 따릅니다. GKE용 Slurm Operator 부가기능은 가속기 최적화 머신에서 인공지능 (AI), 머신러닝 (ML), HPC 워크로드를 실행하는 맞춤 플랫폼을 빌드하려는 플랫폼 엔지니어를 지원합니다. Slurm 구성을 완전히 제어해야 하거나, 커스텀 컨테이너를 통합해야 하거나, 동일한 클러스터에서 Ray 또는 추론과 같은 다른 워크로드와 함께 Slurm을 실행해야 하는 경우 GKE용 Slurm Operator 부가기능을 사용하는 것이 좋습니다. GKE용 Slurm 연산자 부가기능에는 다음과 같은 이점이 있습니다.

    • 통합 인프라: HPC 일괄 작업과 마이크로서비스 모두에 대해 단일 GKE 클러스터를 관리할 수 있습니다. 이렇게 하면 운영 사일로가 줄어듭니다.
    • 효율적인 확장: GKE용 Slurm 연산자 부가기능은 GKE의 빠른 노드 프로비저닝과 효율적인 빈 패킹을 사용하여 리소스 사용을 최적화합니다.
    • 고성능 하드웨어: Slurm 명령어를 사용하여 Cloud de Confiance by S3NS의 최신 가속기(예: TPUGPU)에 액세스할 수 있습니다.

이 문서의 다음 섹션에서는 Slurm Operator 부가기능을 중점적으로 다룹니다.

인프라 계층 이해하기

일반적으로 Slurm은 베어메탈 서버나 VM에 직접 배포됩니다. 이러한 설정에서 Slurm은 수명 주기 동안 관리하는 비교적 정적인 노드 집합을 가정합니다.

반면 GKE는 기본 VM을 동적 풀의 노드로 표시하여 추상화하는 관리형 서비스입니다. GKE는 이러한 노드의 예약 및 확장을 자동으로 처리합니다.

GKE용 Slurm 연산자 부가기능을 사용하면 Slurm이 GKE 위에 워크로드로 실행됩니다. 이 모델에서 GKE와 Slurm은 다음과 같은 기능을 제공합니다.

  • GKE를 인프라 관리자로 사용: GKE는 기본 노드, 네트워킹, 보안을 제공하고 관리합니다.
  • 워크로드 관리자로서의 Slurm: Slurm은 사용자가 일괄 작업을 제출하고 관리할 수 있는 인터페이스를 제공합니다.

이러한 수렴을 통해 Slurm 작업이 Ray 또는 추론 서비스와 같은 Kubernetes 애플리케이션과 동일한 기본 하드웨어 (예: GPU 및 TPU)를 공유할 수 있는 이기종 스택이 생성됩니다.

Slurm 연산자 부가기능 작동 방식

GKE 클러스터에서 GKE용 Slurm 연산자 부가기능을 사용 설정하면 GKE에서 다음 단계를 실행합니다.

  1. GKE는 Slurm 연산자를 설치하고 호스팅합니다. 이 연산자는 GKE 컨트롤 플레인에서 실행되며 클러스터에 배포된 Slurm 구성요소의 수명 주기를 관리합니다. 이 연산자는 인증서 생성 및 맞춤 리소스 관리와 같은 필수 요소를 자동으로 처리합니다.
  2. 운영자가 실행된 후 Kubernetes 커스텀 리소스를 사용하여 Slurm 클러스터 토폴로지를 정의합니다.
  3. 연산자는 워크로드 사양에 맞게 컨트롤러, 로그인, 작업자 등의 필요한 포드를 배포합니다.

커스텀 리소스

GKE용 Slurm Operator 부가기능은 다음 커스텀 리소스를 사용하여 Slurm 클러스터를 관리합니다.

  • NodeSet: 동종 워커 노드 집합을 정의합니다. Slurm 작업자를 특정 GKE 노드 풀 또는 하드웨어 유형에 매핑할 수 있습니다. 예를 들어 H100 GPU용 NodeSet과 TPU용 NodeSet을 만들 수 있습니다.
  • 컨트롤러: 컨트롤러인 Slurm 클러스터의 핵심 구성요소를 정의합니다. 이 리소스는 포드와 NodeSet, LoginSet과 같은 다른 모든 구성요소에 slurmctld 구성요소를 만듭니다.
  • LoginSet: 사용자가 로그인하여 작업을 제출하는 로그인 노드를 정의합니다.
  • Restapi: Slurm 클러스터의 REST API 구성요소를 정의합니다.
  • 회계: 구성된 경우 작업 회계 및 사용량 추적을 처리하는 slurmdbd 구성요소를 배포합니다. 일반적으로 Cloud SQL 데이터베이스에 연결됩니다.

Slurm Operator 부가기능의 공유 책임

GKE용 Slurm 연산자 부가기능을 사용하여 GKE에서 Slurm을 실행하기로 선택하는 경우Cloud de Confiance by S3NS 와 사용자가 책임을 공유합니다. 이 통합을 사용하면 Google에서 조정 레이어를 관리하는 동안 환경을 유연하게 맞춤설정할 수 있습니다.

Google의 책임

  • 연산자 수명 주기: Slurm 연산자를 설치합니다.
  • GKE 컨트롤 플레인: GKE 컨트롤 플레인의 안정성과 업타임을 관리합니다.
  • Kubernetes CustomResourceDefinition: Slurm에 필요한 커스텀 리소스를 관리합니다.
  • 기본 이미지: Slurm 구성요소에 최적화된 Google 소유 컨테이너 이미지를 제공합니다. 이러한 이미지의 사용은 선택사항입니다. Slurm 클러스터를 구성할 때 Google에서 제공하는 이미지를 사용하거나 자체 이미지를 사용할 수 있습니다.

고객의 책임

  • Slurm 구성: YAML 파일을 사용하여 Slurm 클러스터 토폴로지, 파티션, 제한, 플러그인을 정의합니다.
  • 작업 제출: 사용자 액세스 및 작업 제출 워크플로를 관리합니다.
  • 커스텀 이미지: 기본 Google 이미지가 특정 요구사항을 충족하지 않는 경우 로그인 또는 작업자 노드에 사용되는 커스텀 컨테이너 이미지를 유지합니다.
  • 외부 종속 항목: 회계용 Cloud SQL 또는 공유 스토리지를 위한 Filestore와 같은 외부 리소스를 관리합니다.

자세한 내용은 GKE 공유 책임을 참고하세요.

다음 단계

GKE용 Slurm 연산자 부가기능을 시작하려면 다음 단계를 따르세요.