Utilizzo della condivisione file Azure
GKE su Azure supporta il montaggio delle condivisioni Azure Files. Se hai già una condivisione file di Azure da utilizzare con GKE su Azure, puoi creare un oggetto PersistentVolume (PV) e riservarlo per un PersistentVolumeClaim (PVC) specifico.
Questa pagina spiega come creare un PV utilizzando una condivisione esistente compilata con dati e come utilizzarlo in un pod.
Prima di iniziare
- Connettersi al cluster
- Avere accesso a una condivisione file Azure o crearne una. Per ulteriori informazioni, consulta la sezione Creare una condivisione file di Azure.
Memorizza i dati dell'account di archiviazione Azure
GKE on Azure memorizza le informazioni per accedere al tuo account di archiviazione Azure in un segreto. Se non hai creato un segreto nel cluster, devi aggiungerne uno. Se hai questo segreto nel tuo cluster, vai a Creare un volume persistente 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 del tuo 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_ID
Sostituisci quanto segue:
- VOLUME_NAME: un nome per il volume
- VOLUME_CAPACITY: la dimensione del volume. Ad esempio,
30Gi
. Per ulteriori informazioni su come specificare la capacità del volume in Kubernetes, consulta la sezione 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 di Azure
Se il tuo account di archiviazione si trova in un gruppo di risorse diverso da quello del tuo cluster, devi aggiungere un riferimento a un segreto contenente la chiave del tuo 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 segreto
Applica il file YAML al cluster.
kubectl apply -f existing-volume.yaml
Conferma la creazione del PV con
kubectl describe pv
.kubectl describe pv VOLUME_NAME
L'output di questo comando contiene lo stato dell'impianto fotovoltaico.
Utilizzare il volume con un oggetto PersistentVolumeClaim e un pod
Dopo aver importato il volume, puoi creare un PVC e un pod che lo monta.
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 della classe di archiviazione del volume permanente 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 della classe di archiviazione del volume permanente 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 dovrebbe 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.