Referencia del controlador de CSI

En los siguientes manifiestos, se describen los campos del controlador de CSI admitidos en los recursos de la clase de almacenamiento y el volumen persistente.

Clase de almacenamiento

El siguiente manifiesto incluye todos los campos admitidos en la clase de almacenamiento.

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

Todos los siguientes campos son opcionales:

  • network: Es la red de VPC en la que se creará la instancia de Parallelstore. Si no se especifica esta propiedad, se usa la red del clúster de GKE.

    Para crear una instancia de Parallelstore en una red de VPC compartida, se debe proporcionar el nombre completo de la red. Por ejemplo: projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME

  • labels: Son los pares clave-valor especificados por el usuario para adjuntar a esta instancia.

  • description: Una descripción de la instancia. Debe tener 2,048 caracteres o menos.

  • reserved-ip-range: Es el nombre de un rango de direcciones IP asignado. Si no se especifica, se consideran todos los rangos.

  • file-stripe-level define la configuración de la división de archivos. Los valores permitidos son los siguientes:

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

    Consulta Consideraciones sobre el rendimiento para obtener más información.

  • directory-stripe-level define el nivel de división de los directorios. Los valores permitidos son los siguientes:

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

    Consulta Consideraciones sobre el rendimiento para obtener más información.

  • allowedTopologies: Especifica la zona en la que se creará la instancia de Parallelstore. Si no se especifica este campo, la instancia se crea en la misma zona que la implementación del controlador de CSI, con el modo de vinculación de volumen immediate.

  • volumeBindingMode: Especifica el modo de selección de topología. El modo immediate usa el valor especificado en allowedTopologies. El modo waitForFirstConsumer asigna la topología a la zona en la que se programa el pod de GKE. Esto puede provocar que los pods se bloqueen mientras esperan que se aprovisione un volumen.

  • mountOptions: Especifica las opciones de activación y los parámetros del kernel de dfuse, incluidos read_ahead_kb y max_ratio. Los volúmenes respaldados por instancias de Parallelstore heredan estos valores en el campo .spec.mountOptions del volumen persistente.

    Se incluyen las siguientes opciones:

    • disable-caching: Inhabilita todo el almacenamiento en caché. De forma predeterminada, el almacenamiento en caché completo (excepto para la caché de escritura) se habilita cuando se activa una instancia de Parallelstore en GKE.
    • enable-wb-cache: Usa la caché de escritura en lugar de la de escritura a través.
    • thread-count: Cantidad de subprocesos que se usarán. Este valor es la suma de la cantidad de subprocesos de FUSE y la cantidad de colas de eventos.
    • eq-count: Es la cantidad de filas de eventos que se usarán.
    • read_ahead_kb: Es el tamaño de la ventana de lectura anticipada en kilobytes.
    • max_ratio: Permite limitar un dispositivo en particular para que no use más del porcentaje determinado de la caché de escritura.

    Para obtener información sobre estas opciones, consulta Consideraciones sobre el rendimiento.

Volumen persistente

El siguiente manifiesto incluye todos los campos compatibles en el volumen persistente.

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: Es la capacidad de la instancia de Parallelstore. Debe ser 12Ti, 16Ti o 20Ti.
  • mountOptions: Hereda del campo mountOptions en StorageClass.
  • csi.volumeHandle: Es un identificador exclusivo para una instancia de Parallelstore. Debe usar el formato: PROJECT_ID/LOCATION/INSTANCE_NAME/default-pool/default-container
  • csi.volumeAttributes.accessPoints: Es una lista de direcciones IP para los nodos del servidor de Parallelstore, separadas por comas.
  • csi.volumeAttributes.network: La red de VPC de la instancia de Parallelstore, que debe alinearse con la red del clúster de GKE. Este campo se usa para verificar que la instancia de Parallelstore proporcionada esté en una red válida antes de que el controlador de CSI la active.