GKE용 Cloud Storage FUSE CSI 드라이버 정보


이 개요에서는 Google Kubernetes Engine (GKE)에서 Cloud Storage 버킷을 로컬 파일 시스템으로 마운트하는 Cloud Storage FUSE CSI 드라이버를 소개합니다. 이 기능은 Cloud Storage에 학습 데이터, 모델, 체크포인트를 저장해야 하는 머신러닝 워크로드에 특히 유용합니다.

이 개요는 Kubernetes 애플리케이션에서 Cloud Storage에 저장된 학습 데이터, 추론 모델 가중치, 체크포인트에 액세스하거나 이를 저장하려는 개발자와 데이터 과학자를 대상으로 합니다.

이 페이지를 읽기 전에 Kubernetes, GKE, Cloud Storage를 숙지해야 합니다.

기능 소개

이 드라이버는 컨테이너 스토리지 인터페이스(CSI) 표준을 사용하여 포드에서 실행되는 애플리케이션이 마운트된 파일 시스템인 것처럼 Cloud Storage 버킷에 원활하게 액세스할 수 있도록 합니다. 즉, 복잡한 구성이나 코드 변경 없이 Cloud Storage 버킷을 Kubernetes 애플리케이션의 영구적이고 확장 가능한 데이터 소스로 간주할 수 있습니다.

Cloud Storage FUSE CSI 드라이버는 오픈소스 Google Cloud Storage FUSE CSI 플러그인으로 구동되는 완전 관리형 환경을 제공합니다. CSI 드라이버를 사용하면 Kubernetes API를 통해 기존 Cloud Storage 버킷을 볼륨으로 사용할 수 있습니다. 애플리케이션은 Cloud Storage FUSE 파일 시스템 시맨틱스를 사용하여 객체를 업로드하고 다운로드할 수 있습니다.

사용자 공간의 파일 시스템 (FUSE)은 파일 시스템을 Linux 커널로 내보내는 데 사용되는 인터페이스입니다. Cloud Storage FUSE를 사용하면 Cloud Storage 버킷을 파일 시스템으로 마운트하여 애플리케이션이 클라우드 관련 API를 사용하지 않고 일반적인 파일 I/O 작업 (예: 열기, 읽기, 쓰기, 닫기)을 사용하여 버킷의 객체에 액세스할 수 있습니다.

드라이버는 Cloud Storage 지원 볼륨을 구성하는 다음 방법을 기본적으로 지원합니다.

  • CSI 임시 볼륨: 포드 사양에 따라 Cloud Storage 버킷을 지정합니다. 이전에 Kubernetes 영구 볼륨을 사용해 본 경험이 없어도 간소화된 포드 기반 인터페이스를 사용하려면 임시 CSI 볼륨을 사용하세요. 이 옵션을 사용하려면 Cloud Storage 버킷을 CSI 임시 볼륨으로 마운트를 참고하세요.
  • PersistentVolumes: 정적 프로비저닝을 사용하여 Cloud Storage 버킷을 참조하는 PersistentVolume 리소스를 만듭니다. 그런 다음 포드가 이 PersistentVolume에 바인딩된 PersistentVolumeClaim을 참조할 수 있습니다. PersistentVolume에 이미 익숙하며 이 리소스 유형을 사용하는 기존 배포와 일관성을 유지하려는 경우 이 옵션을 사용하세요. 이 옵션을 사용하려면 Cloud Storage 버킷을 영구 볼륨으로 마운트를 참고하세요.

사용 사례

Cloud Storage FUSE CSI 드라이버는 다음과 같은 시나리오에 적합합니다.

AI 및 머신러닝

  • 학습: Cloud Storage FUSE CSI 드라이버를 사용하여 Cloud Storage를 진실의 원천으로 사용하여 학습 데이터와 저장된 모델의 체크포인트를 읽을 수 있습니다. 예를 들어 PyTorch, JAX 또는 TensorFlow를 사용하여 GKE에서 모델을 학습할 때 드라이버는 Cloud Storage 버킷에 저장된 학습 데이터 세트에 대한 액세스를 제공할 수 있습니다.
  • 추론: Cloud Storage에 저장된 파일에서 결과를 추론하는 ML 추론 모델을 제공할 수 있습니다. Cloud Storage FUSE CSI를 사용하여 Cloud Storage에 저장된 모델 가중치를 미리 로드할 수 있습니다. 또한 병렬 다운로드 기능을 사용하여 멀티스레드 다운로드를 위해 Cloud Storage에서 대용량 파일을 더 빠르게 읽을 수 있습니다. 이 기능을 사용하면 특히 크기가 1GB를 초과하는 읽기의 경우 모델 로드 시간을 개선할 수 있습니다.

데이터 분석 파이프라인

Cloud Storage FUSE CSI 드라이버를 사용하면 애플리케이션이 Cloud Storage에 저장된 대규모 데이터 세트에 직접 액세스하고 분석할 수 있도록 허용하여 데이터 처리 작업을 간소화할 수 있습니다. 예를 들어 GKE에서 실행되는 Spark 작업은 CSI 드라이버를 사용하여 Cloud Storage에 저장된 데이터를 먼저 다운로드하지 않고도 처리할 수 있습니다.

이점

CSI 드라이버를 사용하면 다음과 같은 이점이 있습니다.

  • 설정이 간편: Cloud Storage FUSE CSI 드라이버는 Standard 클러스터와 Autopilot 클러스터 모두에서 자동으로 드라이버를 배포하고 관리합니다. CSI 임시 볼륨을 사용하면 볼륨 구성 및 관리가 간소화됩니다. PersistentVolumeClaim 및 PersistentVolume 객체가 필요하지 않기 때문입니다.
  • 보안: Cloud Storage FUSE CSI 드라이버에는 권한이 있는 액세스 권한이 필요하지 않습니다. 이렇게 하면 권한이 있는 액세스와 관련된 위험을 최소화하고 보안 상태를 개선할 수 있습니다. GKE용 워크로드 아이덴티티 제휴를 사용하여 인증을 관리하면 포드가 Cloud Storage 객체에 액세스하는 방법을 세밀하게 제어할 수 있습니다.
  • 성능: Cloud Storage FUSE CSI 드라이버는 최적화된 상호작용을 위한 사이드카, 더 빠른 데이터 액세스를 위한 병렬 다운로드, 메타데이터 및 파일 캐싱과 같은 기능을 통해 성능을 향상시켜 읽기 성능을 개선하고 지연 시간을 줄입니다. 이러한 기능에 관한 자세한 내용은 성능 조정 옵션 및 기능을 참고하세요.
  • 이식성 및 유연성: Cloud Storage FUSE CSI 드라이버를 사용하면 표준 파일 시스템 시맨틱스를 사용하여 Cloud Storage 버킷을 마운트하고 액세스할 수 있습니다. 이를 통해 ML 워크로드의 이동성을 개선하는 익숙한 인터페이스를 제공하고 광범위한 코드 또는 애플리케이션 변경이 필요하지 않습니다. 이 드라이버는 GPU 및 TPU를 비롯하여 GKE에서 사용 가능한 모든 가속기에서 지원됩니다. Cloud Storage FUSE CSI 드라이버는 ReadWriteMany, ReadOnlyMany, ReadWriteOnce 액세스 모드를 지원합니다. init 컨테이너에서 Cloud Storage FUSE 볼륨을 사용할 수 있습니다.
  • 관리 가능성: 이 드라이버를 사용하면 Cloud Storage FUSE를 설치하거나 관리할 필요 없이 백그라운드에서 실행할 수 있습니다. 파일 시스템, Cloud Storage, 파일 캐시 사용량을 비롯한 Cloud Storage FUSE의 측정항목 통계도 확인할 수 있습니다.

성능 조정 옵션 및 기능

Cloud Storage FUSE CSI 드라이버에는 Pod가 Cloud Storage 버킷에 저장된 데이터에 액세스하는 방식을 최적화하기 위한 여러 성능 조정 옵션과 기능이 제공됩니다.

예를 들어 파일 캐싱을 사용 설정하고 요청 동시 실행을 조정하면 학습 데이터를 로드하는 데 걸리는 시간을 크게 줄여 학습 시간을 단축할 수 있습니다.

  • 네이티브 사이드카: Cloud Storage FUSE CSI 드라이버는 포드에 사이드카 컨테이너를 연결하여 Cloud Storage와의 상호작용을 관리합니다. 사이드카는 Cloud Storage와의 마운팅 및 상호작용을 처리하므로 애플리케이션이 데이터에 원활하게 액세스할 수 있습니다. 사이드카 컨테이너의 CPU 및 메모리와 같은 리소스를 구성하거나 캐싱 및 버퍼링과 관련된 설정을 조정하여 성능을 미세 조정할 수 있습니다. Cloud Storage FUSE CSI 드라이버 사이드카 컨테이너와 Istio는 Pod에서 공존하고 동시에 실행될 수 있습니다.

  • 병렬 다운로드: GKE 버전 1.30.3-gke.1571000 및 파일 캐시가 사용 설정된 Cloud Storage FUSE v.2.4.0부터 병렬 다운로드 기능을 사용하여 멀티스레드 다운로드를 위해 Cloud Storage에서 대용량 파일을 더 빠르게 읽을 수 있습니다. 이 기능을 사용하면 특히 크기가 1GB를 초과하는 읽기의 경우 모델 로드 시간을 개선할 수 있습니다 (예: Llama 2 70B를 로드할 때 최대 2배 빠름).

  • 메타데이터 캐싱 지원: Cloud Storage FUSE CSI 드라이버는 크기 및 수정 시간과 같은 파일 메타데이터를 캐싱하여 성능을 향상시킵니다. CSI 드라이버는 기본적으로 이 통계 캐시를 사용 설정하고 Cloud Storage에서 정보를 반복적으로 요청하는 대신 로컬에 정보를 저장하여 지연 시간을 줄입니다. 최대 크기와 데이터가 캐시에 유지되는 기간을 구성할 수 있습니다. 메타데이터 캐시를 미세 조정하면 Google Cloud Storage에 대한 API 호출을 줄여 네트워크 트래픽과 지연 시간을 최소화하여 애플리케이션 성능과 효율성을 개선할 수 있습니다.

  • 파일 캐싱 지원: 파일 캐싱과 함께 Cloud Storage FUSE CSI 드라이버를 사용하여 Cloud Storage 버킷의 소형 파일을 처리하는 애플리케이션의 읽기 성능을 개선할 수 있습니다. Cloud Storage FUSE 파일 캐시 기능은 개발자가 선택한 캐시 스토리지에서 더 빠른 파일 반복 읽기를 제공하는 클라이언트 기반 읽기 캐시입니다. 가격 대비 성능 니즈에 따라 로컬 SSD, 영구 디스크 기반 스토리지, RAM 디스크를 포함하여 읽기 캐시를 위한 다양한 스토리지 옵션 중에서 선택할 수 있습니다.

성능 튜닝 권장사항은 GKE 성능을 위해 Cloud Storage FUSE CSI 드라이버 최적화를 참고하세요.

제한사항

CSI 드라이버에는 다음과 같은 제한사항이 있습니다.

요구사항

Cloud Storage FUSE CSI 드라이버를 사용하려면 클러스터가 다음 GKE 버전 요구사항을 충족해야 합니다.

Cloud Storage FUSE CSI 드라이버의 특정 기능을 사용하려면 다음 요구사항도 충족해야 합니다.

기능 GKE 버전 요구사항
사이드카 컨테이너, 맞춤 쓰기 버퍼 볼륨, 사이드카 컨테이너 리소스 요청의 비공개 이미지 1.27.10-gke.1055000, 1.28.6-gke.1369000, 1.29.1-gke.1575000 이상
파일 캐시, 볼륨 속성 1.27.12-gke.1190000, 1.28.8-gke.1175000, 1.29.3-gke.1093000 이상
init 컨테이너의 Cloud Storage FUSE 볼륨 1.29.3-gke.1093000 이상(모든 노드가 GKE 버전 1.29 이상)
동시 다운로드 1.29.6-gke.1254000, 1.30.2-gke.1394000 이상
Cloud Storage FUSE 측정항목 1.31.1-gke.1621000 이상
메타데이터 미리 가져오기 1.31.3-gke.1162000 이상

다음 단계