Riferimento al driver CSI

I manifest seguenti descrivono i campi del driver CSI supportati nelle risorse Storage Class e Persistent Volume.

Classe di archiviazione

Il seguente manifest include tutti i campi supportati nella classe 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

Tutti i seguenti campi sono facoltativi:

  • network: la rete VPC in cui creare l'istanza Parallelstore. Se questa proprietà non è specificata, viene utilizzata la rete del cluster GKE.

    Per creare un'istanza Parallelstore in una rete VPC condivisa, devi fornire il nome completo della rete. Ad esempio: projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME

  • labels: coppie chiave-valore specificate dall'utente da associare a questa istanza.

  • description: una descrizione dell'istanza. Deve avere una lunghezza massima di 2048 caratteri.

  • reserved-ip-range: il nome di un intervallo di indirizzi IP allocato. Se non è specificato, vengono presi in considerazione tutti gli intervalli.

  • file-stripe-level definisce le impostazioni di striping dei file. I valori consentiti sono:

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

    Per maggiori dettagli, consulta la sezione Considerazioni sul rendimento.

  • directory-stripe-level definisce il livello di striping per le directory. I valori consentiti sono:

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

    Per maggiori dettagli, consulta la sezione Considerazioni sul rendimento.

  • allowedTopologies: specifica la zona in cui creare l'istanza Parallelstore. Se questo campo non viene specificato, l'istanza viene creata nella stessa zona del deployment del driver CSI, con la modalità di associazione del volume immediate.

  • volumeBindingMode: specifica la modalità di selezione della topologia. La modalità immediate utilizza il valore specificato in allowedTopologies. La modalità waitForFirstConsumer assegna la topologia alla zona in cui è pianificato il pod GKE. Ciò può causare il blocco dei pod in attesa del provisioning di un volume.

  • mountOptions: specifica le opzioni di montaggio e i parametri del kernel di dfuse, inclusi read_ahead_kb e max_ratio. I volumi basati su istanze Parallelstore ereditano questi valori nel campo .spec.mountOptions del volume permanente.

    Le opzioni sono:

    • disable-caching: disattiva tutta la memorizzazione nella cache. Per impostazione predefinita, la memorizzazione nella cache completa (tranne per la cache di scrittura) è abilitata quando viene montata un'istanza Parallelstore in GKE.
    • enable-wb-cache: utilizza la cache write-back anziché la cache write-through.
    • thread-count: numero di thread da utilizzare. Questo valore è la somma del numero di thread FUSE e del numero di code di eventi.
    • eq-count: numero di code di eventi da utilizzare.
    • read_ahead_kb: dimensione della finestra di lettura anticipata in kilobyte.
    • max_ratio: consente di limitare un determinato dispositivo a utilizzare non più della percentuale indicata della cache di scrittura.

    Per informazioni su queste opzioni, consulta Considerazioni sul rendimento.

Volume permanente

Il seguente manifest include tutti i campi supportati in PersistentVolume.

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: la capacità dell'istanza Parallelstore. Deve essere uno dei seguenti valori: 12Ti, 16Ti o 20Ti.
  • mountOptions: eredita dal campo mountOptions in StorageClass.
  • csi.volumeHandle: un identificatore esclusivo per un'istanza Parallelstore. Deve essere utilizzato il formato: PROJECT_ID/LOCATION/INSTANCE_NAME/default-pool/default-container
  • csi.volumeAttributes.accessPoints: un elenco di indirizzi IP per i nodi del server Parallelstore, separati da virgole.
  • csi.volumeAttributes.network: la rete VPC dell'istanza Parallelstore, che deve essere in linea con la rete del cluster GKE. Questo campo viene utilizzato per verificare che l'istanza Parallelstore fornita si trovi in una rete valida prima che il driver CSI la monti.