Menggunakan disk Azure Premium SSD v2 di Azure Kubernetes Service
Disk Azure Premium SSD v2 menawarkan beban kerja perusahaan intens IO, latensi disk submillisecond yang konsisten, dan IOPS dan throughput tinggi. Performa (kapasitas, throughput, dan IOPS) disk SSD v2 Premium dapat dikonfigurasi secara independen kapan saja, sehingga memudahkan lebih banyak skenario menjadi hemat biaya sembari memenuhi kebutuhan performa.
Artikel ini menjelaskan cara mengonfigurasi kluster AKS baru atau yang sudah ada untuk menggunakan disk Azure Premium SSD v2.
Sebelum Anda mulai
Sebelum membuat atau meningkatkan kluster AKS yang dapat menggunakan disk Azure Premium SSD v2, Anda perlu membuat kluster AKS di wilayah dan zona ketersediaan yang sama yang mendukung Penyimpanan Premium dan melampirkan disk dengan mengikuti langkah-langkah di bawah ini.
Untuk kluster AKS yang ada, Anda dapat mengaktifkan disk Premium SSD v2 dengan menambahkan kumpulan simpul baru ke kluster Anda, lalu melampirkan disk dengan mengikuti langkah-langkah di bawah ini.
Penting
Disk Azure Premium SSD v2 memerlukan kumpulan simpul yang disebarkan di wilayah yang mendukung disk ini. Untuk daftar wilayah yang didukung, lihat Wilayah yang didukung disk Premium SSD v2.
Batasan
- Disk Azure Premium SSD v2 memiliki batasan tertentu yang perlu Anda waspadai. Untuk daftar lengkapnya, lihat Batasan Premium SSD v2.
Menggunakan disk Premium SSD v2 secara dinamis dengan kelas penyimpanan
Untuk menggunakan disk Premium SSD v2 dalam penyebaran atau set stateful, Anda dapat menggunakan kelas penyimpanan untuk provisi dinamis.
Membuat kelas penyimpanan
Kelas penyimpanan digunakan untuk menentukan bagaimana sebuah unit penyimpanan dibuat secara dinamis dengan volume persisten. Untuk informasi lebih lanjut tentang kelas penyimpanan Kubernetes, lihat Kelas Penyimpanan Kubernetes.
Dalam contoh ini, Anda membuat kelas penyimpanan yang mereferensikan disk Premium SSD v2. Buat file bernama azure-pv2-disk-sc.yaml
, dan salin dalam manifes berikut.
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: premium2-disk-sc
parameters:
cachingMode: None
skuName: PremiumV2_LRS
DiskIOPSReadWrite: "4000"
DiskMBpsReadWrite: "1000"
provisioner: disk.csi.azure.com
reclaimPolicy: Delete
volumeBindingMode: Immediate
allowVolumeExpansion: true
Buat kelas penyimpanan dengan perintah kubectl apply dan tentukan file azure-pv2-disk-sc.yaml Anda:
kubectl apply -f azure-pv2-disk-sc.yaml
Output perintah menyerupai contoh berikut:
storageclass.storage.k8s.io/premium2-disk-sc created
Buat klaim volume persisten
Klaim volume persisten (PVC) digunakan untuk mem-provisikan penyimpanan secara otomatis berdasarkan kelas penyimpanan. Dalam hal ini, PVC dapat menggunakan kelas penyimpanan yang dibuat sebelumnya untuk membuat disk ultra.
Buat file bernama azure-pv2-disk-pvc.yaml
, dan salin dalam manifes berikut. Klaim meminta disk bernama premium2-disk
yang berukuran 1000 GB dengan akses ReadWriteOnce. Kelas penyimpanan premium2-disk-sc ditentukan sebagai kelas penyimpanan.
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: premium2-disk
spec:
accessModes:
- ReadWriteOnce
storageClassName: premium2-disk-sc
resources:
requests:
storage: 1000Gi
Buat klaim volume persisten dengan perintah kubectl apply dan tentukan file azure-pv2-disk-pvc.yaml Anda:
kubectl apply -f azure-pv2-disk-pvc.yaml
Output perintah menyerupai contoh berikut:
persistentvolumeclaim/premium2-disk created
Menggunakan volume persisten
Setelah klaim volume persisten dibuat dan disk berhasil tersedia, sebuah pod dapat dibuat dengan akses ke disk. Manifes berikut membuat pod NGINX dasar yang menggunakan klaim volume persisten bernama premium2-disk untuk memasang disk Azure di jalur /mnt/azure
.
Buat file bernama nginx-premium2.yaml
, dan salin dalam manifes berikut.
kind: Pod
apiVersion: v1
metadata:
name: nginx-premium2
spec:
containers:
- name: nginx-premium2
image: mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 250m
memory: 256Mi
volumeMounts:
- mountPath: "/mnt/azure"
name: volume
volumes:
- name: volume
persistentVolumeClaim:
claimName: premium2-disk
Buat pod dengan perintah kubectl apply, seperti yang ditunjukkan pada contoh berikut:
kubectl apply -f nginx-premium2.yaml
Output perintah menyerupai contoh berikut:
pod/nginx-premium2 created
Sekarang Anda memiliki pod yang sedang berjalan dengan disk Azure Anda terpasang di direktori /mnt/azure
. Konfigurasi ini dapat dilihat saat memeriksa pod melalui kubectl describe pod nginx-premium2
, seperti yang ditunjukkan pada contoh yang telah diringkas berikut:
kubectl describe pod nginx-premium2
[...]
Volumes:
volume:
Type: PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
ClaimName: premium2-disk
ReadOnly: false
kube-api-access-sh59b:
Type: Projected (a volume that contains injected data from multiple sources)
TokenExpirationSeconds: 3607
ConfigMapName: kube-root-ca.crt
ConfigMapOptional: <nil>
DownwardAPI: true
QoS Class: Burstable
Node-Selectors: <none>
Tolerations: node.kubernetes.io/memory-pressure:NoSchedule op=Exists
node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 7m58s default-scheduler Successfully assigned default/nginx-premium2 to aks-agentpool-12254644-vmss000006
Normal SuccessfulAttachVolume 7m46s attachdetach-controller AttachVolume.Attach succeeded for volume "pvc-ff39fb64-1189-4c52-9a24-e065b855b886"
Normal Pulling 7m39s kubelet Pulling image "mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine"
Normal Pulled 7m38s kubelet Successfully pulled image "mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine" in 1.192915667s
Normal Created 7m38s kubelet Created container nginx-premium2
Normal Started 7m38s kubelet Started container nginx-premium2
[...]
Mengatur batas IOPS dan throughput
Operasi Input/Output Per Detik (IOPS) dan batas throughput untuk disk Azure Premium v2 SSD saat ini tidak didukung melalui AKS. Untuk menyesuaikan performa, Anda dapat menggunakan perintah Azure CLI az disk update dan termasuk --disk-iops-read-write
parameter dan --disk-mbps-read-write
.
Contoh berikut memperbarui disk IOPS baca/tulis ke 5000 dan Mbps menjadi 200. Untuk --resource-group
, nilainya harus merupakan grup sumber daya kedua yang dibuat secara otomatis untuk menyimpan simpul pekerja AKS dengan konvensi penamaan MC_resourcegroupname_clustername_location. Untuk informasi selengkapnya, lihat Mengapa dua grup sumber daya dibuat dengan AKS?.
Nilai untuk --name
parameter adalah nama volume yang dibuat menggunakan StorageClass, dan dimulai dengan pvc-
. Untuk mengidentifikasi nama disk, Anda dapat menjalankan kubectl get pvc
atau menavigasi ke grup sumber daya sekunder di portal untuk menemukannya. Lihat mengelola sumber daya dari portal Azure untuk mempelajari selengkapnya.
az disk update --subscription subscriptionName --resource-group myResourceGroup --name diskName --disk-iops-read-write=5000 --disk-mbps-read-write=200
Langkah berikutnya
- Untuk informasi selengkapnya tentang disk Premium SSD v2, lihat Menggunakan disk Azure Premium SSD v2.
- Untuk informasi selengkapnya tentang praktik terbaik penyimpanan, lihat Praktik terbaik untuk penyimpanan dan pencadangan di Azure Kubernetes Service (AKS).
Azure Kubernetes Service