Verwenden des Container Storage Interface-Treibers (CSI) von Azure Files in Azure Kubernetes Service (AKS)

Der CSI-Treiber (Container Storage Interface) von Azure Files ist ein mit der CSI-Spezifikation konformer Treiber, der von Azure Kubernetes Service (AKS) zum Verwalten des Lebenszyklus von Azure-Dateifreigaben verwendet wird. CSI ist ein Standard für die Bereitstellung beliebiger Block- und Dateispeichersysteme für containerisierte Workloads in Kubernetes.

Durch die Einführung und Verwendung von CSI kann AKS nun Plug-Ins schreiben, bereitstellen und durchlaufen, um neue Speichersysteme in Kubernetes verfügbar zu machen oder vorhandene Speichersysteme in Kubernetes zu verbessern. Bei Verwendung von CSI-Treibern in AKS muss weder der Kerncode von Kubernetes geändert noch auf dessen Releasezyklen gewartet werden.

Informationen zum Erstellen eines AKS-Clusters mit CSI-Treiberunterstützung finden Sie unter Aktivieren von CSI-Treibern (Container Storage Interface) für Azure-Datenträger und Azure Files in Azure Kubernetes Service (AKS).

Hinweis

Strukturinterne Treiber sind die aktuellen Speichertreiber, die Teil des Kubernetes-Kerncodes sind, also nicht die neuen CSI-Treiber, die als Plug-Ins bereitgestellt werden.

Neue Features des Azure Files-CSI-Treibers

Zusätzlich zu den Features des ursprünglichen Strukturtreibers unterstützt der Azure Files-CSI-Treiber folgende neue Features:

  • NFS-Version 4.1 (Network File System, Netzwerkdateisystem)
  • Privater Endpunkt
  • Paralleles Erstellen umfangreicher Einbindungen von Dateifreigaben

Verwenden eines persistenten Volumes mit Azure Files

Ein persistentes Volume (PV) stellt ein Speicherelement dar, das für die Verwendung mit Kubernetes-Pods bereitgestellt wurde. Ein persistentes Volume kann von einem oder mehreren Pods verwendet und dynamisch oder statisch bereitgestellt werden. Wenn mehrere Pods gleichzeitig Zugriff auf das gleiche Speichervolume benötigen, können Sie Azure Files verwenden, um eine Verbindung mithilfe des SMB-Protokolls (Server Message Block) oder mithilfe des NFS-Protokolls herzustellen. In diesem Artikel wird gezeigt, wie Sie dynamisch eine Azure Files-Freigabe erstellen, die von mehreren Pods in einem AKS-Cluster verwendet wird. Informationen zur statischen Bereitstellung finden Sie unter Manuelles Erstellen und Verwenden eines Volumes mit Azure Files-Freigabe.

Bei Azure Files-Freigaben gibt es keine Beschränkung bei der Anzahl, die auf einem Knoten eingebunden werden kann.

Weitere Informationen zu Kubernetes-Volumes finden Sie unter Speicheroptionen für Anwendungen in AKS.

Dynamisches Erstellen von persistenten Azure Files-Volumes mithilfe der integrierten Speicherklassen

Mit einer Speicherklasse wird festgelegt, wie eine Azure-Dateifreigabe erstellt wird. Es wird automatisch ein Speicherkonto in der Knotenressourcengruppe für die Verwendung mit der Speicherklasse erstellt, in dem die Azure-Dateifreigabe gespeichert wird. Wählen Sie für skuName eine der folgenden Azure-Speicherredundanz-SKUs aus:

  • Standard_LRS: Standard – lokal redundanter Speicher
  • Standard_GRS: Standard – georedundanter Speicher
  • Standard_ZRS: Standard – zonenredundanter Speicher
  • Standard_RAGRS: Standard – georedundanter Speicher mit Lesezugriff
  • Standard_RAGRS: Geozonenredundanter Standardspeicher mit Lesezugriff (Standard-RA-GRS)
  • Premium_LRS: Premium – lokal redundanter Speicher
  • Premium_ZRS: zonenredundanter Premiumspeicher (ZRS)

Hinweis

Azure Files unterstützt Azure Premium-Dateifreigaben. Die kleinstmögliche Kapazität für Dateifreigaben beträgt 100 GiB. Es wird empfohlen, Azure Premium-Dateifreigaben anstelle von Standard-Dateifreigaben zu verwenden, da Premium-Dateifreigaben eine höhere Leistung und die Unterstützung von Datenträgern mit geringer Latenz für E/A-intensive Workloads bieten.

Wenn Sie CSI-Speichertreiber in AKS verwenden, gibt es zwei zusätzliche integrierte Speicherklassen (StorageClasses), die die Azure Files-CSI-Speichertreiber verwenden. Die anderen CSI-Speicherklassen werden zusammen mit dem Cluster und zusätzlich zu den Standardspeicherklassen in der Struktur erstellt.

  • azurefile-csi: Verwendet Azure Storage Standard zum Erstellen einer Azure-Dateifreigabe.
  • azurefile-csi-premium: Verwendet Azure Storage Premium zum Erstellen einer Azure-Dateifreigabe.

Die Freigaberichtlinie für beide Speicherklassen stellt sicher, dass beim Löschen eines persistenten Volumes auch die zugrunde liegende Azure Files Freigabe gelöscht wird. Mit der Speicherklasse werden auch die Dateifreigaben so konfiguriert, dass sie erweiterbar sind. Sie müssen lediglich den Anspruch auf ein persistentes Volume (Persistent Volume Claim, PVC) an die neue Größe anpassen.

Um diese Speicherklassen zu verwenden, erstellen Sie einen PVC und den entsprechenden Pod, der auf diesen verweist und ihn verwendet. Ein Anspruch auf ein persistentes Volume wird verwendet, um basierend auf einer Speicherklasse automatisch Speicher bereitzustellen. Ein Anspruch auf ein persistentes Volume kann eine der vorab erstellten Speicherklassen oder eine benutzerdefinierte Speicherklasse verwenden, um eine Azure-Dateifreigabe für die gewünschte SKU und Größe zu erstellen. Wenn Sie eine Poddefinition erstellen, wird der Anspruch auf ein persistentes Volume angegeben, um den gewünschten Speicher anzufordern.

Erstellen Sie mithilfe der folgenden Befehle vom Typ kubectl apply einen Beispielanspruch auf ein persistentes Volume sowie einen Pod, der das aktuelle Datum in eine Ausgabedatei (outfile) ausgibt:

kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/azurefile-csi-driver/master/deploy/example/pvc-azurefile-csi.yaml
kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/azurefile-csi-driver/master/deploy/example/nginx-pod-azurefile.yaml

Die Ausgabe des Befehls sieht in etwa wie im folgenden Beispiel aus:

persistentvolumeclaim/pvc-azurefile created
pod/nginx-azurefile created

Wenn der Pod den Status „Wird ausgeführt“ aufweist, können Sie überprüfen, ob die Dateifreigabe ordnungsgemäß eingebunden wurde, indem Sie den folgenden Befehl ausführen. Überprüfen Sie dann, ob die Ausgabe das outfile enthält:

kubectl exec nginx-azurefile -- ls -l /mnt/azurefile

Die Ausgabe des Befehls sieht in etwa wie im folgenden Beispiel aus:

total 29
-rwxrwxrwx 1 root root 29348 Aug 31 21:59 outfile

Erstellen einer benutzerdefinierten Speicherklasse

Die Standardspeicherklassen eignen sich für die gängigsten Szenarien, aber nicht für alle. In einigen Fällen möchten Sie möglicherweise Ihre eigene Speicherklasse mit eigenen Parametern anpassen. Verwenden Sie z. B. das folgende Manifest, um die mountOptions der Dateifreigabe zu konfigurieren.

Der Standardwert für fileMode und dirMode lautet bei in Kubernetes eingebundenen Dateifreigaben 0777. Sie können die verschiedenen Einbindungsoptionen im Speicherklassenobjekt angeben.

Erstellen Sie eine Datei mit dem Namen azure-file-sc.yaml, und fügen Sie das folgende Beispielmanifest ein:

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: my-azurefile
provisioner: file.csi.azure.com
reclaimPolicy: Delete
volumeBindingMode: Immediate
allowVolumeExpansion: true
mountOptions:
  - dir_mode=0640
  - file_mode=0640
  - uid=0
  - gid=0
  - mfsymlinks
  - cache=strict # https://linux.die.net/man/8/mount.cifs
  - nosharesock
parameters:
  skuName: Standard_LRS

Führen Sie den folgenden Befehl vom Typ kubectl apply aus, um die Speicherklasse zu erstellen:

kubectl apply -f azure-file-sc.yaml

Die Ausgabe des Befehls sieht in etwa wie im folgenden Beispiel aus:

storageclass.storage.k8s.io/my-azurefile created

Der Azure Files-CSI-Treiber unterstützt das Erstellen von Momentaufnahmen von permanenten Volumes und den zugrunde liegenden Dateifreigaben.

Hinweis

Dieser Treiber unterstützt nur die Erstellung von Momentaufnahmen. Die Wiederherstellung aus Momentaufnahmen wird von diesem Treiber nicht unterstützt. Momentaufnahmen können über das Azure-Portal oder über die CLI wiederhergestellt werden. Weitere Informationen zum Erstellen und Wiederherstellen einer Momentaufnahme finden Sie unter Übersicht über Freigabemomentaufnahmen für Azure Files.

Verwenden Sie den Befehl kubectl apply zum Erstellen einer Momentaufnahmeklasse für das Volume:

kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/azurefile-csi-driver/master/deploy/example/snapshot/volumesnapshotclass-azurefile.yaml

Die Ausgabe des Befehls sieht in etwa wie im folgenden Beispiel aus:

volumesnapshotclass.snapshot.storage.k8s.io/csi-azurefile-vsc created

Erstellen Sie eine Volumemomentaufnahme mit dem Anspruch auf ein persistentes Volume, den Sie zu Beginn dieses Tutorials dynamisch erstellt haben (pvc-azurefile).

kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/azurefile-csi-driver/master/deploy/example/snapshot/volumesnapshot-azurefile.yaml

Die Ausgabe des Befehls sieht in etwa wie im folgenden Beispiel aus:

volumesnapshot.snapshot.storage.k8s.io/azurefile-volume-snapshot created

Führen Sie den folgenden Befehl aus, um sich zu vergewissern, dass die Momentaufnahme ordnungsgemäß erstellt wurde:

kubectl describe volumesnapshot azurefile-volume-snapshot

Die Ausgabe des Befehls sieht in etwa wie im folgenden Beispiel aus:

Name:         azurefile-volume-snapshot
Namespace:    default
Labels:       <none>
Annotations:  API Version:  snapshot.storage.k8s.io/v1beta1
Kind:         VolumeSnapshot
Metadata:
  Creation Timestamp:  2020-08-27T22:37:41Z
  Finalizers:
    snapshot.storage.kubernetes.io/volumesnapshot-as-source-protection
    snapshot.storage.kubernetes.io/volumesnapshot-bound-protection
  Generation:        1
  Resource Version:  955091
  Self Link:         /apis/snapshot.storage.k8s.io/v1beta1/namespaces/default/volumesnapshots/azurefile-volume-snapshot
  UID:               c359a38f-35c1-4fb1-9da9-2c06d35ca0f4
Spec:
  Source:
    Persistent Volume Claim Name:  pvc-azurefile
  Volume Snapshot Class Name:      csi-azurefile-vsc
Status:
  Bound Volume Snapshot Content Name:  snapcontent-c359a38f-35c1-4fb1-9da9-2c06d35ca0f4
  Ready To Use:                        false
Events:                                <none>

Ändern der Größe eines persistenten Volumes

Sie können ein größeres Volume für einen Anspruch auf ein persistentes Volume anfordern. Bearbeiten Sie das PVC-Objekt, und geben Sie eine höhere Größe an. Diese Änderung löst die Erweiterung des zugrunde liegenden Volumes für den Anspruch auf ein persistentes Volume aus.

Hinweis

Für den Anspruch wird nie ein neues persistentes Volume erstellt. Stattdessen wird die Größe eines vorhandenen Volumes geändert.

Das Verkleinern persistenter Volumes wird derzeit nicht unterstützt.

In AKS unterstützt die integrierte Speicherklasse azurefile-csi bereits Erweiterungen. Verwenden Sie daher den zuvor erstellten Anspruch auf ein persistentes Volume mit dieser Speicherklasse. Der Anspruch auf ein persistentes Volume hat eine 100 GiB große Dateifreigabe angefordert. Sie können dies überprüfen, indem Sie Folgendes ausführen:

kubectl exec -it nginx-azurefile -- df -h /mnt/azurefile

Die Ausgabe des Befehls sieht in etwa wie im folgenden Beispiel aus:

Filesystem                                                                                Size  Used Avail Use% Mounted on
//f149b5a219bd34caeb07de9.file.core.windows.net/pvc-5e5d9980-da38-492b-8581-17e3cad01770  100G  128K  100G   1% /mnt/azurefile

Vergrößern Sie das Feld spec.resources.requests.storage, um den Anspruch auf ein persistentes Volume zu erweitern:

kubectl patch pvc pvc-azurefile --type merge --patch '{"spec": {"resources": {"requests": {"storage": "200Gi"}}}}'

Die Ausgabe des Befehls sieht in etwa wie im folgenden Beispiel aus:

persistentvolumeclaim/pvc-azurefile patched

Überprüfen Sie, ob sowohl der Anspruch auf ein persistentes Volume als auch das Dateisystem im Pod die neue Größe aufweisen:

kubectl get pvc pvc-azurefile
NAME            STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS    AGE
pvc-azurefile   Bound    pvc-5e5d9980-da38-492b-8581-17e3cad01770   200Gi      RWX            azurefile-csi   64m

kubectl exec -it nginx-azurefile -- df -h /mnt/azurefile
Filesystem                                                                                Size  Used Avail Use% Mounted on
//f149b5a219bd34caeb07de9.file.core.windows.net/pvc-5e5d9980-da38-492b-8581-17e3cad01770  200G  128K  200G   1% /mnt/azurefile

Verwenden eines persistenten Volumes mit privatem Azure Files-Speicher (privater Endpunkt)

Wenn Ihre Azure Files-Ressourcen durch einen privaten Endpunkt geschützt sind, müssen Sie Ihre eigene Speicherklasse erstellen. Stellen Sie sicher, dass Sie Ihre DNS-Einstellungen so konfiguriert haben, dass die IP-Adresse des privaten Endpunkts in den FQDN der Verbindungszeichenfolge aufgelöst wird. Passen Sie die folgenden Parameter an:

  • resourceGroup: Die Ressourcengruppe, in der das Speicherkonto bereitgestellt wurde.
  • storageAccount: Der Name des Speicherkontos.
  • server: Der FQDN des privaten Endpunkts des Speicherkontos.

Erstellen Sie eine Datei mit dem Namen private-azure-file-sc.yaml, und fügen Sie dann das folgende Beispielmanifest in die Datei ein. Ersetzen Sie die Werte für <resourceGroup> und <storageAccountName>.

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: private-azurefile-csi
provisioner: file.csi.azure.com
allowVolumeExpansion: true
parameters:
  resourceGroup: <resourceGroup>
  storageAccount: <storageAccountName>
  server: <storageAccountName>.file.core.windows.net
reclaimPolicy: Delete
volumeBindingMode: Immediate
mountOptions:
  - dir_mode=0777
  - file_mode=0777
  - uid=0
  - gid=0
  - mfsymlinks
  - cache=strict  # https://linux.die.net/man/8/mount.cifs
  - nosharesock  # reduce probability of reconnect race
  - actimeo=30  # reduce latency for metadata-heavy workload

Verwenden Sie den Befehl kubectl apply, um die Speicherklasse zu erstellen:

kubectl apply -f private-azure-file-sc.yaml

Die Ausgabe des Befehls sieht in etwa wie im folgenden Beispiel aus:

storageclass.storage.k8s.io/private-azurefile-csi created

Erstellen Sie eine Datei mit dem Namen private-pvc.yaml, und fügen Sie dann das folgende Beispielmanifest in die Datei ein:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: private-azurefile-pvc
spec:
  accessModes:
    - ReadWriteMany
  storageClassName: private-azurefile-csi
  resources:
    requests:
      storage: 100Gi

Erstellen Sie den Anspruch auf ein persistentes Volume mit dem Befehl kubectl apply:

kubectl apply -f private-pvc.yaml

NFS-Dateifreigaben

Azure Files unterstützt das NFS v4.1-Protokoll. Dank der Unterstützung der NFS-Version 4.1 für Azure Files steht Ihnen ein vollständig verwaltetes NFS-Dateisystem als Dienst zur Verfügung, der auf einer hochverfügbaren, überaus robusten, verteilten und resilienten Speicherplattform basiert.

Diese Option ist für Workloads mit zufälligem Zugriff und direkten Datenaktualisierungen optimiert und bietet vollständige Unterstützung für POSIX-Dateisysteme. In diesem Abschnitt erfahren Sie, wie Sie NFS-Freigaben mit dem Azure Files-CSI-Treiber in einem AKS-Cluster verwenden.

Voraussetzungen

  • Ihre Identität auf Steuerungsebene für den AKS-Cluster (also Ihr AKS-Clustername) wird der Rolle Mitwirkender für VNet und NetworkSecurityGroup hinzugefügt.
  • Der Dienstprinzipal oder die verwaltete Dienstidentität (Managed Service Identity, MSI) des AKS-Clusters muss der Rolle „Mitwirkender“ für das Speicherkonto hinzugefügt werden.

Hinweis

Sie können einen privaten Endpunkt verwenden, anstatt den Zugriff auf das ausgewählte VNet zuzulassen.

Optimieren von Optionen für Lese- und Schreibgröße

In diesem Abschnitt finden Sie Informationen dazu, wie Sie die Leistung von NFS mit dem Azure Files-CSI-Treiber und den Optionen rsize und wsize optimieren. Die Optionen „rsize“ und „wsize“ legen die maximale Übertragungsgröße eines NFS-Vorgangs fest. Wenn „rsize“ oder „wsize“ beim Einbinden nicht angegeben werden, handeln Client und Server die höchste von beiden unterstützte Größe aus. Derzeit unterstützen sowohl Azure NetApp Files als auch moderne Linux-Distributionen Lese- und Schreibgrößen von bis zu 1.048.576 Bytes (1 MiB).

Für eine optimale Leistung muss die Client-Server-Kommunikation möglichst effizient sein. Das Erhöhen oder Verringern der Werte für Lese- und Schreibgröße der Bereitstellung kann die NFS-Leistung verbessern. Die Standardgröße der zwischen Client und Server übertragenen Lese-/Schreibpakete beträgt 8 KB für NFS Version 2 und 32 KB für NFS Version 3 und 4. Diese Standardwerte können zu groß oder zu klein sein. Die Reduzierung von „rsize“ und „wsize“ kann die NFS-Leistung in einem überlasteten Netzwerk verbessern, indem kleinere Pakete für jede NFS-Leseantwort und -Schreibanforderung gesendet werden. Dies kann jedoch die Anzahl der Pakete erhöhen, die zum Senden von Daten über das Netzwerk erforderlich sind, wodurch wiederum der Netzwerkdatenverkehr und die CPU-Auslastung insgesamt auf Client und Server erhöht werden.

Es ist wichtig Tests durchzuführen, um Werte für „rsize“ und „wsize“ zu bestimmen, die eine effiziente Paketübertragung unterstützen, ohne den Durchsatz zu verringern oder die Latenz zu erhöhen.

Weitere Informationen zum Optimieren von „rsize“ und „wsize“ finden Sie unter Bewährte Methoden für die Linux-NFS-Einbindungsoptionen für Azure NetApp Files.

Um beispielsweise einen Höchstwert von 256 KiB für rsize und wsize festzulegen, konfigurieren Sie die mountOptions in der Speicherklasse wie folgt:

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: azurefile-csi-nfs
provisioner: file.csi.azure.com
allowVolumeExpansion: true
parameters:
  protocol: nfs
mountOptions:
  - nconnect=4
  - noresvport
  - actimeo=30
  - rsize=262144
  - wsize=262144

Erstellen einer Speicherklasse für die NFS-Dateifreigabe

Erstellen Sie eine Datei namens nfs-sc.yaml, und kopieren Sie das folgende Manifest: Eine Liste der unterstützten mountOptions finden Sie unter NFS-Einbindungsoptionen.

Hinweis

vers, minorversion, sec werden vom Azure File CSI-Treiber konfiguriert. Das Angeben eines Werts in Ihrem Manifest für diese Eigenschaften wird nicht unterstützt.

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: azurefile-csi-nfs
provisioner: file.csi.azure.com
allowVolumeExpansion: true
parameters:
  protocol: nfs
mountOptions:
  - nconnect=4
  - noresvport
  - actimeo=30

Erstellen Sie nach dem Bearbeiten und Speichern der Datei die Speicherklasse mit dem Befehl kubectl apply:

kubectl apply -f nfs-sc.yaml

Die Ausgabe des Befehls sieht in etwa wie im folgenden Beispiel aus:

storageclass.storage.k8s.io/azurefile-csi-nfs created

Erstellen einer Bereitstellung mit einer NFS-gestützten Dateifreigabe

Sie können ein exemplarisches StatefulSet-Objekt bereitstellen, das Zeitstempel in einer Datei data.txt speichert, indem Sie den Befehl kubectl apply ausführen:

kubectl apply -f

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: statefulset-azurefile
  labels:
    app: nginx
spec:
  podManagementPolicy: Parallel  # default is OrderedReady
  serviceName: statefulset-azurefile
  replicas: 1
  template:
    metadata:
      labels:
        app: nginx
    spec:
      nodeSelector:
        "kubernetes.io/os": linux
      containers:
        - name: statefulset-azurefile
          image: mcr.microsoft.com/oss/nginx/nginx:1.19.5
          command:
            - "/bin/bash"
            - "-c"
            - set -euo pipefail; while true; do echo $(date) >> /mnt/azurefile/outfile; sleep 1; done
          volumeMounts:
            - name: persistent-storage
              mountPath: /mnt/azurefile
  updateStrategy:
    type: RollingUpdate
  selector:
    matchLabels:
      app: nginx
  volumeClaimTemplates:
    - metadata:
        name: persistent-storage
      spec:
        storageClassName: azurefile-csi-nfs
        accessModes: ["ReadWriteMany"]
        resources:
          requests:
            storage: 100Gi

Die Ausgabe des Befehls sieht in etwa wie im folgenden Beispiel aus:

statefulset.apps/statefulset-azurefile created

Führen Sie den folgenden Befehl aus, um den Inhalt des Volumes zu überprüfen:

kubectl exec -it statefulset-azurefile-0 -- df -h

Die Ausgabe des Befehls sieht in etwa wie im folgenden Beispiel aus:

Filesystem      Size  Used Avail Use% Mounted on
...
/dev/sda1                                                                                 29G   11G   19G  37% /etc/hosts
accountname.file.core.windows.net:/accountname/pvc-fa72ec43-ae64-42e4-a8a2-556606f5da38  100G     0  100G   0% /mnt/azurefile
...

Hinweis

Hinweis: Da die NFS-Dateifreigabe einem Premium-Konto angehört, beträgt die Mindestgröße für die Dateifreigabe 100 GiB. Wenn Sie einen PVC mit geringer Speichergröße erstellen, tritt möglicherweise ein Fehler wie der folgende auf: Fehler beim Erstellen der Dateifreigabe... Größe (5)....

Windows-Container

Der Azure Files-CSI-Treiber unterstützt auch Windows-Knoten und -Container. Wenn Sie Windows-Container verwenden möchten, gehen Sie wie in der Schnellstartanleitung für Windows-Container beschrieben vor, um einen Windows-Knotenpool hinzuzufügen.

Wenn Sie über einen Windows-Knotenpool verfügen, können Sie die integrierten Speicherklassen wie azurefile-csi verwenden oder eine benutzerdefinierte Speicherklasse erstellen. Sie können ein exemplarisches Windows-basiertes StatefulSet-Objekt bereitstellen, das Zeitstempel in einer Datei (data.txt) speichert, indem Sie den Befehl kubectl apply ausführen:

kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/azurefile-csi-driver/master/deploy/example/windows/statefulset.yaml

Die Ausgabe des Befehls sieht in etwa wie im folgenden Beispiel aus:

statefulset.apps/busybox-azurefile created

Führen Sie den folgenden Befehl vom Typ kubectl exec aus, um den Inhalt des Volumes zu überprüfen:

kubectl exec -it busybox-azurefile-0 -- cat c:\\mnt\\azurefile\\data.txt # on Linux/MacOS Bash
kubectl exec -it busybox-azurefile-0 -- cat c:\mnt\azurefile\data.txt # on Windows Powershell/CMD

Die Ausgabe der Befehle sieht in etwa wie im folgenden Beispiel aus:

2020-08-27 22:11:01Z
2020-08-27 22:11:02Z
2020-08-27 22:11:04Z
(...)

Nächste Schritte