Saat menjalankan beban kerja di klaster Container Service for Kubernetes (ACK), Anda mungkin memerlukan penyimpanan persisten untuk data aplikasi, penyimpanan data sensitif dan konfigurasi, serta penyediaan sumber daya penyimpanan secara dinamis. Klaster ACK menyediakan fitur penyimpanan kontainer melalui plugin Container Storage Interface (CSI). Fitur ini menggunakan layanan penyimpanan Alibaba Cloud untuk menyediakan dan mengelola volume yang disediakan secara statis atau dinamis.
Volume yang Didukung
Komunitas Kubernetes merekomendasikan penggunaan plugin CSI. Fitur penyimpanan kontainer ACK diimplementasikan berdasarkan plugin CSI dan terintegrasi dengan Elastic Block Storage (EBS), File Storage NAS (NAS), Object Storage Service (OSS), dan disk lokal. Plugin ini sepenuhnya kompatibel dengan layanan penyimpanan asli Kubernetes seperti volume emptyDir, volume hostPath, Secrets, dan ConfigMaps. Gambar berikut menunjukkan volume yang didukung oleh plugin CSI.
Alibaba Cloud ACK memungkinkan pod terhubung secara otomatis ke layanan penyimpanan seperti disk Alibaba Cloud, NAS, OSS, dan volume lokal. Tabel berikut menjelaskan fitur utama, skenario penggunaan, dan aturan penagihan dari volume tersebut.
Plugin CSI mendukung pemasangan volume yang disediakan secara statis dan dinamis. Untuk memasang volume yang disediakan secara statis, Anda harus membuat Persistent Volume (PV) dan Persistent Volume Claim (PVC) secara manual. Jika Anda memerlukan sejumlah besar PV dan PVC, Anda dapat membuat dan memasang volume yang disediakan secara dinamis. Definisi PV dan PVC:
PV
PV adalah sumber daya penyimpanan dalam klaster Kubernetes. Siklus hidup PV independen dari siklus hidup pod yang memiliki PV terpasang. Berbagai jenis PV dapat disediakan menggunakan berbagai jenis StorageClasses.
PVC
PVC adalah permintaan penyimpanan dalam klaster. PV adalah sumber daya node yang dikonsumsi oleh pod. PVC adalah klaim yang mengonsumsi PV. Ketika PV tidak mencukupi, PVC dapat menyediakan PV secara dinamis.
Layanan Penyimpanan | Volume Statis | Volume Dinamis | Penyimpanan ACK Default | Fitur Utama | Skema | Penagihan |
Disk Alibaba Cloud | Didukung | Didukung | Ya | Penyimpanan non-bersama. Disk hanya dapat dipasang ke satu node. |
Untuk informasi lebih lanjut, lihat Volume Disk. | Untuk informasi lebih lanjut tentang item yang dapat ditagih dari disk, lihat Perangkat Penyimpanan Blok. Untuk informasi lebih lanjut tentang harga disk, kunjungi halaman produk ECS. |
NAS | Didukung | Didukung | Ya | Penyimpanan bersama yang menyediakan performa tinggi dan throughput tinggi. |
Untuk informasi lebih lanjut, lihat Volume NAS. | |
OSS | Didukung | Didukung | Ya | Penyimpanan bersama yang mendukung sistem file di ruang pengguna. |
Catatan Volume OSS dipasang menggunakan ossfs, yang diimplementasikan sebagai sistem file di ruang pengguna (FUSE). Performa tulis terbatas ketika Anda menggunakan volume OSS. Kami sarankan Anda menggunakan volume lain dalam skenario yang memerlukan performa tulis tinggi. Untuk informasi lebih lanjut, lihat Volume OSS. |
Layanan penyimpanan Alibaba Cloud memiliki batasan berbeda terkait penggunaan volume. Untuk informasi lebih lanjut, lihat bagian berikut.
Batasan
Saat menggunakan plugin CSI di klaster ACK, perhatikan batasan pada plugin CSI dan layanan penyimpanan Alibaba Cloud.
Batasan pada versi klaster
Saat menggunakan plugin CSI di klaster ACK, pastikan bahwa klaster ACK menjalankan Kubernetes versi 1.14 atau lebih baru dan parameter --enable-controller-attach-detach diatur ke true untuk kubelet. Untuk informasi lebih lanjut tentang cara memperbarui klaster ACK, lihat Memperbarui Klaster ACK Secara Manual.
Batasan pada Plugin CSI
Alibaba Cloud CSI bersifat open source di komunitas Kubernetes dan mendukung klaster ACK. CSI tidak mendukung sepenuhnya klaster non-ACK seperti klaster yang tidak diterapkan di lingkungan Alibaba Cloud dan klaster yang dikelola sendiri di Alibaba Cloud karena alasan seperti konfigurasi klaster, manajemen izin, dan perbedaan jaringan. Jika klaster Anda adalah klaster non-ACK, Anda dapat membaca kode sumber dan memodifikasi konfigurasi CSI untuk memungkinkan dukungan CSI. Untuk informasi lebih lanjut, lihat alibaba-cloud-csi-driver.
Batasan pada Volume
Jenis Volume | Batasan |
Volume Disk |
|
Volume NAS |
|
Volume OSS |
|
Fitur Penyimpanan Kontainer
Tabel berikut menjelaskan fitur penyimpanan yang didukung oleh klaster ACK yang berbeda.
Tipe Penyimpanan | Fitur | Klaster ACK Terkelola dan Klaster ACK Khusus | Klaster ACK Serverless | Klaster ACK yang Mendukung Kontainer Sandbox |
EBS | Pemasangan dan pelepasan disk |
|
|
|
Pengubahan ukuran online |
|
|
| |
Snapshot |
|
|
| |
Pemantauan I/O Kontainer |
|
|
| |
Sistem File | XFS dan ext4 didukung. | XFS dan ext4 didukung. | XFS dan ext4 didukung. | |
Perangkat Blok dan Perangkat Bare Metal |
|
|
| |
Pemulihan Data dari Snapshot |
|
|
| |
Pengaturan Antrian Disk |
|
|
| |
Enkripsi berbasis Customer Managed Key (CMK) dan Bring Your Own Key (BYOK) |
|
|
| |
Kesadaran Multi-Zona |
|
|
| |
Label Kustom |
|
|
| |
Migrasi Lintas Host |
|
|
| |
NAS | Pembuatan, Pemasangan, dan Pelepasan Sistem File NAS |
|
|
|
Pemasangan dan Pelepasan Sistem File Samba |
|
|
| |
Keranjang Sampah (CNFS) |
|
|
| |
Subdirektori atau Direktori Bersama dari Volume Dinamis (CNFS) |
|
|
| |
Enkripsi Berbasis CMK (CNFS dan Sistem File NAS Ekstrem) |
|
|
| |
Batas Kuota (CNFS) |
|
|
| |
Pemantauan Kapasitas dan I/O (CNFS) |
|
|
| |
Pengubahan Ukuran Online (CNFS) |
|
|
| |
OSS | Pemasangan dan Pelepasan Bucket OSS |
|
|
|
Enkripsi Berbasis BYOK |
|
|
| |
Penyimpanan Lokal | Manajemen Penyimpanan Blok dengan Linux Volume Manager (LVM) |
|
|
|
Konfigurasi Otomatis Grup Volume |
|
|
| |
Penjadwalan Kesadaran Kapasitas LVM |
|
|
| |
Memori Persisten (PMem) yang Dapat Diakses Langsung |
|
|
| |
PMem yang Dikelola LVM |
|
|
|
CNFS
Anda dapat menggunakan Container Network File System (CNFS) untuk mengelola sumber daya penyimpanan kontainer di Klaster ACK Pro. CNFS meningkatkan performa volume NAS dan OSS serta menegakkan kualitas layanan (QoS). CNFS memungkinkan ACK untuk membuat, menghapus, mendeskripsikan, memasang, memantau, dan menskalakan penyimpanan file individu Alibaba Cloud menggunakan Kubernetes CustomResourceDefinitions (CRD). CNFS juga menyediakan fitur seperti keranjang sampah, kuota sumber daya, dan pemantauan performa I/O volume. Untuk informasi lebih lanjut tentang CNFS, lihat CNFS, Mengelola Siklus Hidup Sistem File NAS, dan Mengelola Siklus Hidup Bucket OSS.
Komponen CSI
Plugin CSI mencakup komponen csi-plugin dan csi-provisioner yang digunakan untuk membuat, memasang, dan melepas volume secara otomatis. Secara default, komponen CSI diterapkan di Klaster ACK Terkelola dan Klaster ACK Khusus. Untuk informasi lebih lanjut tentang komponen CSI dan cara memperbarui komponen tersebut, lihat Mengelola Komponen csi-plugin dan csi-provisioner.
Izin RBAC
PV adalah sumber daya tingkat klaster, sedangkan PVC adalah sumber daya tingkat namespace. Jika peran default yang disediakan oleh ACK, seperti administrator dan insinyur O&M, tidak memenuhi kebutuhan kontrol akses Anda, Anda dapat mengonfigurasi aturan RBAC kustom. Sebagai contoh, peran insinyur O&M memberikan izin baca-tulis untuk PVC dalam namespace yang berwenang dan akses baca-saja ke PV di seluruh klaster. Namun, peran ini membatasi tindakan seperti membuat PV baru. Anda dapat menyesuaikan aturan RBAC dalam kasus seperti itu.
Untuk informasi lebih lanjut, lihat Gunakan RBAC untuk Mengelola Izin Operasi pada Sumber Daya di Klaster.
FAQ
Bagaimana cara memeriksa plugin penyimpanan yang digunakan oleh klaster?
Anda dapat memeriksa plugin penyimpanan yang digunakan oleh klaster dengan memeriksa anotasi node di konsol ACK atau memeriksa parameter kubelet di kubectl.
Periksa Anotasi Node di Konsol ACK
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Di halaman Clusters, klik nama klaster yang ingin Anda ubah. Di panel navigasi kiri, pilih .
Di halaman Node, temukan node yang ingin Anda kelola, klik More di kolom Actions, lalu pilih Details.
Di tab Overview, periksa anotasi node. Jika anotasi
volumes.kubernetes.io/controller-managed-attach-detach: trueada, klaster menggunakan plugin CSI. Jika tidak, klaster menggunakan plugin FlexVolume.
Periksa Parameter Kubelet di kubectl
Jalankan perintah berikut untuk memeriksa parameter kubelet:
ps -ef | grep kubeletOutput yang Diharapkan:
--enable-controller-attach-detach=trueJika nilai parameter
--enable-controller-attach-detachadalahtrue, klaster menggunakan plugin CSI.Jika nilai parameter
--enable-controller-attach-detachadalahfalse, klaster menggunakan plugin FlexVolume.
Bagaimana cara memberikan izin secara manual kepada plugin CSI?
Sebelum menggunakan plugin CSI untuk memasang, melepas, membuat, dan menghapus volume, Anda harus memberikan plugin izin untuk mengakses sumber daya cloud lainnya. Dalam banyak kasus, plugin CSI dipasang secara default di klaster dan diberikan izin terkait. Jika Anda ingin memberikan izin secara manual kepada plugin CSI di klaster Anda, Anda dapat menggunakan pasangan AccessKey atau Peran Resource Access Management (RAM). Secara default, sistem memberikan izin kepada plugin CSI menggunakan peran RAM.
Gunakan Pasangan AccessKey
Tentukan pasangan AccessKey di template penyebaran CSI.
Buat Secret untuk meneruskan pasangan AccessKey sebagai variabel lingkungan.
Gunakan Peran RAM: Plugin CSI menggunakan peran AliyunCSManagedCsiRole untuk mengakses sumber daya layanan Alibaba Cloud lainnya. Untuk informasi lebih lanjut, lihat Peran ACK. Untuk informasi lebih lanjut tentang cara memberikan izin ke peran RAM, lihat Memberikan Izin ke Peran RAM.
Klaster ACK Terkelola: Token peran RAM yang digunakan oleh plugin CSI disimpan di Secret bernama addon.csi.token. Untuk memberikan izin kepada plugin CSI menggunakan peran RAM dan mengizinkan plugin untuk memanggil operasi API, Anda hanya perlu memasang Secret ke plugin.
Klaster ACK Khusus: Plugin CSI menggunakan peran RAM yang ditetapkan ke node Elastic Compute Service (ECS) tempat pod berada.