Usar un volumen de disco de Azure

GKE en Azure implementa automáticamente azuredisk-csi-driver para aprovisionar y administrar volúmenes de Azure Disk en sus clústeres.

La versión del controlador CSI de disco de Azure de GKE en Azure está vinculada a la versión del clúster de Kubernetes. La versión del controlador suele ser la más reciente disponible cuando se lanza la versión de GKE. Al actualizar el clúster, los controladores se actualizan automáticamente.

Para obtener más información sobre cómo GKE en Azure proporciona almacenamiento persistente, consulte Descripción general del almacenamiento .

Clases de almacenamiento predeterminadas

GKE en Azure proporciona las siguientes opciones de StorageClass de forma predeterminada:

  • standard-rwo (predeterminado): aprovisiona discos SSD estándar de Azure con LRS
  • premium-rwo : Aprovisiona discos SSD premium de Azure con LRS

Antes de empezar

Utilice la clase de almacenamiento predeterminada

Cuando se crea un PersistentVolumeClaim sin configurar el campo spec.storageClassName , GKE en Azure aprovisiona un volumen SSD estándar de Azure mediante el StorageClass del controlador CSI de disco de Azure de GKE en Azure predeterminado.

El siguiente YAML crea un PersistentVolumeClaim (PVC) llamado mypvc con un tamaño de 30 gibibytes.

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

Utilice la clase de almacenamiento premium

Cuando crea un PersistentVolumeClaim y envía el campo spec.storageClassName a premium-rwo , GKE en Azure aprovisiona un volumen SSD premium de Azure.

El siguiente YAML crea un PersistentVolumeClaim (PVC) llamado mypvc con un tamaño de 30 gibibytes.

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

Hacer referencia a StorageClass en un StatefulSet

Para utilizar su nueva StorageClass, puede hacer referencia a ella en volumeClaimTemplates de un StatefulSet.

Al hacer referencia a una StorageClass en la especificación volumeClaimTemplates de un StatefulSet, Kubernetes proporciona almacenamiento estable mediante PersistentVolumes (PV). Kubernetes llama al aprovisionador definido en la StorageClass para crear un nuevo volumen de almacenamiento. Una vez aprovisionado el volumen, Kubernetes crea automáticamente un PV.

El siguiente StatefulSet hace referencia a la StorageClass premium-rwo y aprovisiona un volumen de 1 gibibyte:

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

¿Qué sigue?