

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Utilisation de pilotes CSI pour PME
<a name="use-smb-csi"></a>

Suivez les procédures décrites dans cette section pour installer, configurer ou supprimer les pilotes CSI nécessaires pour utiliser un partage de fichiers SMB sur une passerelle de fichiers Amazon S3 à des fins de stockage dans votre cluster Kubernetes. Pour plus d'informations, consultez la documentation open source du pilote CSI SMB sur at. 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)

**Note**  
Lorsque vous créez un `PersistentVolume` objet ou un `StorageClass` objet, vous pouvez spécifier un `ReclaimPolicy` paramètre pour déterminer ce qu'il advient du stockage externe lorsque des objets sont supprimés. Le pilote CSI SMB prend en charge les `Recycle` options `Retain` et, mais aucune option n'est actuellement prise en charge. `Delete`

## Installer les pilotes
<a name="install-smb-csi"></a>

**Pour installer les pilotes Kubernetes SMB CSI :**

1. À partir d'un terminal de ligne de commande ayant accès à `kubectl` votre cluster Kubernetes, exécutez la commande suivante :

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

1. Attendez que la commande précédente soit terminée, puis utilisez les commandes suivantes pour vous assurer que les modules de pilotes CSI sont en cours d'exécution :

   **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**

   La sortie doit ressembler à ce qui suit :

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

## Création d'un objet SMB StorageClass
<a name="create-storageclass-smb-csi"></a>

**Pour créer un nouvel StorageClass objet SMB pour votre cluster Kubernetes :**

1. Créez un fichier de configuration nommé `storageclass.yaml` avec un contenu similaire à celui de l'exemple suivant. Remplacez les informations affichées par vos propres informations spécifiques au déploiement. {{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. À partir d'un terminal de ligne de commande ayant accès à `kubectl` et`storageclass.yaml`, exécutez la commande suivante :

   **kubectl apply -f storageclass.yaml**
**Note**  
Vous pouvez également le créer StorageClass en fournissant le texte de `.yaml` configuration de l'étape précédente à la plupart des plateformes tierces de gestion et de conteneurisation Kubernetes.

1. Configurez les pods de votre cluster Kubernetes pour utiliser le nouveau StorageClass que vous avez créé. Pour plus d'informations, consultez la documentation en ligne de Kubernetes à l'adresse. [https://kubernetes.io/docs/concepts/storage/](https://kubernetes.io/docs/concepts/storage/)

## Création de SMB PersistentVolume et d'objets PersistentVolumeClaim
<a name="create-persistentvolume-volumeclaim-smb-csi"></a>

**Pour créer un nouveau SMB PersistentVolume et de nouveaux PersistentVolumeClaim objets :**

1. Créez deux fichiers de configuration. L'un nommé`persistentvolume.yaml`, l'autre nommé`persistentvolumeclaim.yaml`.

1. Pour`persistentvolume.yaml`, ajoutez du contenu similaire à celui de l'exemple suivant. Remplacez les informations affichées par vos propres informations spécifiques au déploiement. {{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. Pour`persistentvolumeclaim.yaml`, ajoutez du contenu similaire à celui de l'exemple suivant. Remplacez les informations affichées par vos propres informations spécifiques au déploiement. {{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. À partir d'un terminal de ligne de commande ayant accès aux deux `.yaml` fichiers que vous avez créés `kubectl` et aux deux, exécutez les commandes suivantes :

   **kubectl apply -f persistentvolume.yaml**

   **kubectl apply -f persistentvolumeclaim.yaml**
**Note**  
Vous pouvez également créer les PersistentVolumeClaim objets PersistentVolume et en fournissant le texte de `.yaml` configuration de l'étape précédente à la plupart des plateformes tierces de gestion et de conteneurisation Kubernetes.

1. Configurez les pods de votre cluster Kubernetes pour utiliser le nouveau PersistentVolumeClaim que vous avez créé. Pour plus d'informations, consultez la documentation en ligne de Kubernetes à l'adresse. [https://kubernetes.io/docs/concepts/storage/](https://kubernetes.io/docs/concepts/storage/)

## Désinstaller les pilotes
<a name="uninstall-smb-csi"></a>

**Pour désinstaller les pilotes Kubernetes SMB CSI :**
+ À partir d'un terminal de ligne de commande ayant accès à `kubectl` votre cluster Kubernetes, exécutez la commande suivante :

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