Use uma StorageClass personalizada com suas cargas de trabalho
O GKE no Azure implanta automaticamente o driver CSI do Azure Disk e o driver CSI do Azure File .
As versões do driver CSI do Azure Disk e do driver CSI do Azure File estão vinculadas a uma versão do GKE no Azure Kubernetes. A versão do driver normalmente é a mais recente disponível quando uma versão do GKE é lançada. Quando o cluster é atualizado, os drivers são atualizados automaticamente.
Use uma StorageClass personalizada
Você pode criar StorageClasses adicionais para volumes ou usar drivers de interface de armazenamento de contêiner (CSI).
Escolha se você está usando um volume de disco do Azure ou outro driver CSI.
Volume de disco do Azure
Você pode criar sua própria StorageClass personalizada que especifica um tipo de volume do Azure Disk, um tipo de sistema de arquivos e outros parâmetros. Você pode encontrar parâmetros adicionais da StorageClass na página do GKE no Azure sobre o driver CSI do Azure Disk no GitHub .
Para configurar um StorageClass personalizado, copie o seguinte manifesto YAML em um arquivo chamado
my-custom-class.yaml
.apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: CLASS_NAME provisioner: disk.csi.azure.com volumeBindingMode: WaitForFirstConsumer allowVolumeExpansion: true
Substitua CLASS_NAME pelo nome da sua nova StorageClass.
Por exemplo, o YAML a seguir cria uma nova StorageClass que provisiona volumes em uma conta de armazenamento específica e aplica uma tag de
group=dev
a cada novo volume.apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: my-custom-class provisioner: disk.csi.azure.com volumeBindingMode: WaitForFirstConsumer allowVolumeExpansion: true parameters: storageAccount: my-storage-account tags: group=dev
Motorista CSI
Você pode especificar um driver CSI diferente no campo
provisioner
.Para criar uma StorageClass com outro driver CSI, você pode usar o YAML de exemplo abaixo.
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: CLASS_NAME provisioner: CSI_DRIVER_NAME volumeBindingMode: WaitForFirstConsumer parameters: ...
Substitua os seguintes valores:
- CLASS_NAME : o nome da StorageClass (por exemplo,
my-custom-class
). - CSI_DRIVER_NAME : o nome do driver CSI (por exemplo,
csi.example.com
).
Em seguida, configure os subcampos em
parameters
de acordo com a documentação do seu driver CSI.- CLASS_NAME : o nome da StorageClass (por exemplo,
Aplique o YAML ao seu cluster.
kubectl apply -f my-custom-class.yaml
Crie um PersistentVolumeClaim com uma StorageClass personalizada.
Após criar uma StorageClass personalizada, você pode especificá-la em uma PVC. O exemplo a seguir cria uma PVC chamada
my-pvc
que faz referência à StorageClassmy-custom-class
.apiVersion: v1 kind: PersistentVolumeClaim metadata: name: my-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 30Gi storageclassName: my-custom-class
Defina a StorageClass padrão
O GKE no Azure usa uma StorageClass padrão chamada standard-rwo
que provisiona discos SSD padrão do Azure com LRS . Você pode alterar a StorageClass padrão para outra.
Para alterar o StorageClass padrão:
Atualize a anotação
is-default-class
para o StorageClassstandard-rwo
comkubectl patch
.kubectl patch storageclass standard-rwo -p \ '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"false"}}}'
Crie uma nova StorageClass que tenha a anotação
storageclass.kubernetes.io/is-default-class: true
.O exemplo StorageClass a seguir usa o driver
disk.csi.azure.com
. Para instalar outro driver de armazenamento, consulte Instalando um driver CSI .Copie o seguinte YAML em um arquivo chamado
my-custom-class.yaml
.apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: CLASS_NAME annotations: storageclass.kubernetes.io/is-default-class: true provisioner: disk.csi.azure.com volumeBindingMode: WaitForFirstConsumer parameters: skuName: VOLUME_TYPE
Substitua o seguinte:
- CLASS_NAME : o nome da sua nova StorageClass.
- VOLUME_TYPE : o tipo de volume do Azure Disk que o StorageClass cria.
Por exemplo, o YAML a seguir cria uma nova StorageClass padrão que provisiona volumes Premium SSD Azure Disk.
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: my-custom-default-class annotations: storageclass.kubernetes.io/is-default-class: "true" provisioner: disk.csi.azure.com volumeBindingMode: WaitForFirstConsumer parameters: skuName: Premium_LRS
Aplique a nova classe personalizada ao seu cluster.
kubectl apply -f my-custom-class.yaml
Depois de aplicar este manifesto, o GKE no Azure usa o my-custom-default-class
StorageClass para novas solicitações de armazenamento.
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 my-custom-class
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: my-custom-class # This field references the existing StorageClass
O que vem a seguir
Leia a documentação do driver CSI do Azure Disk ou do driver CSI do Azure File .
Saiba mais sobre volumes persistentes no GKE .
Instale drivers de armazenamento no seu cluster do GKE no Azure.
Implante sua primeira carga de trabalho com o Início rápido .