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_NAME
labels
: 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-level
define as definições de divisão de ficheiros. Os valores permitidos são:file-stripe-level-balanced
file-stripe-level-max
file-stripe-level-min
Consulte as considerações de desempenho para ver detalhes.
directory-stripe-level
define o nível de divisão em faixas para diretórios. Os valores permitidos são:directory-stripe-level-balanced
directory-stripe-level-max
directory-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ãonode
oupod
. A predefinição épod
. Senode
estiver 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 modoimmediate
usa o valor especificado emallowedTopologies
. O modowaitForFirstConsumer
atribui 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_kb
emax_ratio
. Os volumes suportados por instâncias do Parallelstore herdam estes valores no campo.spec.mountOptions
do 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
,16Ti
ou20Ti
.mountOptions
: herdar do campomountOptions
em 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-container
csi.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ãonode
oupod
. A predefinição épod
. Senode
estiver 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
.