Usa un volumen de Azure Disk

GKE on Azure implementa de forma automática el azuredisk-csi-driver para aprovisionar y administrar los volúmenes de Azure Disk en tus clústeres.

La versión del controlador de CSI de GKE en Azure Disk está vinculada a una versión de clúster de Kubernetes. La versión del controlador suele ser la más reciente disponible en el momento en que se lanza la versión de GKE. Cuando se actualiza el clúster, los controladores se actualizan de forma automática.

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

Clases de almacenamiento predeterminadas

GKE on 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 comenzar

Usa la StorageClass predeterminada

Cuando creas una PersistentVolumeClaim sin configurar el campo spec.storageClassName, GKE en Azure aprovisiona un volumen SSD estándar de Azure mediante la StorageClass predeterminada del controlador de CSI de Azure Disk en Azure Azure.

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

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

Usa la clase de almacenamiento Premium

Cuando creas una PersistentVolumeClaim y envías el campo spec.storageClassName a premium-rwo, GKE on Azure aprovisiona un volumen de SSD premium de Azure.

El siguiente YAML crea una PersistentVolumeClaim (PVC) llamada 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

Haz referencia al StorageClass en un StatefulSet

Para usar la StorageClass nueva, puedes hacer referencia a ella en un volumeClaimTemplates de StatefulSet.

Cuando haces referencia a la StorageClass en la especificación volumeClaimTemplates de StatefulSet, Kubernetes proporciona almacenamiento estable mediante PersistentVolumes (PV). Kubernetes llama al aprovisionador definido en la StorageClass para crear un volumen de almacenamiento nuevo. Una vez que se aprovisiona el volumen, Kubernetes crea un PV de forma automática.

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?