Utiliser un volume Azure Disk

GKE sur Azure déploie automatiquement le pilote azuredisk-csi-driver pour provisionner et gérer les volumes Azure Disk dans vos clusters.

La version du pilote CSI Azure Disk de GKE sur Azure est liée à une version de cluster Kubernetes. La version du pilote est généralement la dernière disponible lors de la publication de la version de GKE. Lorsque le cluster est mis à niveau, les pilotes sont automatiquement mis à jour.

Pour en savoir plus sur la manière dont GKE sur Azure fournit un espace de stockage persistant, consultez la page Présentation du stockage.

Classes de stockage par défaut

GKE sur Azure fournit les options StorageClass suivantes par défaut :

  • standard-rwo (par défaut) : provisionne les disques Azure SSD standards avec LRS.
  • premium-rwo : provisionne les disques Azure SSD premium avec LRS.

Avant de commencer

Utiliser la ressource StorageClass par défaut

Lorsque vous créez un objet PersistentVolumeClaim sans définir le champ spec.storageClassName, GKE sur Azure provisionne un volume SSD standard Azure à l'aide de la classe StorageClass de pilote CSI Azure Disk de GKE sur Azure par défaut.

Le code YAML suivant crée un objet PersistentVolumeClaim (PVC) nommé mypvc avec une taille de 30 GiB.

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: mypvc
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 30Gi

Utiliser la classe de stockage premium

Lorsque vous créez un objet PersistentVolumeClaim et définissez le champ spec.storageClassName sur premium-rwo, GKE sur Azure provisionne un volume SSD premium Azure.

Le code YAML suivant crée un objet PersistentVolumeClaim (PVC) nommé mypvc avec une taille de 30 Gio.

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: mypvc
spec:
  storageClassName: premium-rwo
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 30Gi

Référencer la ressource StorageClass dans un StatefulSet

Pour utiliser votre nouvelle StorageClass, vous pouvez faire référence à cette ressource dans la spécification volumeClaimTemplates d'un StatefulSet.

Lorsque vous référencez une ressource StorageClass dans la spécification volumeClaimTemplates d'un StatefulSet, Kubernetes fournit un espace de stockage stable à l'aide de PersistentVolumes (PVs). Kubernetes appelle l'approvisionneur défini dans la StorageClass pour créer un volume de stockage. Une fois le volume provisionné, Kubernetes crée automatiquement un PV.

L'objet StatefulSet suivant référence la StorageClass premium-rwo et provisionne un volume de 1 gibioctet :

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: web
spec:
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: registry.k8s.io/nginx-slim:0.8
        volumeMounts:
        - name: www
          mountPath: /usr/share/nginx/html
  volumeClaimTemplates: # This is the specification in which you reference the StorageClass
  - metadata:
      name: www
    spec:
      accessModes: [ "ReadWriteOnce" ]
      resources:
        requests:
          storage: 1Gi
      storageClassName: premium-rwo # This field references the existing StorageClass

Étape suivante