Pada penyebaran kepadatan tinggi aplikasi berstatus seperti database atau beban kerja dengan banyak kontainer berumur pendek—misalnya integrasi berkelanjutan atau pemrosesan batch—setiap Pod memerlukan beberapa disk cloud untuk penyimpanan data. Ketika banyak Pod dijadwalkan ke node yang sama secara bersamaan, proses pemasangan serial bawaan secara signifikan memperlambat waktu startup Pod. Aktifkan pemasangan disk cloud secara paralel untuk mengatasi masalah ini.
Prasyarat
-
Kluster ACK yang dikelola versi 1.26 atau lebih baru diperlukan. Komponen csi-plugin dan csi-provisioner harus versi 1.30.4 atau lebih baru.
-
Instal dan konfigurasikan Cloud Assistant CLI. Untuk informasi selengkapnya, lihat Install Cloud Assistant CLI.
Catatan
-
Hanya disk cloud yang memiliki nomor seri disk yang mendukung pemasangan paralel. Untuk informasi selengkapnya tentang cara melihat nomor seri disk, lihat View Elastic Block Storage serial numbers.
Disk cloud yang dibuat sebelum 10 Juni 2020 tidak berisi informasi nomor seri yang dapat diidentifikasi. Anda tidak dapat mengaktifkan pemasangan paralel untuk disk tersebut karena tidak dapat dipasang secara normal.
-
Mencopot beberapa disk cloud dari node yang sama tetap merupakan operasi serial.
-
Setelah mengaktifkan pemasangan paralel, bidang
Deviceyang dikembalikan oleh operasi API seperti ECS DescribeDisks dan titik pemasangan yang ditampilkan di Konsol mungkin tidak dapat diandalkan. Jangan gunakan jalur pemasangan ini dalam aplikasi Anda. Sebagai gantinya, konfirmasikan jalur pemasangan aktual menggunakan nomor seri disk cloud.
Langkah Pengaktifan
Anda dapat mengaktifkan pemasangan disk cloud secara paralel dengan menjalankan skrip otomatis atau melalui konfigurasi manual.
Konfigurasi Menggunakan Skrip Otomatis
-
Simpan skrip berikut sebagai enable_parallel_attach.sh.
-
Jalankan skrip untuk mengaktifkan pemasangan disk cloud secara paralel.
bash enable_parallel_attach.sh <cluster ID>
Konfigurasi Manual
-
Tambahkan ECS Tags dalam konfigurasi kelompok node kluster. Atur kuncinya menjadi
supportConcurrencyAttachdan nilainya menjaditrue. Pastikan semua instance ECS baru menyertakan tag ini.Masuk ke Container Service Management Console . Di panel navigasi kiri, klik Clusters.
Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik .
-
Di halaman Node Pools, klik Actions untuk kelompok node target, lalu klik Edit.
-
Di halaman Edit Node Pool, pada bagian Advanced Options di bagian bawah, tambahkan ECS Tags dengan kunci
supportConcurrencyAttachdan nilaitrue.
-
Tambahkan tag dengan kunci
supportConcurrencyAttachdan nilaitrueke instance ECS semua node yang sudah ada di kluster. Untuk informasi selengkapnya, lihat Create and attach custom tags. -
Di panel navigasi kiri, pilih Operations > Add-ons. Klik tab Volumes, temukan komponen csi-provisioner, lalu klik Configure di pojok kanan bawah. Atur FeatureGate menjadi
DiskADController=true,DiskParallelAttach=true.CatatanSaat Anda mengatur
DiskADController=true, csi-provisioner menangani operasiattachdandetachdisk cloud. Saat Anda mengaturDiskParallelAttach=true, pemasangan disk cloud secara paralel diaktifkan. -
Setelah mengonfigurasi csi-provisioner, atur FeatureGate komponen csi-plugin menjadi
DiskADController=true.
Verifikasi kinerja pemasangan paralel disk cloud
Contoh ini membuat beberapa Pod yang memasang disk cloud pada node yang sama untuk memverifikasi bahwa pengaktifan pemasangan paralel meningkatkan kecepatan startup Pod.
Data uji dalam topik ini hanya sebagai referensi. Hasil aktual dapat berbeda tergantung lingkungan Anda.
-
Tambahkan node yang mendukung pemasangan beberapa disk cloud ke kluster ACK Anda. Misalnya, instance ecs.g7se.16xlarge mendukung hingga 56 disk cloud yang dipasang.
-
Buat file bernama attach-stress.yaml dengan konten berikut. Ganti
<YOUR-HOSTNAME>dengan nama node aktual Anda. -
Jalankan perintah berikut untuk memastikan aplikasi berjalan normal. Kemudian, kurangi jumlah replika menjadi 0 untuk mempersiapkan uji pemasangan batch.
kubectl apply -f attach-stress.yaml kubectl rollout status sts attach-stress kubectl scale sts attach-stress --replicas 0Output yang diharapkan:
storageclass.storage.k8s.io/alibabacloud-disk created statefulset.apps/attach-stress created partitioned roll out complete: 1 new pods have been updated... statefulset.apps/attach-stress scaled -
Jalankan perintah berikut untuk memulai uji pemasangan batch dan catat waktu yang dibutuhkan agar Pod mulai berjalan.
CatatanFitur pemasangan paralel belum diaktifkan untuk kluster ini. Sesuaikan jumlah replika untuk pengujian berdasarkan jumlah maksimum disk cloud yang didukung oleh node Anda.
date && \ kubectl scale sts attach-stress --replicas 28 && \ kubectl rollout status sts attach-stress && \ dateOutput yang diharapkan:
Tue Oct 15 19:21:36 CST 2024 statefulset.apps/attach-stress scaled Waiting for 28 pods to be ready... Waiting for 27 pods to be ready... ... Waiting for 3 pods to be ready... Waiting for 2 pods to be ready... Waiting for 1 pods to be ready... partitioned roll out complete: 28 new pods have been updated... Tue Oct 15 19:24:55 CST 2024Output menunjukkan bahwa tanpa pemasangan paralel yang diaktifkan, dibutuhkan lebih dari 3 menit agar ke-28 Pod tersebut mulai berjalan.
-
Aktifkan fitur pemasangan paralel untuk kluster ini dengan mengikuti langkah-langkah di Enable the feature.
-
Jalankan perintah berikut untuk membersihkan Pod yang telah dibuat sebelumnya dan mempersiapkan pengujian berikutnya.
CatatanSelama pembersihan, pantau sumber daya
volumeattachmentsdi kluster. Disk cloud dilepas setelah sumber daya ini dihapus. Proses ini membutuhkan beberapa menit.kubectl scale sts attach-stress --replicas 0 -
Jalankan kembali perintah uji untuk mencatat waktu startup Pod dengan pemasangan paralel yang diaktifkan. Waktu startup diperkirakan sekitar 40 detik, peningkatan signifikan dibandingkan 3 menit sebelumnya.
date && \ kubectl scale sts attach-stress --replicas 28 && \ kubectl rollout status sts attach-stress && \ dateOutput yang diharapkan:
Tue Oct 15 20:02:54 CST 2024 statefulset.apps/attach-stress scaled Waiting for 28 pods to be ready... Waiting for 27 pods to be ready... ... Waiting for 3 pods to be ready... Waiting for 2 pods to be ready... Waiting for 1 pods to be ready... partitioned roll out complete: 28 new pods have been updated... Tue Oct 15 20:03:31 CST 2024
-
Jalankan perintah berikut untuk menghapus aplikasi uji dari kluster.
kubectl delete -f attach-stress.yaml