O plug-in CSI oferece suporte a cotas de diretório para subdiretórios do NAS de uso geral montados via subPath, o que permite limitar a capacidade e melhorar a utilização do armazenamento. Ao atingir uma cota, você pode expandir o subdiretório online aumentando o tamanho do PVC sem interromper o serviço.
Pré-requisitos
Antes de começar, verifique se você possui:
O plug-in CSI instalado no cluster na versão v1.18.8.45 ou posterior. Para atualizar, consulte Atualizar csi-plugin e csi-provisioner.
Um sistema de arquivos NAS de uso geral com um ponto de montagem NFS. Caso contrário, crie um sistema de arquivos NAS de uso geral.
Um ponto de montagem na mesma VPC dos nós do cluster, com Status definido como Active. Se não houver, crie um novo ponto de montagem. Para mais informações, consulte Gerenciar pontos de montagem.
Limitações
As cotas de diretório têm suporte apenas para volumes NAS provisionados dinamicamente que atendem a todas as condições abaixo:
Protocolo: NFS
Tipo de NAS: NAS de uso geral
Método de montagem: subPath
Não há suporte para cotas de diretório em volumes NAS provisionados estaticamente ou em volumes provisionados dinamicamente montados pelos métodos sharepath ou filesystem.
Para obter a lista completa de limitações das cotas de diretório, consulte Cotas de diretório .
Exemplo
-
Modifique o conteúdo YAML a seguir e salve-o como alicloud-nas-quota-sc.yaml.
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: alicloud-nas-quota-sc mountOptions: - nolock,tcp,noresvport - vers=3 parameters: volumeAs: subpath # Set the value to subpath. server: "0cd8b4a576-g****.cn-hangzhou.nas.aliyuncs.com" # The mount target of the General-purpose NAS file system that uses the NFS protocol. archiveOnDelete: "false" path: "/test" volumeCapacity: "true" # The dynamically provisioned volume supports the directory quota feature. provisioner: nasplugin.csi.alibabacloud.com reclaimPolicy: Delete allowVolumeExpansion: true # Enable the directory quota feature to allow expansion of dynamically provisioned volumes.NotaPara ativar o recurso de cota de diretório, defina
allowVolumeExpansionouvolumeCapacitycomotrue. SeallowVolumeExpansionestiver definido comotrue, o parâmetrovolumeCapacitynão terá efeito e o recurso de cota de diretório permanecerá ativado.A tabela a seguir descreve os principais parâmetros. Para mais informações, consulte Usar volumes dinâmicos do NAS.
Parâmetro
Descrição
parametersvolumeAsDefina este parâmetro como
subpathpara montar um subdiretório do sistema de arquivos NAS como PV. Esse valor é obrigatório para o recurso de cota de diretório.serverPonto de montagem do sistema de arquivos NAS. Para visualizar o endereço do ponto de montagem, consulte Gerenciar pontos de montagem.
pathSubdiretório do sistema de arquivos NAS a ser montado. O valor padrão é
/. Para sistemas de arquivos NAS Extreme, o caminho deve começar com/share.volumeCapacityEspecifica se o recurso de cota de diretório deve ser ativado.
Se
allowVolumeExpansionestiver definido comotrue, esse parâmetro não terá efeito e o recurso de cota permanecerá ativado.allowVolumeExpansionDisponível apenas para sistemas de arquivos NAS de uso geral. Definir esse parâmetro como true configura uma cota para PVs provisionados dinamicamente pela StorageClass.
-
Crie a StorageClass.
kubectl apply -f alicloud-nas-quota-sc.yaml
Verificar o resultado
-
Grave 10 GiB de dados no diretório /data montado pelo StatefulSet na Etapa 2.
dd if=/dev/zero of=10G.txt bs=1M count=10000 -
Após 5 a 15 minutos, verifique os detalhes da cota do subdiretório.
Faça login no console do NAS.
No painel de navegação à esquerda, escolha .
Localize o sistema de arquivos e clique em
na coluna Actions. Em seguida, clique em Quota Management.-
Na página Quota Management, clique em Manage Quotas na coluna Actions.
O subdiretório tem limite de cota de 20 GiB, com 9 GiB utilizados atualmente.

Quando a cota de 20 GiB é atingida, novas gravações retornam o erro
Disk quota exceeded.
-
Ao atingir a cota, expanda o volume online.
-
Expanda o volume:
NotaA expansão do volume não interrompe os serviços em execução.
kubectl patch pvc nas-pvc-0 -p '{"spec":{"resources":{"requests":{"storage":"30Gi"}}}}' -
Consulte as informações do PV:
kubectl get pvSaída esperada:
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE nas-63c37cc2-b21e-4b56-b26f-**** 30Gi RWX Delete Bound default/nas-pvc-0 alicloud-nas-quota-sc 25m23s -
Consulte as informações do PVC:
kubectl get pvcSaída esperada:
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE nas-pvc-0 Bound nas-63c37cc2-b21e-4b56-b26f-**** 30Gi RWX alicloud-nas-quota-sc 25m10s
-