Azure File-Freigabe verwenden
GKE on Azure unterstützt die Bereitstellung von Azure Files-Freigaben. Wenn Sie bereits eine Azure-Dateifreigabe zur Verwendung mit GKE on Azure haben, können Sie ein PersistentVolume-Objekt (PV) erstellen und dieses für eine bestimmte PersistentVolumeClaim (PVC) reservieren.
Auf dieser Seite wird erläutert, wie Sie mithilfe eines vorhandenen, mit Daten gefüllten Teils ein PV erstellen und in einem Pod verwenden.
Hinweis
- Mit dem Cluster verbinden
- Sie haben Zugriff auf eine Azure-Dateifreigabe oder erstellen eine. Weitere Informationen finden Sie unter Azure-Dateifreigabe erstellen.
Informationen zum Azure-Speicherkonto speichern
GKE on Azure speichert Informationen für den Zugriff auf Ihr Azure-Speicherkonto in einem Secret. Wenn Sie in Ihrem Cluster kein Secret erstellt haben, müssen Sie eines hinzufügen. Wenn sich dieses Secret in Ihrem Cluster befindet, fahren Sie mit PersistentVolume für eine bereits vorhandene Freigabe erstellen fort.
Kopieren Sie zum Erstellen des Secrets das folgende Manifest in eine Datei mit dem Namen „azure-service-account-key.yaml“.
--- apiVersion: v1 kind: Secret metadata: name: azure-secret-account-key type: Opaque stringData: accountname: STORAGE_ACCOUNT_NAME accountkey: STORAGE_ACCOUNT_KEY
Dabei gilt:
- STORAGE_ACCOUNT_NAME: Name Ihres Azure-Speicherkontos
- STORAGE_ACCOUNT_KEY: der Schlüssel des Azure-Speicherkontos
Wenden Sie die Datei mit dem
kubectl
-Tool auf Ihren Cluster an:kubectl apply -f azure-service-account-key.yaml
PersistentVolume für einen bereits vorhandenen Teil erstellen
Sie importieren eine vorhandene Azure-Dateifreigabe, indem Sie ein neues PV in Ihrem Cluster angeben. So erstellen Sie das PV:
Kopieren Sie das folgende YAML-Manifest in eine Datei mit dem Namen
existing-volume.yaml
:apiVersion: v1 kind: PersistentVolume metadata: name: VOLUME_NAME spec: capacity: storage: VOLUME_CAPACITY storageClassName: standard-rwx accessModes: - ReadWriteMany persistentVolumeReclaimPolicy: Retain csi: driver: file.csi.azure.com readOnly: false volumeHandle: VOLUME_ID
Dabei gilt:
- VOLUME_NAME: ein Name für das Volume
- VOLUME_CAPACITY: Größe des Volumes. Beispiel:
30Gi
Weitere Informationen zum Angeben der Volume-Kapazität in Kubernetes finden Sie unter Bedeutung des Arbeitsspeichers. - VOLUME_ID: eine eindeutige ID für das Volume, formatiert als String von
RESOURCE_GROUP_NAME#STORAGE_ACCOUNT_NAME#FILESHARE_NAME#
, wobei gilt - FILE_SHARE_NAME: der Name der Azure File-Freigabe
Wenn sich Ihr Speicherkonto in einer anderen Ressourcengruppe als Ihr Cluster befindet, müssen Sie einem Secret, das Ihren Speicherkontoschlüssel enthält, eine Referenz hinzufügen. Fügen Sie im Abschnitt
spec.csi
Folgendes ein, um die Referenz hinzuzufügen:# Optional. Only required if your storageAccount is in a different resource group than the cluster. nodeStageSecretRef: name: NODE_STAGE_SECRET_NAME namespace: NODE_STAGE_SECRET_NAMESPACE
Dabei gilt:
- NODE_STAGE_SECRET_NAME: der Name des Secrets
- NODE_STAGE_SECRET_NAMESPACE: der Namespace, der das Secret enthält
Wenden Sie die YAML-Datei auf Ihren Cluster an.
kubectl apply -f existing-volume.yaml
Bestätigen Sie mit
kubectl describe pv
, dass das PV erstellt wurde.kubectl describe pv VOLUME_NAME
Die Ausgabe dieses Befehls enthält den Status des PV.
Volume mit einem PersistentVolumeClaim und einem Pod verwenden
Nachdem Sie das Volume importiert haben, können Sie einen PVC und einen Pod erstellen, der den PVC bereitstellt.
Mit der folgenden YAML-Datei wird ein PVC erstellt und an einen Pod angehängt, auf dem der Nginx-Webserver ausgeführt wird. Kopieren Sie ihn in eine Datei mit dem Namen
nginx.yaml
.apiVersion: v1 kind: PersistentVolumeClaim metadata: name: my-pvc spec: storageClassName: STORAGE_CLASS_NAME volumeName: VOLUME_NAME accessModes: - ACCESS_MODE resources: requests: storage: VOLUME_CAPACITY --- apiVersion: v1 kind: Pod metadata: name: web-server spec: containers: - name: web-server image: nginx volumeMounts: - mountPath: /var/lib/www/html name: data volumes: - name: data persistentVolumeClaim: claimName: my-pvc
Dabei gilt:
- STORAGE_CLASS: der Name der StorageClass aus dem zuvor erstellten PersistentVolume. Beispiel:
standard-rwo
- ACCESS_MODE: Zugriffsmodus des Volumes. Für Azure Disk verwenden Sie
ReadWriteOnce
. Für Azure File verwenden SieReadWriteMany
. - VOLUME_CAPACITY: Größe des Volumes. Beispiel:
30Gi
.
- STORAGE_CLASS: der Name der StorageClass aus dem zuvor erstellten PersistentVolume. Beispiel:
Wenden Sie die YAML-Datei auf Ihren Cluster an.
kubectl apply -f nginx.yaml
Prüfen Sie den Status der Nginx-Instanz mit
kubectl describe
. In der Ausgabe sollteRunning
alsSTATUS
enthalten sein.kubectl describe pod web-server
Verwenden Sie den Befehl
kubectl delete
, um den Pod zu löschen.kubectl delete -f nginx.yaml
Nächste Schritte
- Verwenden Sie zusätzliche Speichertreiber mit GKE on Azure.
- Lesen Sie die Dokumentation zum Azure File CSI-Treiber.