Referencia de controlador de CSI

En los siguientes manifiestos se describen los campos de controladores CSI admitidos en los recursos StorageClass y PersistentVolume.

Clase de almacenamiento

El siguiente manifiesto incluye todos los campos admitidos en StorageClass.

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

Todos los campos siguientes son opcionales:

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

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

  • labels: pares clave-valor especificados por el usuario que se adjuntarán a esta instancia.

  • description: descripción de la instancia. Debe tener 2048 caracteres como máximo.

  • reserved-ip-range: el nombre de un intervalo de direcciones IP asignado. Si no se especifica, se tendrán en cuenta todos los intervalos.

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

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

    Consulta los aspectos relacionados con el rendimiento para obtener más información.

  • directory-stripe-level define el nivel de franjas de los directorios. Los valores permitidos son:

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

    Consulta los aspectos relacionados con el rendimiento para obtener más información.

  • mountLocality: habilita el modo de montaje local de nodos para el aprovisionamiento dinámico. Los valores posibles son node y pod. El valor predeterminado es pod. Si se especifica node, también puedes usar las siguientes opciones:

    • dfuseCPURequest: la solicitud de CPU del proceso dfuse. El valor predeterminado es 250m.
    • dfuseMemoryRequest: la solicitud de memoria del proceso dfuse. El valor predeterminado es 512Mi.
    • dfuseCPULimit: límite de CPU del proceso dfuse. El valor predeterminado no está definido.
    • dfuseMemoryLimit: límite de memoria del proceso dfuse. El valor predeterminado es 10Gi.
  • allowedTopologies: especifica la zona en la que se va a 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 CSI, con el modo de enlace 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 montaje 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.

    Las opciones son las siguientes:

    • disable-caching: inhabilita todo el almacenamiento en caché. De forma predeterminada, el almacenamiento en caché completo (excepto el almacenamiento en caché de escritura diferida) está habilitado al montar una instancia de Parallelstore en GKE.
    • enable-wb-cache: usa la caché de escritura diferida en lugar de la de escritura directa.
    • thread-count: número de hilos que se van a usar. Este valor es la suma del número de hilos FUSE y del número de colas de eventos.
    • eq-count: número de colas de eventos que se van a usar.
    • read_ahead_kb: tamaño de la ventana de lectura anticipada en kilobytes.
    • max_ratio: permite limitar el uso de un dispositivo concreto a un porcentaje determinado de la caché de escritura diferida.

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

Volumen persistente

El siguiente manifiesto incluye todos los campos admitidos en 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
      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: la capacidad de la instancia de Parallelstore. Debe ser uno de los siguientes valores: 12Ti, 16Ti o 20Ti.
  • mountOptions: hereda del campo mountOptions de StorageClass.
  • csi.volumeHandle: identificador exclusivo de una instancia de Parallelstore. Debe usar el siguiente formato: PROJECT_ID/LOCATION/INSTANCE_NAME/default-pool/default-container
  • csi.volumeAttributes.accessPoints: lista de direcciones IP de los nodos del servidor Parallelstore separadas por comas.
  • csi.volumeAttributes.network: la red VPC de la instancia de Parallel Store, que debe coincidir 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 CSI la monte.
  • csi.volumeAttributes.mountLocality: habilita el modo de montaje local de nodos para el aprovisionamiento dinámico. Los valores posibles son node y pod. El valor predeterminado es pod. Si se especifica node, también puedes usar las siguientes opciones:

    • csi.volumeAttributes.dfuseCPURequest: la solicitud de CPU del proceso dfuse. El valor predeterminado es 250m.
    • csi.volumeAttributes.dfuseMemoryRequest: la solicitud de memoria del proceso dfuse. El valor predeterminado es 512Mi.
    • csi.volumeAttributes.dfuseCPULimit: límite de CPU del proceso dfuse. El valor predeterminado no está definido.
    • csi.volumeAttributes.dfuseMemoryLimit: límite de memoria del proceso dfuse. El valor predeterminado es 10Gi.