Utiliser un partage de fichiers Azure
GKE sur Azure permet d'installer des partages de fichiers Azure. Si vous disposez déjà d'un partage de fichiers Azure à utiliser avec GKE sur Azure, vous pouvez créer un objet PersistentVolume (PV) et le réserver pour un objet PersistentVolumeClaim (PVC) spécifique.
Cette page explique comment créer un PV à l'aide d'un partage existant contenant des données et comment utiliser le PV dans un pod.
Avant de commencer
- Vous connecter à votre cluster
- Accédez à un partage de fichiers Azure ou créez-le. Pour en savoir plus, consultez la page Créer un partage de fichiers Azure.
Stocker les informations de votre compte de stockage Azure
GKE sur Azure stocke des informations pour accéder à votre compte de stockage Azure dans un secret. Si vous n'avez pas créé de secret dans votre cluster, vous devez en ajouter un. Si vous disposez de ce secret dans votre cluster, passez à la section Créer un PersistentVolume pour un partage existant.
Pour créer le secret, copiez le fichier manifeste suivant dans un fichier nommé "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
Remplacez les éléments suivants :
- STORAGE_ACCOUNT_NAME : nom de votre compte de stockage Azure
- STORAGE_ACCOUNT_KEY : votre clé de compte de stockage Azure
Appliquez le fichier à votre cluster à l'aide de l'outil
kubectl
:kubectl apply -f azure-service-account-key.yaml
Créer un PersistentVolume pour un partage existant
Pour importer un partage de fichiers Azure existant, spécifiez un nouveau PV dans votre cluster. Pour créer le PV, procédez comme suit :
Copiez le fichier YAML suivant dans un fichier nommé
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
Remplacez les éléments suivants :
- VOLUME_NAME : nom du volume.
- VOLUME_CAPACITY : taille du volume. Par exemple,
30Gi
. Pour en savoir plus sur la spécification de la capacité de volume dans Kubernetes, consultez la page Meaning of memory. - VOLUME_ID : ID unique du volume, formaté en tant que chaîne de
RESOURCE_GROUP_NAME#STORAGE_ACCOUNT_NAME#FILESHARE_NAME#
- FILE_SHARE_NAME : nom de partage Azure File
Si votre compte de stockage se trouve dans un groupe de ressources différent de celui de votre cluster, vous devez ajouter une référence à un secret contenant la clé de votre compte de stockage. Pour ajouter la référence, insérez les éléments suivants dans la section
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
Remplacez les éléments suivants :
- NODE_STAGE_SECRET_NAME : nom du secret
- NODE_STAGE_SECRET_NAMESPACE : espace de noms contenant le secret
Appliquez le code YAML à votre cluster.
kubectl apply -f existing-volume.yaml
Confirmez la création du PV avec
kubectl describe pv
.kubectl describe pv VOLUME_NAME
Le résultat de cette commande contient l'état du PV.
Utiliser le volume avec un objet PersistentVolumeClaim et un pod
Après avoir importé votre volume, vous pouvez créer un PVC et un pod qui installe le PVC.
Le code YAML suivant crée un PVC et l'associe à un pod exécutant le serveur Web Nginx. Copiez-le dans un fichier nommé
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
Remplacez les éléments suivants :
- STORAGE_CLASS : nom de l'objet StorageClass du PersistentVolume que vous avez créé précédemment. Exemple :
standard-rwo
. - ACCESS_MODE : mode d'accès du volume. Pour Azure Disk, utilisez
ReadWriteOnce
. Pour Azure File, utilisezReadWriteMany
. - VOLUME_CAPACITY : taille du volume. Exemple :
30Gi
- STORAGE_CLASS : nom de l'objet StorageClass du PersistentVolume que vous avez créé précédemment. Exemple :
Appliquez le code YAML à votre cluster.
kubectl apply -f nginx.yaml
Vérifiez l'état de votre instance Nginx avec
kubectl describe
. Dans le résultat,STATUS
doit être à l'étatRunning
.kubectl describe pod web-server
Pour supprimer le pod, utilisez la commande
kubectl delete
.kubectl delete -f nginx.yaml
Étapes suivantes
- Utiliser des pilotes de stockage supplémentaires avec GKE sur Azure.
- Consultez la documentation sur le pilote CSI Azure File.