Menggunakan Pratinjau Azure Container Storage dengan disk terkelola Azure
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 disk terkelola Azure sebagai penyimpanan back-end untuk beban kerja Kubernetes Anda. Pada akhirnya, Anda akan memiliki pod yang menggunakan disk terkelola Azure sebagai penyimpanannya.
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 disk terkelola Azure, kluster AKS Anda harus memiliki kumpulan simpul setidaknya tiga VM tujuan umum seperti standard_d4s_v5 untuk node kluster, masing-masing dengan 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. Jika Anda memiliki disk terkelola Azure yang sudah disediakan, Anda dapat membuat kumpulan penyimpanan yang telah disediakan sebelumnya menggunakan disk tersebut.
Penting
Jika Anda ingin menggunakan kunci Anda sendiri untuk mengenkripsi volume Anda alih-alih menggunakan kunci yang dikelola Microsoft, jangan buat kumpulan penyimpanan Anda menggunakan langkah-langkah di bagian ini. Sebagai gantinya, buka Mengaktifkan enkripsi sisi server dengan kunci yang dikelola pelanggan dan ikuti langkah-langkah di sana.
Ikuti langkah-langkah ini untuk membuat kumpulan penyimpanan untuk Azure Disks.
Gunakan editor teks favorit Anda untuk membuat file manifes YAML seperti
code acstor-storagepool.yaml
.Tempelkan dalam kode berikut. Nilai nama kumpulan penyimpanan bisa menjadi apa pun yang Anda inginkan. Untuk skuName, tentukan tingkat performa dan redundansi. Nilai yang dapat diterima adalah Premium_LRS, Standard_LRS, StandardSSD_LRS, UltraSSD_LRS, Premium_ZRS, PremiumV2_LRS, dan StandardSSD_ZRS. Untuk penyimpanan, tentukan jumlah kapasitas penyimpanan untuk kumpulan di Gi atau Ti. Simpan file.
apiVersion: containerstorage.azure.com/v1 kind: StoragePool metadata: name: azuredisk namespace: acstor spec: poolType: azureDisk: skuName: Premium_LRS resources: requests: storage: 1Ti
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/azuredisk 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 azuredisk.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.
Membuat kumpulan penyimpanan yang telah disediakan sebelumnya
Jika Anda memiliki disk terkelola Azure yang sudah disediakan, Anda dapat membuat kumpulan penyimpanan yang telah disediakan sebelumnya menggunakan disk tersebut. Karena disk sudah disediakan, Anda tidak perlu menentukan skuName atau kapasitas penyimpanan saat membuat kumpulan penyimpanan.
Ikuti langkah-langkah ini untuk membuat kumpulan penyimpanan yang telah disediakan sebelumnya untuk Azure Disks.
Masuk ke portal Azure.
Untuk setiap disk yang ingin Anda gunakan, navigasikan ke disk terkelola Azure dan pilih Pengaturan> Properti. Salin seluruh string di bawah ID Sumber Daya dan letakkan dalam file teks.
Gunakan editor teks favorit Anda untuk membuat file manifes YAML seperti
code acstor-storagepool.yaml
.Tempelkan dalam kode berikut. Nilai nama kumpulan penyimpanan bisa menjadi apa pun yang Anda inginkan. Ganti
<resource-id>
dengan ID sumber daya dari setiap disk terkelola. Simpan file.apiVersion: containerstorage.azure.com/v1 kind: StoragePool metadata: name: sp-preprovisioned namespace: acstor spec: poolType: azureDisk: disks: - reference <resource-id1> - reference <resource-id2>
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/sp-preprovisioned 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 akan diprovisikan sebelumnya sp.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.
Mengaktifkan enkripsi sisi server dengan kunci yang dikelola pelanggan
Jika Anda sudah membuat kumpulan penyimpanan atau lebih suka menggunakan kunci enkripsi default yang dikelola Microsoft, lewati bagian ini dan lanjutkan ke Tampilkan kelas penyimpanan yang tersedia.
Semua data dalam akun penyimpanan Azure dienkripsi saat tidak aktif. Secara default, data dienkripsi dengan kunci yang dikelola Microsoft. Untuk kontrol lebih besar atas kunci enkripsi, Anda dapat menyediakan kunci yang dikelola pelanggan (CMK) untuk mengenkripsi volume persisten yang akan Anda buat dari kumpulan penyimpanan Disk Azure.
Untuk menggunakan kunci Anda sendiri, Anda harus memiliki Azure Key Vault dengan kunci. Key Vault harus mengaktifkan perlindungan penghapusan menyeluruh, dan harus menggunakan model izin Azure RBAC. Pelajari selengkapnya tentang kunci yang dikelola pelanggan di Linux.
Saat membuat kumpulan penyimpanan, Anda harus menentukan parameter CMK. Parameter enkripsi CMK yang diperlukan adalah:
- keyVersion menentukan versi kunci yang akan digunakan
- keyName adalah nama kunci Anda
- keyVaultUri adalah pengidentifikasi sumber daya seragam Azure Key Vault, misalnya
https://user.vault.azure.net
- Identitas menentukan identitas terkelola dengan akses ke vault, misalnya
/subscriptions/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/resourcegroups/MC_user-acstor-westus2-rg_user-acstor-westus2_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/user-acstor-westus2-agentpool
Ikuti langkah-langkah ini untuk membuat kumpulan penyimpanan menggunakan kunci enkripsi Anda sendiri. Semua volume persisten yang dibuat dari kumpulan penyimpanan ini akan dienkripsi menggunakan kunci yang sama.
Gunakan editor teks favorit Anda untuk membuat file manifes YAML seperti
code acstor-storagepool-cmk.yaml
.Tempelkan kode berikut, berikan parameter yang diperlukan, dan simpan file. Nilai nama kumpulan penyimpanan bisa menjadi apa pun yang Anda inginkan. Untuk skuName, tentukan tingkat performa dan redundansi. Nilai yang dapat diterima adalah Premium_LRS, Standard_LRS, StandardSSD_LRS, UltraSSD_LRS, Premium_ZRS, PremiumV2_LRS, dan StandardSSD_ZRS. Untuk penyimpanan, tentukan jumlah kapasitas penyimpanan untuk kumpulan di Gi atau Ti. Pastikan untuk menyediakan parameter enkripsi CMK.
apiVersion: containerstorage.azure.com/v1 kind: StoragePool metadata: name: azuredisk namespace: acstor spec: poolType: azureDisk: skuName: Premium_LRS encryption: { keyVersion: "<key-version>", keyName: "<key-name>", keyVaultUri: "<key-vault-uri>", identity: "<identity>" } resources: requests: storage: 1Ti
Terapkan file manifes YAML untuk membuat kumpulan penyimpanan.
kubectl apply -f acstor-storagepool-cmk.yaml
Saat pembuatan kumpulan penyimpanan selesai, Anda akan melihat pesan seperti:
storagepool.containerstorage.azure.com/azuredisk 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 azuredisk.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.
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: azurediskpvc spec: accessModes: - ReadWriteOnce storageClassName: acstor-azuredisk # 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/azurediskpvc created
Anda dapat memverifikasi status PVC dengan menjalankan perintah berikut:
kubectl describe pvc azurediskpvc
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: azurediskpv persistentVolumeClaim: claimName: azurediskpvc containers: - name: fio image: nixery.dev/shell/fio args: - sleep - "1000000" volumeMounts: - mountPath: "/volume" name: azurediskpv
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 azurediskpvc
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 Azure Disks 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>
.
Memperluas kumpulan penyimpanan
Anda dapat memperluas kumpulan penyimpanan yang didukung oleh Azure Disks untuk meningkatkan skala dengan cepat dan tanpa waktu henti. Menyusutkan kumpulan penyimpanan saat ini tidak didukung.
Catatan
Memperluas kumpulan penyimpanan dapat meningkatkan biaya Anda untuk Azure Container Storage dan Azure Disks. Lihat halaman harga Azure Container Storage.
Ikuti instruksi ini untuk memperluas kumpulan penyimpanan yang ada untuk Azure Disks.
Menggunakan editor teks, buka file manifes YAML yang Anda gunakan untuk membuat kumpulan penyimpanan, misalnya
code acstor-storagepool.yaml
.Ganti entri penyimpanan yang ditentukan dalam file manifes YAML dengan nilai yang diinginkan. Nilai ini harus lebih besar dari kapasitas kumpulan penyimpanan saat ini. Misalnya, jika spesifikasi diatur ke
storage: 1Ti
, ubah menjadistorage: 2Ti
. Jika Anda membuat kumpulan penyimpanan yang telah disediakan sebelumnya, tidak akan ada entri penyimpanan karena kumpulan penyimpanan mewarisi ukuran kapasitas dari Azure Disk yang telah disediakan sebelumnya. Jika Anda tidak melihat entri penyimpanan di YAML, tambahkan kode berikut yang menentukan kapasitas penyimpanan yang diinginkan lalu simpan file manifes:spec: resources: requests: storage: 2Ti
Terapkan file manifes YAML untuk memperluas kumpulan penyimpanan.
kubectl apply -f acstor-storagepool.yaml
Jalankan perintah ini untuk memeriksa status kumpulan penyimpanan. Ganti
<storage-pool-name>
dengan nilai nama kumpulan penyimpanan Anda.kubectl describe sp <storage-pool-name> -n acstor
Anda akan melihat pesan seperti "kumpulan penyimpanan sedang diperluas." Jalankan perintah lagi setelah beberapa menit dan pesan akan hilang.
Jalankan
kubectl get sp -A
dan kumpulan penyimpanan harus mencerminkan ukuran baru.
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>