Utilizzo della condivisione file Azure
GKE su Azure supporta il montaggio di condivisioni Azure Files. Se hai già una condivisione file Azure da utilizzare con GKE su Azure, puoi creare un oggetto PersistentVolume (PV) e riservarlo per una PersistentVolumeClaim (PVC) specifica.
Questa pagina spiega come creare un PV utilizzando una condivisione esistente compilata con i dati e come utilizzare il PV in un pod.
Prima di iniziare
- Connettiti al tuo cluster
- Avere accesso a una condivisione file Azure o crearne una. Per ulteriori informazioni, vedi Creare una condivisione file di Azure.
Memorizzare le informazioni dell'account di archiviazione Azure
GKE su Azure archivia le informazioni per accedere al tuo account di archiviazione Azure in un secret. Se non hai creato un secret nel cluster, devi aggiungerne uno. Se hai questo secret nel cluster, vai a Crea un PersistentVolume per una condivisione preesistente.
Per creare il secret, copia il seguente manifest in un file denominato "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
Sostituisci quanto segue:
- STORAGE_ACCOUNT_NAME: il nome del tuo account di archiviazione Azure
- STORAGE_ACCOUNT_KEY: la chiave dell'account di archiviazione Azure
Applica il file al tuo cluster con lo strumento
kubectl
:kubectl apply -f azure-service-account-key.yaml
Crea un PersistentVolume per una condivisione preesistente
Importa una condivisione file Azure esistente specificando un nuovo PV nel cluster. Per creare il PV:
Copia il seguente codice YAML in un file denominato
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
Sostituisci quanto segue:
- VOLUME_NAME: un nome per il volume
- VOLUME_CAPACITY: la dimensione del volume. Ad esempio,
30Gi
. Per saperne di più su come specificare la capacità del volume in Kubernetes, consulta la sezione Significato di memoria. - VOLUME_ID: un ID univoco per il volume, formattato come stringa
di
RESOURCE_GROUP_NAME#STORAGE_ACCOUNT_NAME#FILESHARE_NAME#
dove - FILE_SHARE_NAME: il nome della condivisione file Azure
Se il tuo account di archiviazione si trova in un gruppo di risorse diverso dal tuo cluster, devi aggiungere un riferimento a un secret che contiene la chiave dell'account di archiviazione. Per aggiungere il riferimento, inserisci quanto segue nella sezione
spec.csi
:# 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
Sostituisci quanto segue:
- NODE_STAGE_SECRET_NAME: il nome del secret
- NODE_STAGE_SECRET_NAMESPACE lo spazio dei nomi che contiene il secret
Applica il file YAML al cluster.
kubectl apply -f existing-volume.yaml
Conferma la creazione del tuo PV con
kubectl describe pv
.kubectl describe pv VOLUME_NAME
L'output di questo comando contiene lo stato del PV.
Utilizza il volume con un oggetto PersistentVolumeClaim e un pod
Dopo aver importato il volume, puoi creare un PVC e un pod che monta il PVC.
Il seguente codice YAML crea un PVC e lo collega a un pod che esegue il server web Nginx. Copialo in un file denominato
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
Sostituisci quanto segue:
- STORAGE_CLASS: il nome di StorageClass dal PersistentVolume creato in precedenza. Ad esempio,
standard-rwo
. - ACCESS_MODE: la modalità di accesso del volume. Per Azure Disk,
utilizza
ReadWriteOnce
. Per Azure File, utilizzaReadWriteMany
. - VOLUME_CAPACITY: la dimensione del volume. Ad esempio,
30Gi
.
- STORAGE_CLASS: il nome di StorageClass dal PersistentVolume creato in precedenza. Ad esempio,
Applica il file YAML al cluster.
kubectl apply -f nginx.yaml
Controlla lo stato dell'istanza Nginx con
kubectl describe
. L'output deve avere unSTATUS
diRunning
.kubectl describe pod web-server
Per eliminare il pod, utilizza il comando
kubectl delete
.kubectl delete -f nginx.yaml
Passaggi successivi
- Utilizza driver di archiviazione aggiuntivi con GKE su Azure.
- Leggi la documentazione del driver CSI Azure File.