CSI 드라이버 참조

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

스토리지 클래스

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

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: parallelstore-csi-sc
provisioner: parallelstore.csi.storage.gke.io
parameters:
  network: VPC_NETWORK_NAME # optional
  labels: KEY: VALUE # optional
  description: DESCRIPTION # optional
  reserved-ip-range: IP_RANGE_NAME # optional
  file-stripe-level: FILE_STRIPE_LEVEL # optional
  directory-stripe-level: DIRECTORY_STRIPE_LEVEL # optional
volumeBindingMode: VOLUME_BINDING_MODE # default is "immediate"; or "waitForFirstConsumer"
allowedTopologies: # optional
- matchLabelExpressions:
  - key: topology.gke.io/zone
    values:
    - ZONE
mountOptions:
  -  DFUSE_MOUNT_OPTIONS # disable-caching, enable-wb-cache, thread-count, eq-count

다음 필드는 모두 선택사항입니다.

  • network: Parallelstore 인스턴스를 만들 VPC 네트워크입니다. 이 속성을 지정하지 않으면 GKE 클러스터의 네트워크가 사용됩니다.

    공유 VPC 네트워크에서 Parallelstore 인스턴스를 만들려면 네트워크의 전체 이름을 제공해야 합니다. 예를 들면 다음과 같습니다. projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME

  • labels: 이 인스턴스에 연결할 사용자 지정 키-값 쌍입니다.

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

  • reserved-ip-range: 할당된 IP 주소 범위의 이름입니다. 지정하지 않으면 모든 범위가 고려됩니다.

  • file-stripe-level는 파일 스트리핑 설정을 정의합니다. 허용되는 값은 다음과 같습니다.

    • file-stripe-level-balanced
    • file-stripe-level-max
    • file-stripe-level-min

    자세한 내용은 성능 고려사항을 참고하세요.

  • directory-stripe-level는 디렉터리의 스트리핑 수준을 정의합니다. 허용되는 값은 다음과 같습니다.

    • directory-stripe-level-balanced
    • directory-stripe-level-max
    • directory-stripe-level-min

    자세한 내용은 성능 고려사항을 참고하세요.

  • allowedTopologies: Parallelstore 인스턴스를 만들 영역을 지정합니다. 이 필드를 지정하지 않으면 인스턴스가 CSI 드라이버 배포와 동일한 영역에서 immediate 볼륨 바인딩 모드로 생성됩니다.

  • volumeBindingMode: 토폴로지 선택 모드를 지정합니다. immediate 모드는 allowedTopologies에 지정된 값을 사용합니다. waitForFirstConsumer 모드는 GKE 포드가 예약된 영역에 토폴로지를 할당합니다. 이로 인해 볼륨 프로비저닝을 기다리는 동안 포드가 차단될 수 있습니다.

  • mountOptions: dfuse 마운트 옵션 및 read_ahead_kbmax_ratio를 비롯한 커널 매개변수를 지정합니다. Parallelstore 인스턴스 지원 볼륨은 영구 볼륨의 .spec.mountOptions 필드에서 이러한 값을 상속합니다.

    옵션은 다음과 같습니다.

    • disable-caching: 모든 캐싱을 사용 중지합니다. 기본적으로 GKE에서 Parallelstore 인스턴스를 마운트할 때 전체 캐싱 (백 래시 캐시 제외)이 사용 설정됩니다.
    • enable-wb-cache: 쓰기 방식이 아닌 쓰기 후 캐시를 사용합니다.
    • thread-count: 사용할 스레드 수입니다. 이 값은 FUSE 스레드 수와 이벤트 큐 수의 합계입니다.
    • eq-count: 사용할 이벤트 큐의 수입니다.
    • read_ahead_kb: 선행 읽기 창의 크기(킬로바이트)입니다.
    • max_ratio: 특정 기기가 쓰기 백 캐시의 지정된 비율 이하를 사용하도록 제한할 수 있습니다.

    이러한 옵션에 관한 자세한 내용은 성능 고려사항을 참고하세요.

영구 볼륨

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

apiVersion: v1
kind: PersistentVolume
metadata:
  name: parallelstore-pv
  annotations:
    pv.kubernetes.io/provisioned-by: parallelstore.csi.storage.gke.io
spec:
  storageClassName: parallelstore-csi-sc
  capacity:
    storage: INSTANCE_SIZE # 12Ti
  accessModes:
    - ReadWriteMany
  persistentVolumeReclaimPolicy: Retain # or "Delete"
  volumeMode: Filesystem
  mountOptions:
    - DFUSE_MOUNT_OPTIONS # disable-caching, enable-wb-cache, thread-count, eq-count, read_ahead_kb, max_ratio
  csi:
    driver: parallelstore.csi.storage.gke.io
    volumeHandle: PROJECT_ID/LOCATION/INSTANCE_NAME/default-pool/default-container
    volumeAttributes:
      accessPoints: ACCESS_POINTS # comma-separated list of IP addresses
      network: VPC_NETWORK # optional
  • capacity: Parallelstore 인스턴스의 용량입니다. 12Ti, 16Ti, 20Ti 중 하나여야 합니다.
  • mountOptions: StorageClass의 mountOptions 필드에서 상속합니다.
  • csi.volumeHandle: Parallelstore 인스턴스의 고유 식별자입니다. PROJECT_ID/LOCATION/INSTANCE_NAME/default-pool/default-container 형식을 사용해야 합니다.
  • csi.volumeAttributes.accessPoints: Parallelstore 서버 노드의 IP 주소 목록으로, 쉼표로 구분됩니다.
  • csi.volumeAttributes.network: Parallelstore 인스턴스의 VPC 네트워크로, GKE 클러스터의 네트워크와 일치해야 합니다. 이 필드는 CSI 드라이버가 제공된 Parallelstore 인스턴스를 마운트하기 전에 유효한 네트워크에 있는지 확인하는 데 사용됩니다.