이 문서에서는 Cluster Toolkit을 사용하여 Managed Lustre를 GKE와 통합하여 인공지능 (AI), 머신러닝 (ML), 고성능 컴퓨팅 (HPC)과 같은 까다로운 데이터 집약적 워크로드에 최적화된 환경을 만드는 방법을 설명합니다.
이 문서에서는 Cluster Toolkit을 사용하여 GKE 클러스터와 Managed Lustre 인스턴스를 선언적으로 프로비저닝하고, Managed Lustre CSI 드라이버와 Kubernetes PersistentVolume 리소스를 자동으로 구성하고, 클러스터에서 샘플 워크로드를 실행합니다.
이 문서는 Managed Lustre 인스턴스로 지원되는 Kubernetes 컨테이너 조정 기능을 살펴보고자 하는 머신러닝 (ML) 엔지니어와 데이터 및 AI 전문가를 대상으로 합니다. Google Cloud 콘텐츠에서 참조하는 일반적인 역할 및 예시 태스크에 대해 자세히 알아보려면 일반 GKE 사용자 역할 및 태스크를 참고하세요.
배경
이 섹션에서는 이 문서에서 사용되는 주요 기술을 설명합니다.
Cluster Toolkit
Cluster Toolkit은 Google Cloud에서 AI/ML 및 HPC 환경을 배포하고 관리하는 작업을 간소화하는 오픈소스 도구입니다. Cluster Toolkit은 모듈식 선언적 청사진을 사용하여 GKE 클러스터, 네트워크, 컴퓨팅 가속기, 고성능 스토리지의 프로비저닝을 자동화합니다.
자세한 내용은 Cluster Toolkit 개요를 참고하세요.
Managed Lustre
Managed Lustre는 까다로운 워크로드를 위해 설계된 고성능 병렬 파일 시스템 서비스입니다. Managed Lustre CSI 드라이버를 사용하면 표준 Kubernetes PersistentVolumeClaims (PVC) 및 PersistentVolumes(PV)를 사용하여 Managed Lustre 인스턴스를 GKE와 통합할 수 있습니다. 이 드라이버는 영구적이고 확장 가능하며 처리량이 높은 스토리지가 필요한 AI/ML 및 HPC 워크로드에 특히 유용합니다.
자세한 내용은 Managed Lustre CSI 드라이버 정보를 참조하세요.
액셀러레이터 소비 옵션
유연한 시작 및 스팟 VM을 사용하면 필요한 리소스에 대해서만 비용을 지불하여 컴퓨팅 프로비저닝을 최적화할 수 있습니다. 자세한 내용은 GKE의 AI/ML 워크로드용 가속기 사용 옵션 정보를 참고하세요.
시작하기 전에
시작하기 전에 다음 태스크를 수행했는지 확인합니다.
- Google Cloud Managed Lustre API 및 Google Kubernetes Engine API를 사용 설정합니다. API 사용 설정
- 이 태스크에 Google Cloud CLI를 사용하려면 gcloud CLI를 설치한 후 초기화합니다. 이전에 gcloud CLI를 설치했으면
gcloud components update명령어를 실행하여 최신 버전을 가져옵니다. 이전 gcloud CLI 버전에서는 이 문서의 명령어를 실행하지 못할 수 있습니다.
개발 환경 준비
기본 환경 변수를 설정하고 배포 머신의 IP 주소를 가져옵니다.
gcloud config set project PROJECT_ID export PROJECT_ID=$(gcloud config get project) export REGION=REGION export ZONE=ZONE export DEPLOYMENT_NAME=DEPLOYMENT_NAME export AUTHORIZED_CIDR="$(curl -s ifconfig.me)/32"다음 값을 바꿉니다.
PROJECT_ID: Google Cloud 프로젝트 ID입니다.REGION: 배포 리전(예:us-central1)ZONE: Managed Lustre를 지원하는 영역입니다(예:us-central1-a).DEPLOYMENT_NAME: 배포 이름입니다.
클러스터 및 스토리지 배포
Cluster Toolkit 저장소의
examples/gke-managed-lustre.yaml청사진을 사용하여 인프라를 배포합니다.gcluster deploy examples/gke-managed-lustre.yaml \ --vars project_id=${PROJECT_ID},deployment_name=${DEPLOYMENT_NAME},region=${REGION},zone=${ZONE},authorized_cidr=${AUTHORIZED_CIDR}Cluster Toolkit은 VPC를 프로비저닝하고, Managed Lustre 인스턴스를 만들고, Managed Lustre CSI 드라이버가 사용 설정된 GKE 클러스터를 프로비저닝하고, Kubernetes PersistentVolume 및 PersistentVolumeClaim을 만듭니다.
새 클러스터에 액세스하도록
kubectl를 구성합니다.gcloud container clusters get-credentials ${DEPLOYMENT_NAME} \ --zone=${ZONE} \ --project=${PROJECT_ID}
Managed Lustre로 워크로드 실행
gcluster job submit 명령어를 사용하여 Managed Lustre 볼륨을 마운트하는 워크로드를 제출합니다. 작업 제출 옵션에 관한 자세한 내용은 Cluster Toolkit 작업 제출 가이드를 참고하세요.
gcluster job submit \
--name="test-lustre-$(date +%H%M)" \
--cluster=${DEPLOYMENT_NAME} \
--project=${PROJECT_ID} \
--location=${ZONE} \
--compute-type=n2-standard-16 \
--image=ubuntu:latest \
--command="df -h && echo 'Hello from Managed Lustre on GKE' > /lustre-data/hello.txt && cat /lustre-data/hello.txt" \
--mount="gke-lustre-instance-pvc;/lustre-data;rw"
워크로드 로그와 실행 상태를 검사하려면 gcluster job logs 명령어를 사용합니다.
gcluster job logs "test-lustre-$(date +%H%M)" \
--cluster=${DEPLOYMENT_NAME} \
--project=${PROJECT_ID} \
--location=${ZONE}
출력은 다음과 비슷합니다.
Filesystem Size Used Avail Use% Mounted on
overlay 193G 11G 183G 6% /
tmpfs 64M 0 64M 0% /dev
10.8.68.5@tcp://lustrefs 35T 22M 35T 1% /lustre-data
shm 64M 0 64M 0% /dev/shm
Hello from Managed Lustre on GKE
삭제
이 문서에서 사용된 리소스의 비용이 Google Cloud 계정에 청구되지 않도록 하려면 Cluster Toolkit을 사용하여 배포를 삭제하세요.
gcluster destroy ${DEPLOYMENT_NAME}
다음 단계
- Managed Lustre CSI 드라이버 자세히 알아보기
- Cluster Toolkit 청사진 카탈로그 살펴보기
- GKE 스토리지 클래스를 만드는 방법을 알아봅니다.
- Managed Lustre로 지원되는 볼륨을 만들고 사용하는 방법을 알아보세요.