Bantu tingkatkan halaman ini
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Untuk berkontribusi pada panduan pengguna ini, pilih Edit halaman ini pada GitHub tautan yang terletak di panel kanan setiap halaman.
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Penyimpanan instans Amazon EC2 untuk penyimpanan volume Kubernetes
Driver Amazon EC2 Instance Store CSI adalah plugin Container Storage Interface (CSI) yang memungkinkan Kubernetes menggunakan volume penyimpanan instans EC2. Volume penyimpanan instans menyediakan penyimpanan tingkat blok sementara yang secara fisik terpasang ke komputer host. Driver mengelola siklus hidup volume penyimpanan NVMe ini dan membuatnya tersedia sebagai volume persisten Kubernetes.
Driver CSI Amazon EC2 Instance Store berinteraksi dengan perangkat NVMe backend melalui operasi Linux lokal. Tidak ada panggilan AWS API yang terlibat, jadi tidak diperlukan peran IAM.
Pertimbangan-pertimbangan
penting
Driver CSI Amazon EC2 Instance Store akan menghapus semua data pada disk sementara selama penginstalan. Jika driver CSI lain, atau sistem pengelolaan volume (seperti LVM, sistem file mentah, LUKS, dll.) mengelola disk sementara, buat cadangan data Anda sebelum menginstal driver CSI Amazon EC2 Instance Store untuk menghindari kehilangan data.
-
Driver CSI Amazon EC2 Instance Store tidak berfungsi dengan Mode Otomatis EKS.
-
Anda tidak dapat memasang volume penyimpanan instans Amazon EC2 ke Pod Fargate.
-
Driver CSI Toko Instans Amazon EC2 tidak tersedia untuk jenis instans berikut: C1, C3, C4, C5d, C5ad, C6gd, D2, D3, D3en, DL1, E3, Edge1gD, F1, G2, G3, G4ad, G4dn, H1, HSM1, I2, I3,, i3en, M1, M2, M3, M4, M5d, M5ad, M5dn, M6gd, P2, P3, P3dn, P4d, P4de, R3, R4, R5d, R5ad, R5dn I3.metal, R6gd, T1, T2, X1, X1e, 2gd, dan Z1d.
-
Support disediakan untuk versi add-on terbaru dan satu versi sebelumnya. Perbaikan untuk bug atau kerentanan yang ditemukan di versi terbaru akan di-backport ke rilis sebelumnya sebagai versi minor baru.
-
Penyimpanan instance bersifat fana. Data hilang ketika node berakhir. Menerapkan replikasi tingkat aplikasi atau backup untuk data penting.
-
Ekspansi volume tidak didukung.
-
I/O throttling diaktifkan secara default untuk semua volume untuk memastikan pembagian bandwidth yang adil di seluruh beban kerja. Untuk informasi selengkapnya, lihat I/O pelambatan.
-
Instans yang baru diluncurkan telah memperbarui respons perintah identifikasi NVMe dibandingkan dengan instance lama dari jenis yang sama. Jika perkakas Anda bergantung pada nilai identifikasi NVMe tertentu, tinjau logika Anda untuk kompatibilitas. Untuk informasi selengkapnya, lihat Namespace NVMe berubah pada instance yang baru diluncurkan.
Prasyarat
Sebelum Anda mulai, pastikan Anda memiliki yang berikut:
-
Sebuah klaster Amazon EKS yang sudah ada. Untuk melihat semua versi add-on yang tersedia, jalankan perintah AWS CLI berikut:
aws eks describe-addon-versions --addon-name aws-ec2-local-instance-store-csi-driver
Menginstal driver CSI Toko Instans Amazon EC2
Driver CSI Amazon EC2 Instance Store tersedia sebagai add-on Amazon EKS. Menginstal driver memungkinkan klaster Anda menggunakan volume penyimpanan instance untuk penyimpanan pod.
Untuk menginstal driver, tambahkan add-on driver CSI Amazon EC2 Instance Store ke cluster Anda. Untuk petunjuknya, lihat Membuat add-on Amazon EKS. Untuk informasi selengkapnya tentang add-on EKS, lihat add-on Amazon EKS.
Menerapkan aplikasi sampel
Setelah menginstal driver, Anda dapat menerapkan aplikasi sampel untuk memverifikasi bahwa volume penyimpanan instance berfungsi dengan benar dengan klaster Anda. Anda dapat menerapkan berbagai contoh aplikasi dan memodifikasinya sesuai kebutuhan.
I/O pelambatan
Driver CSI Amazon EC2 Instance Store menyertakan I/O pelambatan bawaan untuk memastikan pembagian bandwidth yang adil di seluruh beban kerja pada pengontrol NVMe yang sama. Throttling diaktifkan secara default untuk semua volume, mencegah beban kerja tunggal dari mengkonsumsi I/O bandwidth yang tidak proporsional dengan mengorbankan beban kerja lain pada node yang sama.
Mengkonfigurasi throttling
Anda dapat mengonfigurasi pelambatan pada dua level:
-
StorageClass parameter — Atur
throttlingparameter ke"true"(default) atau"false"dalam StorageClass definisi Anda. -
Anotasi PVC - Atur
lis.csi.aws.com/throttlinganotasi ke"true"atau"false"pada individu. PersistentVolumeClaims Ini mengesampingkan StorageClass pengaturan saat ada.
Tabel berikut menunjukkan bagaimana StorageClass parameter dan anotasi PVC berinteraksi:
| Anotasi PVC | StorageClass Parameter | Hasil |
|---|---|---|
|
Tidak diatur |
Tidak diatur |
Throttling diaktifkan (default) |
|
Tidak diatur |
|
Pelambatan dinonaktifkan |
|
|
|
Pelambatan dinonaktifkan |
|
|
|
Throttling diaktifkan |
Membuat unthrottled StorageClass
Untuk menonaktifkan pelambatan untuk semua volume di: StorageClass
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: ec2-instance-store-unthrottled provisioner: lis.csi.aws.com parameters: throttling: "false" volumeBindingMode: WaitForFirstConsumer
Menonaktifkan pelambatan untuk satu PVC
Untuk menonaktifkan pelambatan pada PVC individu saat menggunakan throttled: StorageClass
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: high-perf-pvc annotations: lis.csi.aws.com/throttling: "false" spec: accessModes: - ReadWriteOnce storageClassName: ec2-instance-store-sc resources: requests: storage: 100Gi
Pertimbangan pelambatan
-
Throttling diaktifkan secara default untuk memberikan kinerja yang dapat diprediksi untuk semua beban kerja yang berbagi pengontrol NVMe.
-
Menonaktifkan pelambatan pada volume memungkinkannya mengkonsumsi lebih banyak I/O bandwidth, yang dapat memengaruhi kinerja volume terbatas lainnya pada pengontrol yang sama.
-
Pertimbangkan untuk mengisolasi beban kerja yang tidak dibatasi pada node khusus.
-
Untuk RAID-0 volume yang menjangkau beberapa pengontrol, pelambatan diterapkan ke semua partisi anggota.
-
Status throttle tetap ada di seluruh reboot node.
Namespace NVMe berubah pada instance yang baru diluncurkan
Instans EC2 yang baru diluncurkan dengan penyimpanan instans lokal telah memperbarui respons perintah NVMe Identify Controller dan Identify Namespace. Perubahan ini mendukung manajemen namespace NVMe pada penyimpanan instans lokal EC2. Instance yang sedang berjalan tidak terpengaruh, dan nilai tetap stabil sepanjang siklus hidup instance apa pun.
Nilai bidang yang diperbarui
Bidang berikut telah berubah pada instance yang baru diluncurkan dibandingkan dengan instance lama dari jenis yang sama:
Identifikasi Controller (nvme id-ctrl)
-
Bit 3 dari OACS: berubah dari 0 menjadi 1
-
Bit 8 dari OAES: berubah dari 0 menjadi 1
-
NN: berubah dari 1 menjadi nilai <= 256
-
TNVMCAP: diubah dari 0 ke ukuran sebenarnya dari penyimpanan lokal
Identifikasi Namespace () nvme id-ns
-
NVMCAP: diubah dari 0 ke ukuran sebenarnya dari penyimpanan lokal
-
NGUID: diubah dari semua nol menjadi NGUID yang valid
Semua nilai yang diperbarui sesuai dengan spesifikasi NVMe.
Lingkup perubahan
Perubahan ini berlaku secara eksklusif untuk penyimpanan instans lokal EC2. Volume Amazon EBS tidak terpengaruh. Untuk membedakan antara volume EBS dan penyimpanan instans lokal, jalankan perintah berikut:
sudo nvme list
Dalam output:
-
Amazon Elastic Block Store= Volume EBS -
Amazon EC2 NVMe Instance Storage= penyimpanan instans lokal
Mengambil nilai identifikasi NVMe
Untuk menanyakan nilai-nilai ini menggunakannvme-cli:
# Identify Controller sudo nvme id-ctrl /dev/nvme1 # Identify Namespace sudo nvme id-ns /dev/nvme1n1
Tindakan yang diperlukan
Tidak ada tindakan yang diperlukan. Perubahan ini kompatibel ke belakang dan mengikuti spesifikasi NVMe. Namun, jika aplikasi atau perkakas Anda memvalidasi atau bergantung pada nilai tertentu dari perintah identifikasi NVMe, tinjau logika Anda untuk memastikan kompatibilitas dengan nilai yang diperbarui pada instance yang baru diluncurkan.