Configuração de opções de montagem de volume do SFS
Esta seção descreve como configurar as opções de montagem de volume do SFS. Você pode configurar opções de montagem em um PV e vincular o PV a uma PVC. Como alternativa, configure as opções de montagem em uma StorageClass e use a StorageClass para criar uma PVC. Dessa forma, os PVs podem ser criados dinamicamente e herdar opções de montagem configuradas na StorageClass por padrão.
Pré-requisitos
A versão do complemento Armazenamento do contêiner do CCE (Everest) deve ser 1.2.8 ou posterior. Esse complemento identifica as opções de montagem e as transfere para os recursos de armazenamento subjacentes. As configurações de parâmetros terão efeito somente se os recursos de armazenamento subjacentes suportarem as opções especificadas.
Restrições
- As opções de montagem não podem ser configuradas para contêineres seguros.
- Devido às restrições do protocolo NFS, se um volume do SFS for montado em um nó por várias vezes, os parâmetros de montagem relacionados ao link (como timeo) terão efeito somente quando o volume do SFS for montado pela primeira vez. Por exemplo, se um volume do SFS for montado em vários pods em execução em um nó, os valores dos parâmetros de montagem configurados posteriormente não substituirão os valores de parâmetros existentes.
Opções de montagem de volume do SFS
O complemento everest no CCE predefine as opções descritas em Tabela 1 para montar volumes do SFS.
Parâmetro |
Valor |
Descrição |
---|---|---|
keep-original-ownership |
Deixe em branco. |
Se deve reter a propriedade do ponto de montagem do arquivo. Se esta opção for usada, o complemento everest deve ser v1.2.63 ou v2.1.2 ou posterior.
|
vers |
3 |
Versão do sistema de arquivos. No momento, apenas NFSv3 é suportada. Valor: 3 |
nolock |
Deixe em branco. |
Se deseja bloquear arquivos no servidor usando o protocolo NLM. Se nolock for selecionado, o bloqueio é válido para aplicações em um host. Para aplicações em outro host, o bloqueio é inválido. |
timeo |
600 |
Tempo de espera antes do cliente de NFS retransmitir uma solicitação. A unidade é 0,1 segundo. Valor recomendado: 600 |
hard/soft |
Deixe em branco. |
Modos de montagem.
O valor padrão é hard. |
Você pode definir outras opções de montagem, se necessário. Para obter detalhes, consulte MMontagem de um sistema de arquivos NFS para ECSs (Linux).
Definir opções de montagem em um PV
Você pode usar o campo mountOptions para definir opções de montagem em um PV. As opções que você pode configurar em mountOptions estão listadas em Opções de montagem de volume do SFS.
- Use o kubectl para se conectar ao cluster. Para mais detalhes, consulte Conexão a um cluster usando o kubectl.
- Defina as opções de montagem em um PV. Exemplo:
apiVersion: v1 kind: PersistentVolume metadata: annotations: pv.kubernetes.io/provisioned-by: everest-csi-provisioner everest.io/reclaim-policy: retain-volume-only # (Optional) The PV is deleted while the underlying volume is retained. name: pv-sfs spec: accessModes: - ReadWriteMany # Access mode. The value must be ReadWriteMany for SFS. capacity: storage: 1Gi # SFS volume capacity. csi: driver: disk.csi.everest.io # Dependent storage driver for the mounting. fsType: nfs volumeHandle: <your_volume_id> # ID of the SFS Capacity-Oriented volume. volumeAttributes: everest.io/share-export-location: <your_location> # Shared path of the SFS volume. storage.kubernetes.io/csiProvisionerIdentity: everest-csi-provisioner persistentVolumeReclaimPolicy: Retain # Reclaim policy. storageClassName: csi-nas # Storage class name. mountOptions: # Mount options. - vers=3 - nolock - timeo=600 - hard
- Depois que um PV é criado, você pode criar uma PVC e vinculá-la ao PV e, em seguida, montar o PV ao contêiner na carga de trabalho. Para mais detalhes, consulte Uso de um sistema de arquivos do SFS existente por meio de um PV estático.
- Verifique se as opções de montagem têm efeito.
Neste exemplo, a PVC é montada na carga de trabalho que usa a imagem nginx:latest. Você pode executar o comando mount -l para verificar se as opções de montagem têm efeito.
- Visualize o pod no qual o volume do SFS foi montado. Neste exemplo, o nome da carga de trabalho é web-sfs.
kubectl get pod | grep web-sfs
Saída do comando:
web-sfs-*** 1/1 Running 0 23m
- Execute o seguinte comando para verificar as opções de montagem (web-sfs-*** é um pod de exemplo):
kubectl exec -it web-sfs-*** -- mount -l | grep nfs
Se as informações de montagem na saída do comando forem consistentes com as opções de montagem configuradas, as opções de montagem serão definidas com sucesso.
<Your shared path> on /data type nfs (rw,relatime,vers=3,rsize=1048576,wsize=1048576,namlen=255,hard,nolock,noresvport,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=**.**.**.**,mountvers=3,mountport=2050,mountproto=tcp,local_lock=all,addr=**.**.**.**)
- Visualize o pod no qual o volume do SFS foi montado. Neste exemplo, o nome da carga de trabalho é web-sfs.
Configurar opções de montagem em uma StorageClass
Você pode usar o campo mountOptions para definir opções de montagem em uma StorageClass. As opções que você pode configurar em mountOptions estão listadas em Opções de montagem de volume do SFS.
- Use o kubectl para se conectar ao cluster. Para mais detalhes, consulte Conexão a um cluster usando o kubectl.
- Crie uma StorageClass personalizada. Exemplo:
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: csi-sfs-mount-option provisioner: everest-csi-provisioner parameters: csi.storage.k8s.io/csi-driver-name: nas.csi.everest.io csi.storage.k8s.io/fstype: nfs everest.io/share-access-to: <your_vpc_id> # VPC ID of the cluster. reclaimPolicy: Delete volumeBindingMode: Immediate mountOptions: # Mount options - vers=3 - nolock - timeo=600 - hard
- Depois que a StorageClass é configurada, você pode usá-la para criar uma PVC. Por padrão, os PVs criados dinamicamente herdam as opções de montagem configuradas na StorageClass. Para mais detalhes, consulte Uso de um sistema de arquivos do SFS através de um PV dinâmico.
- Verifique se as opções de montagem têm efeito.
Neste exemplo, a PVC é montada na carga de trabalho que usa a imagem nginx:latest. Você pode executar o comando mount -l para verificar se as opções de montagem têm efeito.
- Visualize o pod no qual o volume do SFS foi montado. Neste exemplo, o nome da carga de trabalho é web-sfs.
kubectl get pod | grep web-sfs
Saída do comando:
web-sfs-*** 1/1 Running 0 23m
- Execute o seguinte comando para verificar as opções de montagem (web-sfs-*** é um pod de exemplo):
kubectl exec -it web-sfs-*** -- mount -l | grep nfs
Se as informações de montagem na saída do comando forem consistentes com as opções de montagem configuradas, as opções de montagem serão definidas com sucesso.
<Your shared path> on /data type nfs (rw,relatime,vers=3,rsize=1048576,wsize=1048576,namlen=255,hard,nolock,noresvport,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=**.**.**.**,mountvers=3,mountport=2050,mountproto=tcp,local_lock=all,addr=**.**.**.**)
- Visualize o pod no qual o volume do SFS foi montado. Neste exemplo, o nome da carga de trabalho é web-sfs.