Referência do driver CSI

Os manifestos a seguir descrevem os campos do driver CSI aceitos nos recursos de classe de armazenamento e volume persistente.

Classe de armazenamento

O manifesto a seguir inclui todos os campos com suporte na classe de armazenamento.

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 os campos a seguir são opcionais:

  • network: a rede VPC em que a instância do Parallelstore será criada. Se essa propriedade não for especificada, a rede do cluster do GKE será usada.

    Para criar uma instância do Parallelstore em uma rede VPC compartilhada, é necessário informar o nome completo da rede. Por exemplo: projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME

  • labels: pares de chave-valor especificados pelo usuário para anexar a essa instância.

  • description: uma descrição da instância. Precisa ter 2.048 caracteres ou menos.

  • reserved-ip-range: o nome de um intervalo de endereços IP alocado. Se não for especificado, todos os intervalos serão considerados.

  • file-stripe-level define as configurações de remoção de arquivos. Os valores permitidos são:

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

    Consulte Considerações sobre desempenho para mais detalhes.

  • directory-stripe-level define o nível de remoção para diretórios. Os valores permitidos são:

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

    Consulte Considerações sobre desempenho para mais detalhes.

  • allowedTopologies: especifica a zona em que a instância do Parallelstore será criada. Se esse campo não for especificado, a instância será criada na mesma zona que a implantação do driver CSI, com o modo de vinculação de volume immediate.

  • volumeBindingMode: especifica o modo de seleção de topologia. O modo immediate usa o valor especificado em allowedTopologies. O modo waitForFirstConsumer atribui a topologia à zona em que o pod do GKE está programado. Isso pode fazer com que os pods sejam bloqueados enquanto aguardam o provisionamento de um volume.

  • mountOptions: especifica opções de montagem dfuse e parâmetros do kernel, incluindo read_ahead_kb e max_ratio. Os volumes com suporte de instâncias do Parallelstore herdam esses valores no campo .spec.mountOptions do volume persistente.

    As opções são:

    • disable-caching: desativa todo o armazenamento em cache. Por padrão, o armazenamento em cache completo (exceto para o cache de write-back) é ativado ao montar uma instância do Parallelstore no GKE.
    • enable-wb-cache: use o cache de gravação de retorno em vez do cache de gravação.
    • thread-count: número de linhas de execução a serem usadas. Esse valor é a soma do número de linhas de execução do FUSE e do número de filas de eventos.
    • eq-count: número de filas de eventos a serem usadas.
    • read_ahead_kb: tamanho da janela de leitura antecipada em kilobytes.
    • max_ratio: permite limitar um dispositivo específico para que ele não use mais do que a porcentagem especificada do cache de recuperação.

    Para saber mais sobre essas opções, consulte Considerações sobre desempenho.

Volume permanente

O manifesto a seguir inclui todos os campos com suporte no volume 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: a capacidade da instância do Parallelstore. Precisa ser um dos seguintes formatos: 12Ti, 16Ti ou 20Ti.
  • mountOptions: herda do campo mountOptions no StorageClass.
  • csi.volumeHandle: um identificador exclusivo de uma instância do Parallelstore. Precisa usar o formato: PROJECT_ID/LOCATION/INSTANCE_NAME/default-pool/default-container
  • csi.volumeAttributes.accessPoints: uma lista de endereços IP para nós de servidor do Parallelstore, separados por vírgulas.
  • csi.volumeAttributes.network: a rede VPC da instância do Parallelstore, que precisa estar alinhada à rede do cluster do GKE. Esse campo é usado para verificar se a instância do Parallelstore fornecida está em uma rede válida antes que o driver CSI a monte.