Menggunakan StorageClass kustom dengan workload Anda
GKE di Azure otomatis men-deploy Azure Disk CSI Driver dan Azure File CSI Driver.
Versi Azure Disk CSI Driver dan Azure File CSI Driver terikat ke GKE pada versi Azure Kubernetes. Versi driver biasanya adalah versi terbaru yang tersedia saat versi GKE dirilis. Saat cluster diupgrade, driver akan otomatis diupdate.
Menggunakan StorageClass kustom
Anda dapat membuat StorageClass tambahan untuk volume atau menggunakan Driver Antarmuka Penyimpanan Container (CSI).
Pilih apakah Anda menggunakan volume disk Azure atau driver CSI lainnya.
Volume Disk Azure
Anda dapat membuat StorageClass kustom Anda sendiri yang menentukan jenis volume Azure Disk, jenis sistem file, dan parameter lainnya. Anda dapat menemukan parameter StorageClass tambahan di GKE pada halaman GitHub Azure Disk CSI Driver.
Untuk mengonfigurasi StorageClass kustom, salin manifes YAML berikut ke dalam file bernama
my-custom-class.yaml
.apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: CLASS_NAME provisioner: disk.csi.azure.com volumeBindingMode: WaitForFirstConsumer allowVolumeExpansion: true
Ganti CLASS_NAME dengan nama StorageClass baru Anda.
Misalnya, YAML berikut membuat StorageClass baru yang menyediakan volume di akun penyimpanan tertentu dan menerapkan tag
group=dev
ke setiap volume baru.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
Anda dapat menentukan driver CSI lain di kolom
provisioner
.Untuk membuat StorageClass dengan driver CSI lain, Anda dapat menggunakan contoh YAML di bawah ini.
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: CLASS_NAME provisioner: CSI_DRIVER_NAME volumeBindingMode: WaitForFirstConsumer parameters: ...
Ganti nilai berikut:
- CLASS_NAME: nama StorageClass (misalnya,
my-custom-class
). - CSI_DRIVER_NAME: nama driver CSI (misalnya,
csi.example.com
).
Selanjutnya, konfigurasi subkolom di bagian
parameters
sesuai dengan dokumentasi driver CSI Anda.- CLASS_NAME: nama StorageClass (misalnya,
Terapkan YAML ke cluster Anda.
kubectl apply -f my-custom-class.yaml
Membuat PersistentVolumeClaim dengan StorageClass kustom.
Setelah membuat StorageClass kustom, Anda dapat menentukannya dalam PVC. Contoh berikut membuat PVC bernama
my-pvc
yang mereferensikanmy-custom-class
StorageClass.apiVersion: v1 kind: PersistentVolumeClaim metadata: name: my-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 30Gi storageclassName: my-custom-class
Menetapkan StorageClass default
GKE di Azure menggunakan StorageClass default yang disebut standard-rwo
, yang
menyediakan disk SSD Azure standar dengan
LRS. Anda dapat mengubah default ke StorageClass lain.
Untuk mengubah StorageClass default:
Update anotasi
is-default-class
untuk StorageClassstandard-rwo
dengankubectl patch
.kubectl patch storageclass standard-rwo -p \ '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"false"}}}'
Buat StorageClass baru yang memiliki anotasi
storageclass.kubernetes.io/is-default-class: true
.Contoh berikut StorageClass menggunakan driver
disk.csi.azure.com
. Untuk menginstal driver penyimpanan lain, lihat Menginstal driver CSI.Salin YAML berikut ke dalam file bernama
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
Ganti kode berikut:
- CLASS_NAME: nama StorageClass baru Anda.
- VOLUME_TYPE: jenis volume Disk Azure yang dibuat StorageClass.
Misalnya, YAML berikut membuat StorageClass default baru yang menyediakan volume Azure Disk 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
Terapkan class kustom baru ke cluster Anda.
kubectl apply -f my-custom-class.yaml
Setelah menerapkan manifes ini, GKE di Azure menggunakan StorageClass my-custom-default-class
untuk permintaan penyimpanan baru.
Mereferensikan StorageClass dalam StatefulSet
Untuk menggunakan StorageClass baru, Anda dapat mereferensikannya dalam volumeClaimTemplates
StatefulSet.
Saat Anda mereferensikan StorageClass dalam spesifikasi volumeClaimTemplates
StatefulSet, Kubernetes akan menyediakan penyimpanan stabil menggunakan PersistentVolumes (PV).
Kubernetes memanggil penyedia yang ditentukan dalam StorageClass untuk membuat volume penyimpanan baru. Setelah volume disediakan, Kubernetes akan otomatis membuat PV.
StatefulSet berikut mereferensikan StorageClass my-custom-class
dan menyediakan volume 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
Langkah selanjutnya
Baca dokumentasi untuk driver CSI Azure Disk atau driver CSI Azure File.
Pelajari Volume persisten di GKE.
Instal driver Storage di GKE Anda di cluster Azure.
Deploy workload pertama Anda dengan Panduan Memulai.