Usar um volume de disco do Azure

O GKE no Azure implanta automaticamente o azuredisk-csi-driver para provisionar e gerenciar volumes do Azure Disk em seus clusters.

A versão do driver CSI do Azure Disk do GKE no Azure está vinculada a uma versão do cluster do Kubernetes. A versão do driver normalmente é a mais recente disponível quando a versão do GKE é lançada. Quando o cluster é atualizado, os drivers são atualizados automaticamente.

Para obter mais informações sobre como o GKE no Azure fornece armazenamento persistente, consulte Visão geral do armazenamento .

Classes de armazenamento padrão

O GKE no Azure fornece as seguintes opções de StorageClass por padrão:

Antes de começar

Use o StorageClass padrão

Quando você cria um PersistentVolumeClaim sem definir o campo spec.storageClassName , o GKE no Azure provisiona um volume SSD Padrão do Azure usando o StorageClass do driver CSI do Azure Disk do GKE no Azure padrão.

O YAML a seguir cria um PersistentVolumeClaim (PVC) chamado mypvc com um tamanho de 30 gibibytes.

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

Use a classe de armazenamento premium

Quando você cria um PersistentVolumeClaim e usa o campo spec.storageClassName como premium-rwo , o GKE no Azure provisiona um volume SSD premium do Azure.

O YAML a seguir cria um PersistentVolumeClaim (PVC) chamado mypvc com um tamanho de 30 gibibytes.

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

Referenciar a StorageClass em um StatefulSet

Para usar seu novo StorageClass, você pode referenciá-lo em volumeClaimTemplates de um StatefulSet.

Ao referenciar uma StorageClass na especificação volumeClaimTemplates de um StatefulSet, o Kubernetes fornece armazenamento estável usando PersistentVolumes (PVs). O Kubernetes chama o provisionador definido na StorageClass para criar um novo volume de armazenamento. Após o provisionamento do volume, o Kubernetes cria automaticamente um PV.

O StatefulSet a seguir faz referência ao StorageClass premium-rwo e provisiona um volume 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

O que vem a seguir