Usa un volumen de Azure Disk

GKE en Azure implementa de forma automática 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 Azure Disk de GKE en Azure está vinculada a una versión del 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 continuo, consulta Descripción general del almacenamiento.

Clases de almacenamiento predeterminadas

GKE en Azure ofrece 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 un PersistentVolumeClaim sin configurar el campo spec.storageClassName, GKE en Azure aprovisiona un volumen SSD estándar de Azure con la StorageClass predeterminada del controlador de CSI de Azure Disk de GKE en 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 un PersistentVolumeClaim y estableces el campo spec.storageClassName en premium-rwo, GKE en Azure aprovisionan un volumen 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?