Lavorare con i driver CSI SMB - AWS Storage Gateway

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Lavorare con i driver CSI SMB

Segui le procedure in questa sezione per installare, configurare o eliminare i driver CSI necessari per utilizzare una condivisione di file SMB su un Amazon S3 File Gateway per lo storage nel tuo cluster Kubernetes. Per ulteriori informazioni, consulta la documentazione del driver SMB CSI open source all'indirizzo. GitHub https://github.com/kubernetes-csi/csi-driver-smb/blob/master/docs/install-csi-driver-master.md

Nota

Quando si crea un PersistentVolume oggetto o un StorageClass oggetto, è possibile specificare un ReclaimPolicy parametro per determinare cosa succede allo storage esterno quando gli oggetti vengono eliminati. Il driver CSI SMB supporta le Recycle opzioni Retain and, ma attualmente non supporta alcuna opzione. Delete

Installa i driver

Per installare i driver CSI di Kubernetes SMB:
  1. Da un terminale a riga di comando con accesso al tuo cluster Kubernetes, kubectl esegui il seguente comando:

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

  2. Attendi il completamento del comando precedente, quindi usa i seguenti comandi per assicurarti che i driver pod CSI siano in esecuzione:

    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

    L'output visualizzato dovrebbe essere simile al seguente:

    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

Create un oggetto SMB StorageClass

Per creare un nuovo StorageClass oggetto SMB per il tuo cluster Kubernetes:
  1. Crea un file di configurazione denominato storageclass.yaml con contenuti simili all'esempio seguente. Sostituisci le tue informazioni specifiche sulla distribuzione con quelle mostrate. 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
  2. Da un terminale a riga di comando con accesso e, esegui il seguente comando: kubectl storageclass.yaml

    kubectl apply -f storageclass.yaml

    Nota

    Puoi anche crearlo StorageClass fornendo il testo di .yaml configurazione del passaggio precedente alla maggior parte delle piattaforme di gestione e containerizzazione Kubernetes di terze parti.

  3. Configura i pod nel tuo cluster Kubernetes per utilizzare quelli nuovi che hai creato. StorageClass Per ulteriori informazioni, consulta la documentazione online di Kubernetes all'indirizzo. https://kubernetes.io/docs/concepts/storage/

Crea SMB e oggetti PersistentVolume PersistentVolumeClaim

Per creare nuovi SMB PersistentVolume e PersistentVolumeClaim oggetti:
  1. Crea due file di configurazione. Uno con nome persistentvolume.yaml e uno con nomepersistentvolumeclaim.yaml.

  2. Perpersistentvolume.yaml, aggiungi contenuti simili all'esempio seguente. Sostituisci le tue informazioni specifiche sulla distribuzione con quelle mostrate. 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
  3. Perpersistentvolumeclaim.yaml, aggiungete contenuti simili all'esempio seguente. Sostituisci le tue informazioni specifiche sulla distribuzione con quelle mostrate. 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: ""
  4. Da un terminale a riga di comando con accesso a entrambi kubectl i .yaml file creati, esegui i seguenti comandi:

    kubectl apply -f persistentvolume.yaml

    kubectl apply -f persistentvolumeclaim.yaml

    Nota

    Puoi anche creare PersistentVolumeClaim gli oggetti PersistentVolume and fornendo il testo di .yaml configurazione del passaggio precedente alla maggior parte delle piattaforme di gestione e containerizzazione Kubernetes di terze parti.

  5. Configura i pod nel tuo cluster Kubernetes per utilizzare quelli nuovi che hai creato. PersistentVolumeClaim Per ulteriori informazioni, consulta la documentazione online di Kubernetes all'indirizzo. https://kubernetes.io/docs/concepts/storage/

Disinstalla i driver

Per disinstallare i driver CSI di Kubernetes SMB:
  • Da un terminale a riga di comando con accesso al tuo cluster Kubernetes, kubectl esegui il seguente comando:

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