utilizza un oggetto StorageClass personalizzato con i tuoi carichi di lavoro
GKE su Azure esegue automaticamente il deployment del driver CSI di Azure Disk e del Driver CSI per i file di Azure.
Le versioni del driver CSI di Azure Disk e del driver CSI di Azure File sono collegate a una versione di GKE su Azure Kubernetes. Al momento del rilascio di una versione di GKE, la versione del driver è in genere quella più recente. Quando viene eseguito l'upgrade del cluster, i driver si aggiornano automaticamente.
Utilizzo di una classe StorageClass personalizzata
Puoi creare classi di archiviazione aggiuntive per i volumi o utilizzare i driver Container Storage Interface (CSI).
Scegli se stai utilizzando un volume di disco Azure o un altro driver CSI.
Volume disco Azure
Puoi creare il tuo oggetto StorageClass personalizzato che specifica un tipo di volume, un tipo di file system e altri parametri di Azure Disk. Puoi trovare parametri aggiuntivi di StorageClass nella pagina GitHub del driver CSI GKE su Azure Disks.
Per configurare un oggetto StorageClass personalizzato, copia il seguente manifest YAML in un file denominato
my-custom-class.yaml
.apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: CLASS_NAME provisioner: disk.csi.azure.com volumeBindingMode: WaitForFirstConsumer allowVolumeExpansion: true
Sostituisci CLASS_NAME con il nome del tuo nuovo StorageClass.
Ad esempio, il codice YAML seguente crea un nuovo oggetto StorageClass che esegue il provisioning dei volumi in un account di archiviazione specifico e applica un tag di
group=dev
a ogni nuovo 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
Driver CSI
Puoi specificare un driver CSI diverso nel campo
provisioner
.Per creare un oggetto StorageClass con un altro driver CSI, puoi utilizzare l'esempio YAML di seguito.
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: CLASS_NAME provisioner: CSI_DRIVER_NAME volumeBindingMode: WaitForFirstConsumer parameters: ...
Sostituisci i seguenti valori:
- CLASS_NAME: il nome dell'oggetto StorageClass (ad esempio,
my-custom-class
). - CSI_DRIVER_NAME: il nome del driver CSI (ad esempio,
csi.example.com
).
Quindi, configura i sottocampi in
parameters
in base alla documentazione del driver CSI.- CLASS_NAME: il nome dell'oggetto StorageClass (ad esempio,
Applica il codice YAML al tuo cluster.
kubectl apply -f my-custom-class.yaml
Crea un PersistentVolumeClaim con un oggetto StorageClass personalizzato.
Dopo aver creato un oggetto StorageClass personalizzato, puoi specificarlo in un PVC. L'esempio seguente crea un PVC denominato
my-pvc
che fa riferimento a StorageClassmy-custom-class
.apiVersion: v1 kind: PersistentVolumeClaim metadata: name: my-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 30Gi storageclassName: my-custom-class
imposta il valore predefinito di StorageClass
GKE su Azure utilizza un oggetto StorageClass predefinito denominato standard-rwo
che esegue il provisioning di dischi Azure SSD standard con LRS. Puoi modificare il valore predefinito in un altro oggetto StorageClass.
Per modificare il valore predefinito di StorageClass:
Aggiorna l'annotazione
is-default-class
per StorageClassstandard-rwo
conkubectl patch
.kubectl patch storageclass standard-rwo -p \ '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"false"}}}'
Crea un nuovo oggetto StorageClass con l'annotazione
storageclass.kubernetes.io/is-default-class: true
.Nell'esempio seguente StorageClass utilizza il driver
disk.csi.azure.com
. Per installare un altro driver di archiviazione, consulta Installazione di un driver CSI.Copia il seguente codice YAML in un file denominato
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
Sostituisci quanto segue:
- CLASS_NAME: il nome del nuovo oggetto StorageClass.
- VOLUME_TYPE: il tipo di volume di Azure Disk creato da StorageClass.
Ad esempio, il codice YAML seguente crea un nuovo oggetto StorageClass predefinito che esegue il provisioning dei volumi di dischi di Azure per SSD Premium.
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
Applica la nuova classe personalizzata al cluster.
kubectl apply -f my-custom-class.yaml
Dopo aver applicato questo manifest, GKE su Azure utilizza StorageClass my-custom-default-class
per le nuove richieste di archiviazione.
Riferimento a StorageClass in un StatefulSet
Per utilizzare il nuovo oggetto StorageClass, puoi farvi riferimento in uno StatefulSet
volumeClaimTemplates
.
Quando fai riferimento a un oggetto StorageClass nella specifica volumeClaimTemplates
di uno StatefulSet, Kubernetes fornisce uno spazio di archiviazione stabile tramite oggetti PersistentVolume (PV).
Kubernetes chiama il provisioner definito in StorageClass per creare un nuovo volume di archiviazione. Kubernetes crea automaticamente
un volume permanente dopo il provisioning del volume.
Il seguente StatefulSet fa riferimento a my-custom-class
StorageClass e
esegue il provisioning di un volume da 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
Passaggi successivi
Leggi la documentazione per il driver CSI di Azure Disk o per il driver CSI di Azure File.
Scopri di più sui volumi permanenti in GKE.
Installa i Driver di archiviazione sul tuo cluster GKE su Azure.
Esegui il deployment del tuo primo carico di lavoro con la Guida rapida.