Référence des pilotes CSI

Les fichiers manifestes suivants décrivent les champs de pilote CSI compatibles dans les ressources StorageClass et PersistentVolume.

Classe de stockage

Le fichier manifeste suivant inclut tous les champs compatibles de la 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
  mountLocality: MOUNT_LOCALITY # optional
  dfuseCPURequest: DFUSE_CPU_REQUEST # optional
  dfuseMemoryRequest: DFUSE_MEMORY_REQUEST # optional
  dfuseCPULimit: DFUSE_CPU_LIMIT # optional
  dfuseMemoryLimit: DFUSE_MEMORY_LIMIT # 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

Tous les champs suivants sont facultatifs:

  • network: réseau VPC dans lequel créer l'instance Parallelstore. Si cette propriété n'est pas spécifiée, le réseau du cluster GKE est utilisé.

    Pour créer une instance Parallelstore dans un réseau VPC partagé, vous devez indiquer le nom complet du réseau. Par exemple : projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME

  • labels: paires clé-valeur spécifiées par l'utilisateur à associer à cette instance.

  • description: description de l'instance. Doit comporter 2 048 caractères maximum.

  • reserved-ip-range: nom d'une plage d'adresses IP allouée. Si ce paramètre n'est pas spécifié, toutes les plages sont prises en compte.

  • file-stripe-level définit les paramètres de bandes de fichiers. Les valeurs autorisées sont les suivantes :

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

    Pour en savoir plus, consultez la section Considérations sur les performances.

  • directory-stripe-level définit le niveau de bandes pour les répertoires. Les valeurs autorisées sont les suivantes :

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

    Pour en savoir plus, consultez la section Considérations sur les performances.

  • mountLocality: active le mode d'installation local du nœud pour le provisionnement dynamique. Les valeurs acceptées sont node ou pod. La valeur par défaut est pod. Si node est spécifié, vous pouvez également utiliser les options suivantes:

    • dfuseCPURequest: requête de processeur pour le processus dfuse. La valeur par défaut est 250m.
    • dfuseMemoryRequest: requête de mémoire pour le processus dfuse. La valeur par défaut est 512Mi.
    • dfuseCPULimit: limite de ressources processeur pour le processus dfuse. La valeur par défaut n'est pas définie.
    • dfuseMemoryLimit: limite de mémoire pour le processus dfuse. La valeur par défaut est 10Gi.
  • allowedTopologies: spécifie la zone dans laquelle créer l'instance Parallelstore. Si ce champ n'est pas spécifié, l'instance est créée dans la même zone que le déploiement du pilote CSI, avec le mode de liaison de volume immediate.

  • volumeBindingMode: spécifie le mode de sélection de la topologie. Le mode immediate utilise la valeur spécifiée dans allowedTopologies. Le mode waitForFirstConsumer attribue la topologie à la zone dans laquelle le pod GKE est planifié. Cela peut entraîner le blocage des pods en attendant la provisionnement d'un volume.

  • mountOptions: spécifie les options de montage dfuse et les paramètres du kernel, y compris read_ahead_kb et max_ratio. Les volumes basés sur des instances Parallelstore héritent de ces valeurs dans le champ .spec.mountOptions du volume persistant.

    Les options sont les suivantes :

    • disable-caching: désactive toute mise en cache. Par défaut, la mise en cache complète (à l'exception du cache en écriture) est activée lors du montage d'une instance Parallelstore dans GKE.
    • enable-wb-cache: utilisez le cache en écriture plutôt que le cache en écriture directe.
    • thread-count: nombre de threads à utiliser. Cette valeur correspond à la somme du nombre de threads FUSE et du nombre de files d'attente d'événements.
    • eq-count: nombre de files d'attente d'événements à utiliser.
    • read_ahead_kb: taille de la fenêtre de prélecture en kilo-octets.
    • max_ratio: permet de limiter l'utilisation d'un appareil particulier à un pourcentage donné du cache de réécriture.

    Pour en savoir plus sur ces options, consultez la section Considérations sur les performances.

Volume persistant

Le fichier manifeste suivant inclut tous les champs compatibles du volume persistant.

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
      mountLocality: MOUNT_LOCALITY # optional
      dfuseCPURequest: DFUSE_CPU_REQUEST # optional
      dfuseMemoryRequest: DFUSE_MEMORY_REQUEST # optional
      dfuseCPULimit: DFUSE_CPU_LIMIT # optional
      dfuseMemoryLimit: DFUSE_MEMORY_LIMIT # optional
  • capacity: capacité de l'instance Parallelstore. Doit être l'un des suivants : 12Ti, 16Ti ou 20Ti.
  • mountOptions: hérite du champ mountOptions dans StorageClass.
  • csi.volumeHandle: identifiant exclusif d'une instance Parallelstore. Doit utiliser le format suivant : PROJECT_ID/LOCATION/INSTANCE_NAME/default-pool/default-container
  • csi.volumeAttributes.accessPoints: liste des adresses IP des nœuds de serveur Parallelstore, séparées par des virgules.
  • csi.volumeAttributes.network: réseau VPC de l'instance Parallelstore, qui doit correspondre au réseau du cluster GKE. Ce champ permet de vérifier que l'instance Parallelstore fournie se trouve dans un réseau valide avant que le pilote CSI ne l'installe.
  • csi.volumeAttributes.mountLocality: active le mode d'installation local du nœud pour le provisionnement dynamique. Les valeurs acceptées sont node ou pod. La valeur par défaut est pod. Si node est spécifié, vous pouvez également utiliser les options suivantes:

    • csi.volumeAttributes.dfuseCPURequest: requête de processeur pour le processus dfuse. La valeur par défaut est 250m.
    • csi.volumeAttributes.dfuseMemoryRequest: requête de mémoire pour le processus dfuse. La valeur par défaut est 512Mi.
    • csi.volumeAttributes.dfuseCPULimit: limite de ressources processeur pour le processus dfuse. La valeur par défaut n'est pas définie.
    • csi.volumeAttributes.dfuseMemoryLimit: limite de mémoire pour le processus dfuse. La valeur par défaut est 10Gi.