Managed Lustre CSI 드라이버 참조

다음 매니페스트는 스토리지 클래스 및 영구 볼륨 리소스에서 지원되는 CSI 드라이버 필드를 설명합니다.

스토리지 클래스

다음 매니페스트에는 스토리지 클래스에서 지원되는 모든 필드가 포함되어 있습니다.

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: lustre-csi-example-storage-class
provisioner: lustre.csi.storage.gke.io
parameters:
  network: VPC_NETWORK # optional
  filesystem: LUSTRE_FILESYSTEM_NAME # optional
  labels: KEY_1=VALUE_1,KEY_2=VALUE_2,...,KEY_N=VALUE_N # optional
  description: DESCRIPTION # optional
  perUnitStorageThroughput: 125 | 250 | 500 | 1000  # required
volumeBindingMode: WaitForFirstConsumer | Immediate # default is Immediate
allowedTopologies:
- matchLabelExpressions:
  - key: topology.gke.io/zone
    values:
    - ZONE_1
    - ZONE_2
mountOptions:
  - LUSTRE_MOUNT_OPTIONS

다음 값을 바꿉니다.

  • network: 선택사항입니다. 관리형 Lustre 인스턴스를 만들 Virtual Private Cloud (VPC) 네트워크입니다. 이 속성을 지정하지 않으면 기본 네트워크가 사용됩니다.

    공유 VPC 네트워크에서 관리형 Lustre 인스턴스를 만들려면 네트워크의 전체 이름을 제공해야 합니다. 예를 들면 projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME입니다.

  • filesystem: Managed Lustre 인스턴스의 fsname를 지정합니다. 이 매개변수는 동적 프로비저닝에 사용됩니다. fsname은 영문자로 시작하는 최대 8자리 영숫자 문자열이어야 합니다. 값을 제공하지 않으면 CSI 드라이버가 "lfsNNNNN" 형식의 fsname (예: "lfs97603")를 생성합니다.

  • labels: 선택사항입니다. 관리형 Lustre는 인스턴스별 라벨을 키-값 쌍의 맵으로 지원합니다. Managed Lustre CSI 드라이버를 사용하면 사용자가 제공한 라벨을 인스턴스에 연결할 수 있습니다.

  • description: 선택사항입니다. 인스턴스에 대한 설명입니다. 2,048자(영문 기준) 이하여야 합니다.

  • perUnitStorageThroughput: 인스턴스의 단위당 스토리지 처리량(MB/s/TiB)을 지정합니다. 지원되는 값은 125, 250, 500, 1000입니다. 기본값은 1000입니다.

  • allowTopologies: 선택사항입니다. Managed Lustre 인스턴스는 영역 리소스입니다. 이 속성을 지정하지 않으면 관리형 Lustre 인스턴스가 CSI 컨트롤러 드라이버 포드와 동일한 영역에 생성되고 볼륨 바인딩 모드가 기본적으로 Immediate로 설정됩니다.

    WaitForFirstConsumer이 지정되면 토폴로지는 포드가 예약된 위치로 설정됩니다. 하지만 이 설정으로 인해 볼륨이 프로비저닝될 때까지 포드가 차단될 수 있습니다.

    Managed Lustre CSI 드라이버는 토폴로지 기능을 지원하여 StorageClass에 제공된 토폴로지를 기반으로 영구 볼륨과 포드가 허용된 토폴로지에 배치되도록 합니다.

  • mountOptions: 선택사항입니다. mount.lustre 마운트 옵션을 지정합니다. 관리형 Lustre 볼륨은 pv.spec.mountOptions 필드의 StorageClass에서 이러한 마운트 옵션을 상속합니다.

영구 볼륨

다음 매니페스트에는 영구 볼륨에서 지원되는 모든 필드가 포함됩니다.

apiVersion: v1
kind: PersistentVolume
metadata:
 name: preprov-pv
 annotations:
   pv.kubernetes.io/provisioned-by: lustre.csi.storage.gke.io
spec:
 mountOptions:
   - LUSTRE_MOUNT_OPTIONS
   ...
 storageClassName: ""
 capacity:
   storage: CAPACITY
 accessModes:
   - ReadWriteMany
 persistentVolumeReclaimPolicy: Retain
 volumeMode: Filesystem
 csi:
   driver: lustre.csi.storage.gke.io
   volumeHandle: EXISTING_LUSTRE_INSTANCE_NAME
   volumeAttributes:
     ip: EXISTING_LUSTRE_IP_ADDRESS
     filesystem: EXISTING_LUSTRE_FSNAME

다음 값을 바꿉니다.

  • capacity.storage: Managed Lustre 인스턴스의 용량입니다. 지원되는 최소 및 최대 인스턴스 용량은 성능 등급을 참고하세요.
  • mountOptions: mount.lustre 마운트 옵션을 지정합니다. 이 값은 StorageClass의 mountOptions 필드에서 상속됩니다.
  • csi.volumeHandle: 관리형 Lustre 인스턴스의 독점 식별자입니다. PROJECT_ID/LOCATION/INSTANCE_NAME 형식을 사용해야 합니다.
  • csi.volumeAttributes.ip: 마운트에 사용되는 Managed Lustre 인스턴스의 IP 주소입니다.
  • csi.volumeAttributes.filesystem: Managed Lustre 인스턴스의 파일 시스템 이름입니다. 8자리 식별자입니다.