

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á.

# Trabalhar com drivers SMB da CSI
<a name="use-smb-csi"></a>

Siga os procedimentos nesta seção para instalar, configurar ou excluir os drivers da CSI necessários para usar um compartilhamento de arquivos SMB em um Gateway de Arquivos do Amazon S3 para armazenamento em um 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](https://github.com/kubernetes-csi/csi-driver-smb/blob/master/docs/install-csi-driver-master.md)

**nota**  
Ao criar um objeto `PersistentVolume` ou `StorageClass`, você pode especificar um parâmetro `ReclaimPolicy` para determinar o que acontece com o armazenamento externo quando os objetos são excluídos. O driver SMB da CSI é compatível com as opções `Retain` e `Recycle`, mas ainda não é compatível com uma opção `Delete`.

## Instalar drivers
<a name="install-smb-csi"></a>

**Para instalar drivers SMB da CSI do Kubernetes:**

1. Em um terminal de linha de comandos com acesso a `kubectl` para o 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 --**

1. Aguarde a conclusão do comando anterior e use os comandos a seguir para garantir que os pods de driver da 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
<a name="create-storageclass-smb-csi"></a>

**Para criar um novo StorageClass objeto SMB para seu cluster Kubernetes:**

1. 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
   ```

1. Em um terminal de linha de comandos com acesso a `kubectl` e `storageclass.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.

1. 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/](https://kubernetes.io/docs/concepts/storage/).

## Crie pequenas PersistentVolume e médias empresas e objetos PersistentVolumeClaim
<a name="create-persistentvolume-volumeclaim-smb-csi"></a>

**Para criar novos SMB PersistentVolume e PersistentVolumeClaim objetos:**

1. Crie dois arquivos de configuração. Um chamado `persistentvolume.yaml` e outro chamado `persistentvolumeclaim.yaml`.

1. 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}}
   ```

1. 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: ""
   ```

1. Em um terminal de linha de comandos com acesso a `kubectl` e ambos os arquivos `.yaml` 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.

1. 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/](https://kubernetes.io/docs/concepts/storage/).

## Desinstalar drivers
<a name="uninstall-smb-csi"></a>

**Para desinstalar os drivers SMB da CSI do Kubernetes:**
+ Em um terminal de linha de comandos com acesso a `kubectl` para o cluster Kubernetes, execute o seguinte comando:

  **curl -skSL https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/deploy/uninstall-driver.sh \| bash -s --**