Menggunakan Pratinjau Penyimpanan Kontainer Azure dengan Disk Ephemeral
Azure Container Storage adalah layanan manajemen volume, penyebaran, dan orkestrasi berbasis cloud yang dibangun secara asli untuk kontainer. Artikel ini menunjukkan cara mengonfigurasi Azure Container Storage untuk menggunakan Ephemeral Disk sebagai penyimpanan back-end untuk beban kerja Kubernetes Anda. Di akhir, Anda akan memiliki pod yang menggunakan NVMe lokal atau SSD sementara sebagai penyimpanannya.
Penting
Disk lokal bersifat sementara, yang berarti bahwa disk dibuat pada penyimpanan komputer virtual (VM) lokal dan tidak disimpan ke layanan penyimpanan Azure. Data akan hilang pada disk ini jika Anda menghentikan/membatalkan alokasi VM Anda. Anda hanya dapat membuat volume ephemeral generik Kubernetes dari kumpulan penyimpanan Disk Ephemeral. Jika Anda ingin membuat volume persisten, Anda harus mengaktifkan replikasi untuk kumpulan penyimpanan Anda.
Prasyarat
Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai.
Artikel ini memerlukan versi terbaru (2.35.0 atau yang lebih baru) dari Azure CLI. Lihat Cara menginstal Azure CLI. Jika Anda menggunakan lingkungan Bash di Azure Cloud Shell, versi terbaru sudah diinstal. Jika Anda berencana untuk menjalankan perintah secara lokal alih-alih di Azure Cloud Shell, pastikan untuk menjalankannya dengan hak istimewa administratif. Untuk informasi selengkapnya, lihat Mulai menggunakan Azure Cloud Shell.
Anda akan memerlukan klien baris perintah Kubernetes,
kubectl
. Ini sudah diinstal jika Anda menggunakan Azure Cloud Shell, atau Anda dapat menginstalnya secara lokal dengan menjalankanaz aks install-cli
perintah .
- Jika Anda belum menginstal Azure Container Storage, ikuti instruksi di Menginstal Azure Container Storage.
Catatan
Untuk menggunakan Azure Container Storage dengan Ephemeral Disk, kluster AKS Anda harus memiliki kumpulan node setidaknya tiga VM yang dioptimalkan penyimpanan seperti standard_l8s_v3. Kami menyarankan agar setiap VM memiliki minimal empat CPU virtual (vCPU).
Ketersediaan regional
Azure Container Storage hanya tersedia untuk subset wilayah Azure:
- (Afrika) Afrika Selatan Utara
- (Asia Pasifik) Australia Timur
- (Asia Pasifik) Asia Timur
- (Asia Pasifik) Jepang Timur
- (Asia Pasifik) Korea Tengah
- (Asia Pasifik) Asia Tenggara
- (Asia Pasifik) India Tengah
- (Eropa) Prancis Tengah
- (Eropa) Eropa Utara
- (Eropa) Eropa Barat
- (Eropa) UK Selatan
- (Eropa) Swedia Tengah
- (Eropa) Swiss Utara
- (Timur Tengah) UEA Utara
- (Amerika Utara): US Timur
- (Amerika Utara): US Timur 2
- (Amerika Utara) US Barat
- (Amerika Utara): US Barat 2
- (Amerika Utara): US Barat 3
- (Amerika Utara): US Tengah
- (Amerika Utara) US Tengah Utara
- (Amerika Utara) US Tengah Selatan
- (Amerika Utara) US Tengah Barat
- (Amerika Utara) Kanada Tengah
- (Amerika Utara) Kanada Timur
- (Amerika Selatan) Brasil Selatan
Membuat kumpulan penyimpanan
Pertama, buat kumpulan penyimpanan, yang merupakan pengelompokan penyimpanan logis untuk kluster Kubernetes Anda, dengan menentukannya dalam file manifes YAML.
Jika Anda mengaktifkan Azure Container Storage menggunakan az aks create
perintah atau az aks update
, Anda mungkin sudah memiliki kumpulan penyimpanan. Gunakan kubectl get sp -n acstor
untuk mendapatkan daftar kumpulan penyimpanan. Jika Anda memiliki kumpulan penyimpanan yang sudah tersedia yang ingin Anda gunakan, Anda dapat melewati bagian ini dan melanjutkan ke Menampilkan kelas penyimpanan yang tersedia.
Anda memiliki tiga opsi untuk membuat kumpulan penyimpanan yang menggunakan Disk Ephemeral:
- Membuat kumpulan penyimpanan dengan NVMe lokal
- Membuat kumpulan penyimpanan dengan SSD sementara
- Membuat kumpulan penyimpanan dengan NVMe lokal dan replikasi
Membuat kumpulan penyimpanan dengan NVMe
Ikuti langkah-langkah ini untuk membuat kumpulan penyimpanan menggunakan NVMe lokal.
Gunakan editor teks favorit Anda untuk membuat file manifes YAML seperti
code acstor-storagepool.yaml
.Tempelkan kode berikut dan simpan file. Nilai nama kumpulan penyimpanan bisa menjadi apa pun yang Anda inginkan.
apiVersion: containerstorage.azure.com/v1 kind: StoragePool metadata: name: ephemeraldisk namespace: acstor spec: poolType: ephemeralDisk: {}
Terapkan file manifes YAML untuk membuat kumpulan penyimpanan.
kubectl apply -f acstor-storagepool.yaml
Saat pembuatan kumpulan penyimpanan selesai, Anda akan melihat pesan seperti:
storagepool.containerstorage.azure.com/ephemeraldisk created
Anda juga dapat menjalankan perintah ini untuk memeriksa status kumpulan penyimpanan. Ganti
<storage-pool-name>
dengan nilai nama kumpulan penyimpanan Anda. Untuk contoh ini, nilainya adalah ephemeraldisk.kubectl describe sp <storage-pool-name> -n acstor
Saat kumpulan penyimpanan dibuat, Azure Container Storage akan membuat kelas penyimpanan atas nama Anda, menggunakan konvensi acstor-<storage-pool-name>
penamaan .
Membuat kumpulan penyimpanan dengan SSD sementara
Ikuti langkah-langkah ini untuk membuat kumpulan penyimpanan menggunakan SSD sementara.
Gunakan editor teks favorit Anda untuk membuat file manifes YAML seperti
code acstor-storagepool.yaml
.Tempelkan kode berikut dan simpan file. Nilai nama kumpulan penyimpanan bisa menjadi apa pun yang Anda inginkan.
apiVersion: containerstorage.azure.com/v1 kind: StoragePool metadata: name: ephemeraldisk namespace: acstor spec: poolType: ephemeralDisk: diskType: temp
Terapkan file manifes YAML untuk membuat kumpulan penyimpanan.
kubectl apply -f acstor-storagepool.yaml
Saat pembuatan kumpulan penyimpanan selesai, Anda akan melihat pesan seperti:
storagepool.containerstorage.azure.com/ephemeraldisk created
Anda juga dapat menjalankan perintah ini untuk memeriksa status kumpulan penyimpanan. Ganti
<storage-pool-name>
dengan nilai nama kumpulan penyimpanan Anda. Untuk contoh ini, nilainya adalah ephemeraldisk.kubectl describe sp <storage-pool-name> -n acstor
Saat kumpulan penyimpanan dibuat, Azure Container Storage akan membuat kelas penyimpanan atas nama Anda, menggunakan konvensi acstor-<storage-pool-name>
penamaan .
Menampilkan kelas penyimpanan yang tersedia
Saat kumpulan penyimpanan siap digunakan, Anda harus memilih kelas penyimpanan untuk menentukan bagaimana penyimpanan dibuat secara dinamis saat membuat klaim volume persisten dan menyebarkan volume persisten.
Jalankan kubectl get sc
untuk menampilkan kelas penyimpanan yang tersedia. Anda akan melihat kelas penyimpanan yang disebut acstor-<storage-pool-name>
.
Penting
Jangan gunakan kelas penyimpanan yang ditandai internal. Ini adalah kelas penyimpanan internal yang diperlukan agar Azure Container Storage berfungsi.
Menyebarkan pod dengan volume ephemeral generik
Buat pod menggunakan Fio (Flexible I/O Tester) untuk benchmarking dan simulasi beban kerja, yang menggunakan volume sementara generik.
Gunakan editor teks favorit Anda untuk membuat file manifes YAML seperti
code acstor-pod.yaml
.Tempelkan kode berikut dan simpan file.
kind: Pod apiVersion: v1 metadata: name: fiopod spec: nodeSelector: acstor.azure.com/io-engine: acstor containers: - name: fio image: nixery.dev/shell/fio args: - sleep - "1000000" volumeMounts: - mountPath: "/volume" name: ephemeralvolume volumes: - name: ephemeralvolume ephemeral: volumeClaimTemplate: metadata: labels: type: my-ephemeral-volume spec: accessModes: [ "ReadWriteOnce" ] storageClassName: "acstor-ephemeraldisk-nvme" # replace with the name of your storage class if different resources: requests: storage: 1Gi
Terapkan file manifes YAML untuk menyebarkan pod.
kubectl apply -f acstor-pod.yaml
Anda akan melihat output yang mirip dengan hal berikut:
pod/fiopod created
Periksa apakah pod berjalan dan bahwa klaim volume sementara telah berhasil terikat ke pod:
kubectl describe pod fiopod kubectl describe pvc fiopod-ephemeralvolume
Periksa pengujian fio untuk melihat statusnya saat ini:
kubectl exec -it fiopod -- fio --name=benchtest --size=800m --filename=/volume/test --direct=1 --rw=randrw --ioengine=libaio --bs=4k --iodepth=16 --numjobs=8 --time_based --runtime=60
Anda sekarang telah menyebarkan pod yang menggunakan Ephemeral Disk sebagai penyimpanannya, dan Anda dapat menggunakannya untuk beban kerja Kubernetes Anda.
Memperluas kumpulan penyimpanan
Anda dapat memperluas kumpulan penyimpanan yang didukung oleh NVMe lokal atau SSD sementara untuk meningkatkan skala dengan cepat dan tanpa waktu henti. Menyusutkan kumpulan penyimpanan saat ini tidak didukung.
Karena kumpulan penyimpanan yang didukung oleh Disk Ephemeral menggunakan sumber daya penyimpanan lokal pada node kluster AKS (VM), memperluas kumpulan penyimpanan memerlukan penambahan node lain ke kluster. Ikuti instruksi ini untuk memperluas kumpulan penyimpanan.
Jalankan perintah berikut untuk menambahkan simpul ke kluster AKS. Ganti
<cluster-name>
,<nodepool name>
, dan<resource-group-name>
dengan nilai Anda sendiri. Untuk mendapatkan nama kumpulan simpul Anda, jalankankubectl get nodes
.az aks nodepool add --cluster-name <cluster name> --name <nodepool name> --resource-group <resource group> --node-vm-size Standard_L8s_v3 --node-count 1 --labels acstor.azure.com/io-engine=acstor
Jalankan
kubectl get nodes
dan Anda akan melihat bahwa simpul telah ditambahkan ke kluster.Jalankan
kubectl get sp -A
dan Anda akan melihat bahwa kapasitas kumpulan penyimpanan telah meningkat.
Menghapus kumpulan penyimpanan
Jika Anda ingin menghapus kumpulan penyimpanan, jalankan perintah berikut. Ganti <storage-pool-name>
dengan nama kumpulan penyimpanan.
kubectl delete sp -n acstor <storage-pool-name>
Opsional: Membuat kumpulan penyimpanan dengan replikasi volume (hanya NVMe)
Aplikasi yang menggunakan NVMe lokal dapat memanfaatkan replikasi penyimpanan untuk meningkatkan ketahanan. Replikasi saat ini tidak didukung untuk SSD sementara.
Azure Container Storage saat ini mendukung konfigurasi tiga replika dan lima replika. Jika Anda menentukan tiga replika, Anda harus memiliki setidaknya tiga simpul di kluster AKS Anda. Jika Anda menentukan lima replika, Anda harus memiliki setidaknya lima simpul.
Ikuti langkah-langkah ini untuk membuat kumpulan penyimpanan menggunakan NVMe lokal dengan replikasi.
Catatan
Karena kumpulan penyimpanan Disk Sementara menggunakan semua disk NVMe yang tersedia, Anda harus menghapus kumpulan penyimpanan NVMe lokal Disk Sementara yang ada sebelum membuat kumpulan penyimpanan baru dengan replikasi.
Gunakan editor teks favorit Anda untuk membuat file manifes YAML seperti
code acstor-storagepool.yaml
.Tempelkan kode berikut dan simpan file. Nilai nama kumpulan penyimpanan bisa menjadi apa pun yang Anda inginkan. Atur replika ke 3 atau 5.
apiVersion: containerstorage.azure.com/v1 kind: StoragePool metadata: name: nvme namespace: acstor spec: poolType: ephemeralDisk: diskType: nvme replicas: 3
Terapkan file manifes YAML untuk membuat kumpulan penyimpanan.
kubectl apply -f acstor-storagepool.yaml
Saat pembuatan kumpulan penyimpanan selesai, Anda akan melihat pesan seperti:
storagepool.containerstorage.azure.com/nvme created
Anda juga dapat menjalankan perintah ini untuk memeriksa status kumpulan penyimpanan. Ganti
<storage-pool-name>
dengan nilai nama kumpulan penyimpanan Anda. Untuk contoh ini, nilainya adalah nvme.kubectl describe sp <storage-pool-name> -n acstor
Saat kumpulan penyimpanan dibuat, Azure Container Storage akan membuat kelas penyimpanan atas nama Anda, menggunakan konvensi acstor-<storage-pool-name>
penamaan . Sekarang Anda dapat menampilkan kelas penyimpanan yang tersedia dan membuat klaim volume persisten.
Buat klaim volume persisten
Klaim volume persisten (PVC) digunakan untuk mem-provisikan penyimpanan secara otomatis berdasarkan kelas penyimpanan. Ikuti langkah-langkah ini untuk membuat PVC menggunakan kelas penyimpanan baru.
Gunakan editor teks favorit Anda untuk membuat file manifes YAML seperti
code acstor-pvc.yaml
.Tempelkan kode berikut dan simpan file. Nilai PVC
name
dapat menjadi apa pun yang Anda inginkan.apiVersion: v1 kind: PersistentVolumeClaim metadata: name: ephemeralpvc spec: accessModes: - ReadWriteOnce storageClassName: acstor-ephemeraldisk-nvme # replace with the name of your storage class if different resources: requests: storage: 100Gi
Terapkan file manifes YAML untuk membuat PVC.
kubectl apply -f acstor-pvc.yaml
Anda akan melihat output yang serupa dengan:
persistentvolumeclaim/ephemeralpvc created
Anda dapat memverifikasi status PVC dengan menjalankan perintah berikut:
kubectl describe pvc ephemeralpvc
Setelah PVC dibuat, PVC siap digunakan oleh pod.
Menyebarkan pod dan melampirkan volume persisten
Buat pod menggunakan Fio (Flexible I/O Tester) untuk simulasi benchmarking dan beban kerja, dan tentukan jalur pemasangan untuk volume persisten. Untuk claimName, gunakan nilai nama yang Anda gunakan saat membuat klaim volume persisten.
Gunakan editor teks favorit Anda untuk membuat file manifes YAML seperti
code acstor-pod.yaml
.Tempelkan kode berikut dan simpan file.
kind: Pod apiVersion: v1 metadata: name: fiopod spec: nodeSelector: acstor.azure.com/io-engine: acstor volumes: - name: ephemeralpv persistentVolumeClaim: claimName: ephemeralpvc containers: - name: fio image: nixery.dev/shell/fio args: - sleep - "1000000" volumeMounts: - mountPath: "/volume" name: ephemeralpv
Terapkan file manifes YAML untuk menyebarkan pod.
kubectl apply -f acstor-pod.yaml
Anda akan melihat output yang mirip dengan hal berikut:
pod/fiopod created
Periksa apakah pod berjalan dan bahwa klaim volume persisten telah berhasil terikat ke pod:
kubectl describe pod fiopod kubectl describe pvc ephemeralpvc
Periksa pengujian fio untuk melihat statusnya saat ini:
kubectl exec -it fiopod -- fio --name=benchtest --size=800m --filename=/volume/test --direct=1 --rw=randrw --ioengine=libaio --bs=4k --iodepth=16 --numjobs=8 --time_based --runtime=60
Anda sekarang telah menyebarkan pod yang menggunakan Ephemeral Disk sebagai penyimpanannya, dan Anda dapat menggunakannya untuk beban kerja Kubernetes Anda.
Melepas dan memasang kembali volume persisten
Untuk melepaskan volume persisten, hapus pod tempat volume persisten dilampirkan. Ganti <pod-name>
dengan nama pod, misalnya fiopod.
kubectl delete pods <pod-name>
Untuk memasang kembali volume persisten, cukup referensikan nama klaim volume persisten dalam file manifes YAML seperti yang dijelaskan dalam Menyebarkan pod dan melampirkan volume persisten.
Untuk memeriksa volume persisten mana yang terikat dengan klaim volume persisten, jalankan kubectl get pvc <persistent-volume-claim-name>
.