Utilizzo della condivisione file Azure
GKE su Azure supporta il montaggio di condivisioni di file di Azure. Se hai già una condivisione file di Azure da utilizzare con GKE su Azure, puoi creare un oggetto PersistentVolume (PV) e prenotarlo per uno specifico PersistentVolumeClaim (PVC).
Questa pagina spiega come creare un volume permanente mediante una condivisione esistente completata con dati e come utilizzare l'oggetto PV in un pod.
Prima di iniziare
- Connettiti al cluster
- Avere accesso a una condivisione file di Azure o crearne una. Per maggiori informazioni, consulta Creare una condivisione file di Azure.
Archiviare le informazioni dell'account Archiviazione di Azure
GKE su Azure archivia le informazioni per accedere al tuo account 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 manifest seguente 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: nome dell'account dello spazio di archiviazione di Azure
- STORAGE_ACCOUNT_KEY: la chiave dell'account dello spazio di archiviazione di Azure
Applica il file al cluster con lo strumento
kubectl
:kubectl apply -f azure-service-account-key.yaml
Crea un PersistentVolume per una condivisione preesistente
Importerai una condivisione file di Azure esistente specificando un nuovo volume permanente nel cluster. Per creare il volume permanente:
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: dimensione del volume. Ad esempio,
30Gi
. Per ulteriori informazioni su come specificare la capacità di volume in Kubernetes, consulta il Significato della memoria. - VOLUME_ID: un ID univoco del volume, formattato come stringa
di
RESOURCE_GROUP_NAME#STORAGE_ACCOUNT_NAME#FILESHARE_NAME#
in cui - FILE_SHARE_NAME: il nome della condivisione file di Azure
Se il tuo account di archiviazione si trova in un gruppo di risorse diverso dal cluster, devi aggiungere un riferimento a un secret contenente 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 codice YAML al tuo cluster.
kubectl apply -f existing-volume.yaml
Conferma la creazione dell'oggetto PV con
kubectl describe pv
.kubectl describe pv VOLUME_NAME
L'output di questo comando contiene lo stato dell'oggetto PV.
usa il volume con un PersistentVolumeClaim e un pod
Dopo aver importato il volume, puoi creare una PVC e un pod che monta la PVC.
Il codice YAML seguente crea una PVC e la 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 dell'oggetto StorageClass del
PersistentVolume che hai creato in precedenza. Ad esempio,
standard-rwo
. - ACCESS_MODE: la modalità di accesso del volume. Per Azure Disks,
utilizza
ReadWriteOnce
. Per il file di Azure, utilizzaReadWriteMany
. - VOLUME_CAPACITY: dimensione del volume. Ad esempio,
30Gi
.
- STORAGE_CLASS: il nome dell'oggetto StorageClass del
PersistentVolume che hai creato in precedenza. Ad esempio,
Applica il codice YAML al tuo cluster.
kubectl apply -f nginx.yaml
Controlla lo stato dell'istanza Nginx con
kubectl describe
. L'output deve avere un valoreSTATUS
pari aRunning
.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 di Azure File.