CSI-Treiberreferenz

In den folgenden Manifesten werden die unterstützten CSI-Treiberfelder in den Ressourcen „StorageClass“ und „PersistentVolume“ beschrieben.

Speicherklasse

Das folgende Manifest enthält alle unterstützten Felder in der Speicherklasse.

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

Alle folgenden Felder sind optional:

  • network: Das VPC-Netzwerk, in dem die Parallelstore-Instanz erstellt werden soll. Wenn diese Eigenschaft nicht angegeben ist, wird das Netzwerk des GKE-Clusters verwendet.

    Wenn Sie eine Parallelstore-Instanz in einem freigegebenen VPC-Netzwerk erstellen möchten, muss der vollständige Name des Netzwerks angegeben werden. Beispiel: projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME

  • labels: Benutzerdefinierte Schlüssel/Wert-Paare, die an diese Instanz angehängt werden sollen.

  • description: Eine Beschreibung der Instanz. Es sind maximal 2.048 Zeichen zulässig.

  • reserved-ip-range: Der Name eines zugewiesenen IP-Adressbereichs. Wenn nichts angegeben ist, werden alle Bereiche berücksichtigt.

  • file-stripe-level definiert die Einstellungen für das Dateistreifenverfahren. Zulässige Werte sind:

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

    Weitere Informationen finden Sie unter Überlegungen zur Leistung.

  • directory-stripe-level definiert die Striping-Ebene für Verzeichnisse. Zulässige Werte sind:

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

    Weitere Informationen finden Sie unter Überlegungen zur Leistung.

  • allowedTopologies: Gibt die Zone an, in der die Parallelstore-Instanz erstellt werden soll. Wenn dieses Feld nicht angegeben ist, wird die Instanz in derselben Zone wie die CSI-Treiberbereitstellung mit dem Volumebindungsmodus immediate erstellt.

  • volumeBindingMode: Gibt den Modus für die Topologieauswahl an. Im Modus immediate wird der in allowedTopologies angegebene Wert verwendet. Im Modus waitForFirstConsumer wird die Topologie der Zone zugewiesen, in der der GKE-Pod geplant ist. Dies kann dazu führen, dass Pods blockiert werden, während auf die Bereitstellung eines Volumes gewartet wird.

  • mountOptions: Gibt dfuse-Montageoptionen und Kernelparameter an, einschließlich read_ahead_kb und max_ratio. Diese Werte werden von Volumes übernommen, die von Parallelstore-Instanzen unterstützt werden, in das Feld .spec.mountOptions des persistenten Volumes.

    Folgende Optionen sind verfügbar:

    • disable-caching: Deaktiviert das gesamte Caching. Wenn Sie eine Parallelstore-Instanz in GKE bereitstellen, ist standardmäßig das vollständige Caching (außer für den Writeback-Cache) aktiviert.
    • enable-wb-cache: Verwenden Sie einen Write-Back-Cache anstelle eines Write-Through-Caches.
    • thread-count: Anzahl der zu verwendenden Threads. Dieser Wert ist die Summe der Anzahl der FUSE-Threads und der Anzahl der Ereigniswarteschlangen.
    • eq-count: Anzahl der zu verwendenden Ereigniswarteschlangen.
    • read_ahead_kb: Größe des Vorablesefensters in Kilobyte.
    • max_ratio: Damit lässt sich ein bestimmtes Gerät so einschränken, dass es nicht mehr als den angegebenen Prozentsatz des Writeback-Caches verwendet.

    Weitere Informationen zu diesen Optionen finden Sie unter Überlegungen zur Leistung.

Nichtflüchtiges Volume

Das folgende Manifest enthält alle unterstützten Felder im Persistent Volume.

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: Die Kapazität der Parallelstore-Instanz. Muss 12Ti, 16Ti oder 20Ti sein.
  • mountOptions: Übernimmt die Werte aus dem Feld mountOptions in StorageClass.
  • csi.volumeHandle: Eine eindeutige Kennung für eine Parallelstore-Instanz. Muss das Format PROJECT_ID/LOCATION/INSTANCE_NAME/default-pool/default-container haben.
  • csi.volumeAttributes.accessPoints: Eine Liste von IP-Adressen für Parallelstore-Serverknoten, durch Kommas getrennt.
  • csi.volumeAttributes.network: Das VPC-Netzwerk der Parallelstore-Instanz, das mit dem Netzwerk des GKE-Clusters übereinstimmen muss. Mit diesem Feld wird geprüft, ob sich die angegebene Parallelstore-Instanz in einem gültigen Netzwerk befindet, bevor der CSI-Treiber sie bereitstellt.