As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Trabalhando com drivers SMB CSI
Siga os procedimentos nesta seção para instalar, configurar ou excluir os drivers CSI necessários para usar um compartilhamento de arquivos SMB em um Amazon S3 File Gateway para armazenamento em seu cluster Kubernetes. Para obter mais informações, consulte a documentação de código aberto do driver SMB CSI em. GitHub https://github.com/kubernetes-csi/csi-driver-smb/blob/master/docs/install-csi-driver-master.md
nota
Ao criar um PersistentVolume
objeto ou um StorageClass
objeto, você pode especificar um ReclaimPolicy
parâmetro para determinar o que acontece com o armazenamento externo quando os objetos são excluídos. O driver SMB CSI oferece suporte às Recycle
opções Retain
e, mas atualmente não oferece suporte a uma Delete
opção.
Instalar drivers
Para instalar os drivers CSI do Kubernetes SMB:
-
Em um terminal de linha de comando com acesso ao
kubectl
seu cluster Kubernetes, execute o seguinte comando:curl -skSL https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/deploy/install-driver.sh | bash -s master --
-
Aguarde a conclusão do comando anterior e use os comandos a seguir para garantir que os pods do driver CSI estejam em execução:
kubectl -n kube-system get pod -o wide --watch -l app=csi-smb-controller
kubectl -n kube-system get pod -o wide --watch -l app=csi-smb-node
A saída deve ser semelhante à seguinte:
NAME READY STATUS RESTARTS AGE IP NODE csi-smb-controller-56bfddd689-dh5tk 4/4 Running 0 35s 10.240.0.19 k8s-agentpool-22533604-0 csi-smb-controller-56bfddd689-8pgr4 4/4 Running 0 35s 10.240.0.35 k8s-agentpool-22533604-1 csi-smb-node-cvgbs 3/3 Running 0 35s 10.240.0.35 k8s-agentpool-22533604-1 csi-smb-node-dr4s4 3/3 Running 0 35s 10.240.0.4 k8s-agentpool-22533604-0
Criar um objeto SMB StorageClass
Para criar um novo StorageClass objeto SMB para seu cluster Kubernetes:
-
Crie um arquivo de configuração chamado
storageclass.yaml
com conteúdo semelhante ao exemplo a seguir. Substitua suas próprias informações específicas de implantação pelas mostradas.ExampleValues
--- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name:
ExampleStorageClassName
provisioner: smb.csi.k8s.io parameters: source: "//gateway-dns-name-or-ip-address/example-share-name
" # if csi.storage.k8s.io/provisioner-secret is provided, will create a sub directory # with PV name under source csi.storage.k8s.io/provisioner-secret-name: "examplesmbcreds
" csi.storage.k8s.io/provisioner-secret-namespace: "examplenamespace
" csi.storage.k8s.io/node-stage-secret-name: "examplesmbcreds
" csi.storage.k8s.io/node-stage-secret-namespace: "examplenamespace
" volumeBindingMode: Immediate reclaimPolicy: Retain mountOptions: - dir_mode=0777 - file_mode=0777 - uid=1001 - gid=1001 -
Em um terminal de linha de comando com acesso a
kubectl
estorageclass.yaml
, execute o seguinte comando:kubectl apply -f storageclass.yaml
nota
Você também pode criar o StorageClass fornecendo o texto de
.yaml
configuração da etapa anterior para a maioria das plataformas de gerenciamento e conteinerização de Kubernetes de terceiros. -
Configure os pods em seu cluster Kubernetes para usar o novo StorageClass que você criou. Para obter mais informações, consulte a documentação on-line do Kubernetes em. https://kubernetes.io/docs/concepts/storage/
Crie SMB PersistentVolume e objetos PersistentVolumeClaim
Para criar novos SMB PersistentVolume e PersistentVolumeClaim objetos:
-
Crie dois arquivos de configuração. Um nomeado
persistentvolume.yaml
e outro nomeadopersistentvolumeclaim.yaml
. -
Para
persistentvolume.yaml
, adicione conteúdos semelhantes ao exemplo a seguir. Substitua suas próprias informações específicas de implantação pelas mostradas.ExampleValues
--- apiVersion: v1 kind: PersistentVolume metadata: name:
pv-smb-example-name
namespace:smb-example-namespace
# PersistentVolume and PersistentVolumeClaim must use the same namespace parameter spec: capacity: storage: 100Gi accessModes: - ReadWriteMany persistentVolumeReclaimPolicy: Retain mountOptions: - dir_mode=0777 - file_mode=0777 - vers=3.0 csi: driver: smb.csi.k8s.io readOnly: false volumeHandle:examplehandle
# make sure it's a unique id in the cluster volumeAttributes: source: "//gateway-dns-name-or-ip-address/example-share-name
" nodeStageSecretRef: name:example-smbcreds
namespace:smb-example-namespace
-
Para
persistentvolumeclaim.yaml
, adicione conteúdos semelhantes ao exemplo a seguir. Substitua suas próprias informações específicas de implantação pelas mostradas.ExampleValues
--- kind: PersistentVolumeClaim apiVersion: v1 metadata: name:
examplename-pvc-smb-static
namespace:smb-example-namespace
# PersistentVolume and PersistentVolumeClaim must use the same namespace parameter spec: accessModes: - ReadWriteMany resources: requests: storage: 10Gi volumeName:pv-smb-example-name
# make sure specfied volumeName matches the name of the PersistentVolume you created storageClassName: "" -
Em um terminal de linha de comando com acesso aos
kubectl
dois.yaml
arquivos que você criou, execute os seguintes comandos:kubectl apply -f persistentvolume.yaml
kubectl apply -f persistentvolumeclaim.yaml
nota
Você também pode criar os PersistentVolumeClaim objetos PersistentVolume e fornecendo o texto de
.yaml
configuração da etapa anterior para a maioria das plataformas terceirizadas de gerenciamento e conteinerização do Kubernetes. -
Configure os pods em seu cluster Kubernetes para usar o novo PersistentVolumeClaim que você criou. Para obter mais informações, consulte a documentação on-line do Kubernetes em. https://kubernetes.io/docs/concepts/storage/
Desinstalar drivers
Para desinstalar os drivers CSI do Kubernetes SMB:
-
Em um terminal de linha de comando com acesso ao
kubectl
seu cluster Kubernetes, execute o seguinte comando:curl -skSL https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/deploy/uninstall-driver.sh | bash -s --