Driver Antarmuka Penyimpanan Kontainer (CSI) pada Azure Kubernetes Service (AKS)
Container Storage Interface (CSI) adalah standar untuk mengekspos blok abritrer dan sistem penyimpanan file ke beban kerja kontainer pada Kube. Dengan mengadopsi dan menggunakan CSI, Azure Kubernetes Service (AKS) dapat menulis, menyebarkan, dan melakukan iterasi plug-in untuk mengekspos sistem penyimpanan baru atau yang ada di Kube tanpa harus menyentuh kode inti Kube dan menunggu siklus rilisnya.
Dukungan driver penyimpanan CSI pada AKS memungkinkan Anda untuk menggunakan secara asli:
- Azure Disks dapat digunakan untuk membuat sumber daya DataDisk Kubernetes. Disk dapat menggunakan Azure Premium Storage, didukung oleh SSD berkinerja tinggi, atau Standard Storage, yang didukung oleh HDD biasa atau SSD Standar. Untuk sebagian besar beban kerja produksi dan pengembangan, gunakan Premium Storage. Disk Azure dipasang sebagai ReadWriteOnce dan hanya tersedia untuk satu node di AKS. Untuk volume penyimpanan yang dapat diakses oleh beberapa simpul secara bersamaan, gunakan Azure Files.
- Azure Files dapat digunakan untuk memasang berbagi SMB 3.0/3.1 yang didukung oleh akun penyimpanan Azure ke pod. Dengan Azure Files, Anda dapat berbagi data di beberapa simpul dan pod. Azure Files dapat menggunakan penyimpanan Azure Standard yang didukung oleh HDD biasa atau penyimpanan Azure Premium yang didukung oleh SSD berperforma tinggi.
- Penyimanan Azure Blob dapat digunakan untuk memasang penyimpanan Blob (atau penyimpanan objek) sebagai sistem file ke dalam kontainer atau pod. Menggunakan penyimpanan Blob memungkinkan kluster Anda mendukung aplikasi yang bekerja dengan himpunan data besar yang tidak terstruktur seperti data file log, gambar atau dokumen, HPC, dan lainnya. Selain itu, jika Anda menyerap data ke penyimpanan Azure Data Lake, Anda dapat langsung memasang dan menggunakannya di AKS tanpa mengonfigurasi sistem file sementara lainnya.
Tip
Jika Anda menginginkan solusi yang dikelola sepenuhnya untuk akses tingkat blok ke data, pertimbangkan untuk menggunakan Azure Container Storage alih-alih driver CSI. Azure Container Storage terintegrasi dengan Kubernetes, memungkinkan provisi volume persisten yang dinamis dan otomatis. Azure Container Storage mendukung Azure Disks, Ephemeral Disks, dan Azure Elastic SAN (pratinjau) sebagai penyimpanan pendukung, menawarkan fleksibilitas dan skalabilitas untuk aplikasi stateful yang berjalan pada kluster Kubernetes.
- Anda memerlukan Azure CLI versi 2.42 atau yang lebih baru yang diinstal dan dikonfigurasi. Jalankan
az --version
untuk menemukan versinya. Jika Anda perlu memasang atau meningkatkan, lihat Memasang Azure CLI. - Jika driver penyimpanan CSI sumber terbuka diinstal pada kluster Anda, hapus instalan sebelum mengaktifkan driver CSI penyimpanan Azure.
- Untuk menerapkan Azure Policy untuk definisi kebijakan AKS kluster Kubernetes harus menggunakan driver Antarmuka Penyimpanan Kontainer (CSI) StorageClass, add-on Azure Policy perlu diaktifkan pada kluster baru dan yang sudah ada. Untuk kluster yang ada, tinjau Learn Azure Policy untuk Kubernetes untuk mengaktifkannya.
Driver penyimpanan CSI mendukung skenario berikut:
- Disk terkelola terenkripsi dengan kunci yang dikelola pelanggan menggunakan Azure Key Vaults yang disimpan di penyewa Microsoft Entra yang berbeda.
- Enkripsi disk Azure Storage Anda yang menghosting OS AKS dan data aplikasi dengan kunci yang dikelola pelanggan.
Untuk mengaktifkan driver penyimpanan CSI pada kluster baru, sertakan salah satu parameter berikut tergantung pada sistem penyimpanan:
--enable-disk-driver
memungkinkan Anda mengaktifkan driver Azure Disks CSI.--enable-file-driver
memungkinkan Anda mengaktifkan driver Azure Files CSI.--enable-blob-driver
memungkinkan Anda mengaktifkan driver CSI penyimpanan Azure Blob.--enable-snapshot-controller
memungkinkan Anda mengaktifkan pengontrol snapshot.
az aks update --name myAKSCluster --resource-group myResourceGroup --enable-disk-driver --enable-file-driver --enable-blob-driver --enable-snapshot-controller
Mungkin perlu waktu beberapa menit untuk menyelesaikan tindakan ini. Setelah selesai, Anda akan melihat di output status mengaktifkan driver di kluster Anda. Contoh berikut menyerupai bagian yang menunjukkan hasil saat mengaktifkan driver CSI penyimpanan Blob:
"storageProfile": {
"blobCsiDriver": {
"enabled": true
},
Untuk menonaktifkan driver penyimpanan CSI pada kluster baru, sertakan salah satu parameter berikut tergantung pada sistem penyimpanan:
--disable-disk-driver
memungkinkan Anda menonaktifkan driver Azure Disks CSI.--disable-file-driver
memungkinkan Anda menonaktifkan driver Azure Files CSI.--disable-blob-driver
memungkinkan Anda menonaktifkan driver CSI penyimpanan Azure Blob.--disable-snapshot-controller
memungkinkan Anda menonaktifkan pengontrol snapshot.
az aks create \
--name myAKSCluster \
--resource-group myResourceGroup \
--disable-disk-driver \
--disable-file-driver \
--disable-blob-driver \
--disable-snapshot-controller \
--generate-ssh-keys
Untuk menonaktifkan driver penyimpanan CSI pada kluster yang ada, gunakan salah satu parameter yang tercantum sebelumnya tergantung pada sistem penyimpanan:
az aks update \
--name myAKSCluster \
--resource-group myResourceGroup \
--disable-disk-driver \
--disable-file-driver \
--disable-blob-driver \
--disable-snapshot-controller
Catatan
Sebaiknya hapus objek PersistentVolumeClaim yang sesuai alih-alih objek PersistentVolume saat menghapus volume CSI. Provisi eksternal dalam driver CSI akan bereaksi terhadap penghapusan PersistentVolumeClaim dan berdasarkan kebijakan reklamasinya, ia mengeluarkan panggilan DeleteVolume terhadap perintah driver volume CSI untuk menghapus volume. Objek PersistentVolume kemudian dihapus.
Dimulai dengan Kubernetes versi 1.26, jenis volume persisten dalam pohon kubernetes.io/azure-disk dan kubernetes.io/azure-file tidak digunakan lagi dan tidak akan lagi didukung. Driver in-tree mengacu pada driver penyimpanan yang merupakan bagian dari kode Kubernetes inti versus driver CSI, yang merupakan plug-in.
Menghapus driver ini setelah penghentiannya tidak direncanakan, namun Anda harus bermigrasi ke driver CSI yang sesuai disk.csi.azure.com dan file.csi.azure.com. Untuk meninjau opsi migrasi untuk kelas penyimpanan Anda dan meningkatkan kluster Anda untuk menggunakan driver Azure Disks dan Azure Files CSI, lihat Bermigrasi dari driver in-tree ke CSI.
Jika Anda membuat kelas penyimpanan driver in-tree, kelas penyimpanan tersebut akan terus berfungsi sejak migrasi CSI diaktifkan setelah meningkatkan kluster Anda ke 1.21.x. Jika Anda ingin menggunakan fitur CSI, Anda harus melakukan migrasi.
- Untuk menggunakan driver CSI untuk Azure Disks, lihat Menggunakan Azure Disks dengan driver CSI.
- Untuk menggunakan driver CSI untuk Azure Files, lihat Menggunakan Azure Files dengan driver CSI.
- Untuk menggunakan driver CSI untuk penyimpanan Azure Blob, lihat Menggunakan penyimpanan Azure Blob dengan driver CSI
- Untuk informasi selengkapnya tentang praktik terbaik penyimpanan, lihat Praktik terbaik untuk penyimpanan dan pencadangan di Azure Kubernetes Service.
- Untuk informasi selengkapnya tentang migrasi CSI, lihat Kubernetes in-tree ke Migrasi Volume CSI.
Umpan balik Azure Kubernetes Service
Azure Kubernetes Service adalah proyek sumber terbuka. Pilih tautan untuk memberikan umpan balik: