Arbeiten mit SMB-CSI-Treibern - AWS Storage Gateway

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Arbeiten mit SMB-CSI-Treibern

Folgen Sie den Verfahren in diesem Abschnitt, um die CSI-Treiber zu installieren, zu konfigurieren oder zu löschen, die für die Verwendung einer SMB-Dateifreigabe auf einem Amazon S3 File Gateway für die Speicherung in Ihrem Kubernetes-Cluster erforderlich sind. Weitere Informationen finden Sie in der Open-Source-Dokumentation zum SMB-CSI-Treiber unter. GitHub https://github.com/kubernetes-csi/csi-driver-smb/blob/master/docs/install-csi-driver-master.md

Anmerkung

Wenn Sie ein PersistentVolume Objekt oder ein StorageClass Objekt erstellen, können Sie einen ReclaimPolicy Parameter angeben, um zu bestimmen, was mit dem externen Speicher passiert, wenn Objekte gelöscht werden. Der SMB-CSI-Treiber unterstützt die Recycle Optionen Retain und, unterstützt derzeit jedoch keine Delete Option.

Installieren Sie die Treiber

So installieren Sie die Kubernetes SMB CSI-Treiber:
  1. Führen Sie in einem Befehlszeilenterminal mit Zugriff auf Ihren Kubernetes-Cluster den folgenden Befehl aus: kubectl

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

  2. Warten Sie, bis der vorherige Befehl abgeschlossen ist, und stellen Sie dann mithilfe der folgenden Befehle sicher, dass die CSI-Treiber-Pods ausgeführt werden:

    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

    Die Ausgabe sollte folgendermaßen oder ähnlich aussehen:

    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

Erstellen Sie ein SMB-Objekt StorageClass

Um ein neues StorageClass SMB-Objekt für Ihren Kubernetes-Cluster zu erstellen:
  1. Erstellen Sie eine Konfigurationsdatei storageclass.yaml mit einem Namen, der dem folgenden Beispiel ähnelt. Ersetzen Sie die angezeigten Informationen durch Ihre eigenen bereitstellungsspezifischen Informationen. 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. Führen Sie in einem Befehlszeilenterminal mit Zugriff auf kubectl und den folgenden storageclass.yaml Befehl aus:

    kubectl apply -f storageclass.yaml

    Anmerkung

    Sie können den auch erstellen, StorageClass indem Sie den .yaml Konfigurationstext aus dem vorherigen Schritt für die meisten Kubernetes-Verwaltungs- und Containerisierungsplattformen von Drittanbietern bereitstellen.

  3. Konfigurieren Sie die Pods in Ihrem Kubernetes-Cluster so, dass sie die von Ihnen erstellten Pods verwenden. StorageClass Weitere Informationen finden Sie in der Kubernetes-Online-Dokumentation unter. https://kubernetes.io/docs/concepts/storage/

SMB und Objekte PersistentVolume erstellen PersistentVolumeClaim

Um neue SMB PersistentVolume und PersistentVolumeClaim Objekte zu erstellen:
  1. Erstellen Sie zwei Konfigurationsdateien. Eine benannte persistentvolume.yaml und eine benanntepersistentvolumeclaim.yaml.

  2. Fügen Sie für Inhalte hinzupersistentvolume.yaml, die dem folgenden Beispiel ähneln. Ersetzen Sie die angezeigten Informationen durch Ihre eigenen einsatzspezifischen Informationen. 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. Fügen Sie für Inhalte hinzupersistentvolumeclaim.yaml, die dem folgenden Beispiel ähneln. Ersetzen Sie die angezeigten Informationen durch Ihre eigenen einsatzspezifischen Informationen. 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. Führen Sie in einem Befehlszeilenterminal mit Zugriff auf kubectl und beide von Ihnen erstellten .yaml Dateien die folgenden Befehle aus:

    kubectl apply -f persistentvolume.yaml

    kubectl apply -f persistentvolumeclaim.yaml

    Anmerkung

    Sie können die PersistentVolumeClaim Objekte PersistentVolume und auch erstellen, indem Sie den .yaml Konfigurationstext aus dem vorherigen Schritt für die meisten Kubernetes-Verwaltungs- und Containerisierungsplattformen von Drittanbietern bereitstellen.

  5. Konfigurieren Sie die Pods in Ihrem Kubernetes-Cluster so, dass sie die von Ihnen erstellten Pods verwenden. PersistentVolumeClaim Weitere Informationen finden Sie in der Kubernetes-Online-Dokumentation unter. https://kubernetes.io/docs/concepts/storage/

Deinstallieren Sie die Treiber

So deinstallieren Sie die Kubernetes SMB CSI-Treiber:
  • Führen Sie in einem Befehlszeilenterminal mit Zugriff auf Ihren Kubernetes-Cluster den folgenden Befehl aus: kubectl

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