Use um volume de disco do Azure

O GKE no Azure implementa automaticamente o azuredisk-csi-driver para aprovisionar e gerir volumes de disco do Azure nos seus clusters.

A versão do controlador CSI do disco do Azure do GKE no Azure está associada a uma versão do cluster do Kubernetes. Normalmente, a versão do controlador é a mais recente disponível quando a versão do GKE é lançada. Quando o cluster é atualizado, os controladores são atualizados automaticamente.

Para mais informações sobre como o GKE no Azure oferece armazenamento persistente, consulte o artigo Vista geral do armazenamento.

Classes de armazenamento predefinidas

Por predefinição, o GKE no Azure oferece as seguintes opções de StorageClass:

  • standard-rwo (predefinição): aprovisiona discos Azure SSD padrão com LRS
  • premium-rwo: aprovisiona discos Azure SSD premium com LRS

Antes de começar

Use a StorageClass predefinida

Quando cria um PersistentVolumeClaim sem definir o campo spec.storageClassName, o GKE no Azure aprovisiona um volume de SSD padrão do Azure através da StorageClass do controlador CSI do Azure Disk do GKE no Azure predefinida.

O YAML seguinte cria um PersistentVolumeClaim (PVC) denominado 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 cria um PersistentVolumeClaim e define o campo spec.storageClassName como premium-rwo, o GKE no Azure aprovisiona um volume de SSD premium do Azure.

O YAML seguinte cria um PersistentVolumeClaim (PVC) denominado mypvc com um tamanho de 30 gibibytes.

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

Referencie a StorageClass num StatefulSet

Para usar a nova StorageClass, pode referenciá-la no volumeClaimTemplatesde um StatefulSet.

Quando faz referência a uma StorageClass na especificação de um StatefulSet, o Kubernetes fornece armazenamento estável através de PersistentVolumes (PVs).volumeClaimTemplates O Kubernetes chama o aprovisionador definido na StorageClass para criar um novo volume de armazenamento. Depois de o volume ser aprovisionado, o Kubernetes cria automaticamente um PV.

O StatefulSet seguinte faz referência à premium-rwoStorageClass e aprovisiona 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 se segue?