Os seguintes manifestos descrevem os campos do controlador CSI suportados nos recursos StorageClass e Persistent Volume.
Classe de armazenamento
O manifesto seguinte inclui todos os campos suportados na 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
Todos os seguintes campos são opcionais:
network: a rede VPC na qual criar a instância do Parallelstore. Se esta propriedade não for especificada, é usada a rede do cluster do GKE.Para criar uma instância do Parallelstore numa rede VPC partilhada, tem de indicar o nome completo da rede. Por exemplo:
projects/PROJECT_ID/global/networks/VPC_NETWORK_NAMElabels: Pares de chave-valor especificados pelo utilizador a anexar a esta instância.description: uma descrição da instância. Tem de ter 2048 carateres ou menos.reserved-ip-range: O nome de um intervalo de endereços IP atribuído. Se não for especificado, são considerados todos os intervalos.file-stripe-leveldefine as definições de divisão de ficheiros. Os valores permitidos são:file-stripe-level-balancedfile-stripe-level-maxfile-stripe-level-min
Consulte as considerações de desempenho para ver detalhes.
directory-stripe-leveldefine o nível de divisão em faixas para diretórios. Os valores permitidos são:directory-stripe-level-balanceddirectory-stripe-level-maxdirectory-stripe-level-min
Consulte as considerações de desempenho para ver detalhes.
mountLocality: ativa o modo de montagem local do nó para o aprovisionamento dinâmico. Os valores suportados sãonodeoupod. A predefinição épod. Senodeestiver especificado, também pode usar as seguintes opções:dfuseCPURequest: o pedido de CPU para o processo dfuse. A predefinição é250m.dfuseMemoryRequest: o pedido de memória para o processo dfuse. A predefinição é512Mi.dfuseCPULimit: o limite da CPU para o processo dfuse. Por predefinição, o valor não está definido.dfuseMemoryLimit: o limite de memória para o processo dfuse. A predefinição é10Gi.
allowedTopologies: especifica a zona na qual criar a instância do Parallelstore. Se este campo não for especificado, a instância é criada na mesma zona que a implementação do controlador CSI, com o modo de associação de volumesimmediate.volumeBindingMode: especifica o modo de seleção da topologia. O modoimmediateusa o valor especificado emallowedTopologies. O modowaitForFirstConsumeratribui a topologia à zona em que o pod do GKE está agendado. Isto pode fazer com que os pods sejam bloqueados enquanto aguardam o aprovisionamento de um volume.mountOptions: especifica as opções de montagem dfuse e os parâmetros do kernel, incluindoread_ahead_kbemax_ratio. Os volumes suportados por instâncias do Parallelstore herdam estes valores no campo.spec.mountOptionsdo volume persistente.As opções são:
disable-caching: desativa toda a colocação em cache. Por predefinição, a colocação em cache completa (exceto para a cache de gravação) está ativada quando monta uma instância do Parallelstore no GKE.enable-wb-cache: use a cache de gravação diferida em vez da gravação imediata.thread-count: número de discussões a usar. Este valor é a soma do número de threads FUSE e do número de filas de eventos.eq-count: número de filas de eventos a usar.read_ahead_kb: tamanho da janela de leitura antecipada em kilobytes.max_ratio: permite limitar um dispositivo específico para que não use mais do que a percentagem fornecida da cache de gravação.
Para informações acerca destas opções, consulte o artigo Considerações sobre o desempenho.
Volume persistente
O manifesto seguinte inclui todos os campos suportados no 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
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: a capacidade da instância do Parallelstore. Tem de ser um dos seguintes:12Ti,16Tiou20Ti.mountOptions: herdar do campomountOptionsem StorageClass.csi.volumeHandle: um identificador exclusivo para uma instância da Parallelstore. Tem de usar o formato:PROJECT_ID/LOCATION/INSTANCE_NAME/default-pool/default-containercsi.volumeAttributes.accessPoints: uma lista de endereços IP para nós do servidor Parallelstore, separados por vírgulas.csi.volumeAttributes.network: a rede VPC da instância do Parallelstore, que tem de estar alinhada com a rede do cluster do GKE. Este campo é usado para verificar se a instância Parallelstore fornecida está numa rede válida antes de o controlador CSI a montar.csi.volumeAttributes.mountLocality: ativa o modo de montagem local do nó para o aprovisionamento dinâmico. Os valores suportados sãonodeoupod. A predefinição épod. Senodeestiver especificado, também pode usar as seguintes opções:csi.volumeAttributes.dfuseCPURequest: o pedido de CPU para o processo dfuse. A predefinição é250m.csi.volumeAttributes.dfuseMemoryRequest: o pedido de memória para o processo dfuse. A predefinição é512Mi.csi.volumeAttributes.dfuseCPULimit: o limite da CPU para o processo dfuse. Por predefinição, o valor não está definido.csi.volumeAttributes.dfuseMemoryLimit: o limite de memória para o processo dfuse. A predefinição é10Gi.