Utilizzo della condivisione file Azure
GKE su Azure supporta il montaggio delle condivisioni file Azure. Se hai già una condivisione file Azure da utilizzare con GKE su Azure, puoi creare un oggetto PersistentVolume (PV) e riservarlo per un oggetto PersistentVolumeClaim (PVC) specifico.
Questa pagina spiega come creare un PV utilizzando una condivisione esistente popolata con i dati e come utilizzare il PV in un pod.
Prima di iniziare
- Connessione al tuo cluster
- Avere accesso a una condivisione file Azure o crearne una. Per ulteriori informazioni, vedi Creare una condivisione file 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 Creare 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_KEYSostituisci quanto segue:
- STORAGE_ACCOUNT_NAME: il nome dell'account di archiviazione Azure
- STORAGE_ACCOUNT_KEY: la chiave dell'account di archiviazione Azure
Applica il file al cluster con lo strumento
kubectl:kubectl apply -f azure-service-account-key.yaml
Creare 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_IDSostituisci quanto segue:
- VOLUME_NAME: un nome per il volume
- VOLUME_CAPACITY: le dimensioni del volume. Ad esempio,
30Gi. Per ulteriori informazioni su come specificare la capacità del volume in Kubernetes, consulta il significato della 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 l'account di archiviazione si trova in un gruppo di risorse diverso dal 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_NAMESPACESostituisci quanto segue:
- NODE_STAGE_SECRET_NAME: il nome del secret
- NODE_STAGE_SECRET_NAMESPACE: lo spazio dei nomi che contiene il secret
Applica il codice YAML al cluster.
kubectl apply -f existing-volume.yamlConferma la creazione del PV con
kubectl describe pv.kubectl describe pv VOLUME_NAMEL'output di questo comando contiene lo stato del PV.
Utilizzare il volume con un 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-pvcSostituisci quanto segue:
- STORAGE_CLASS: il nome di StorageClass del
PersistentVolume creato in precedenza. Ad esempio,
standard-rwo. - ACCESS_MODE: la modalità di accesso del volume. Per il disco Azure, utilizza
ReadWriteOnce. Per il file Azure, utilizzaReadWriteMany. - VOLUME_CAPACITY: le dimensioni del volume. Ad esempio,
30Gi.
- STORAGE_CLASS: il nome di StorageClass del
PersistentVolume creato in precedenza. Ad esempio,
Applica il codice YAML al cluster.
kubectl apply -f nginx.yamlControlla lo stato dell'istanza Nginx con
kubectl describe. L'output deve avere unoSTATUSdiRunning.kubectl describe pod web-serverPer 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 per il driver CSI del file Azure.