Jika konfigurasi kubelet default tidak memenuhi kebutuhan Anda, Anda dapat menyesuaikan parameter kubelet pada kelompok node untuk mengatur perilaku node. Misalnya, Anda dapat menyesuaikan alokasi sumber daya guna mengelola penggunaan sumber daya, mengatur ambang batas eviksi tekanan node untuk mengurangi kekurangan sumber daya, atau mengubah kebijakan manajer topologi demi meningkatkan kinerja sistem.
Batasan
Hanya kluster ACK yang menjalankan versi 1.20 atau lebih baru yang mendukung parameter kubelet kustom. Untuk meningkatkan kluster Anda, lihat Meningkatkan kluster ACK secara manual.
Hanya kluster ACK Lingjun yang menjalankan versi 1.22 atau lebih baru yang mendukung parameter kubelet kustom. Untuk meningkatkan kluster Anda, lihat Meningkatkan kluster.
Jika versi kluster Anda tidak memenuhi persyaratan ini, perilaku tak terduga mungkin terjadi.
Peringatan
Parameter kubelet kustom mengubah konfigurasi node secara batch. Perubahan tersebut langsung berlaku pada node yang sudah ada di kelompok node, dan juga digunakan oleh node baru. Saat perubahan diterapkan, proses kubelet akan dimulai ulang, yang dapat memengaruhi node dan beban kerja yang sedang berjalan. Kami menyarankan agar Anda melakukan operasi ini di luar jam sibuk.
Jika `evictionHard`, `kubeReserved`, atau `systemReserved` tidak dikonfigurasi, sistem akan menggunakan nilai default untuk alokasi sumber daya. Untuk informasi selengkapnya tentang cara menghitung nilai default tersebut, lihat Kebijakan alokasi sumber daya node.
Perubahan pada konfigurasi alokasi sumber daya dapat mengurangi sumber daya yang dapat dialokasikan pada suatu node. Pada node dengan penggunaan sumber daya tinggi, hal ini dapat memicu eviksi node.
Jangan gunakan baris perintah untuk menentukan parameter kubelet yang tidak didukung di Konsol. Operasi ini menimbulkan risiko stabilitas yang signifikan. Anda bertanggung jawab untuk memastikan kebenaran dan kompatibilitas file data pengguna. Konfigurasi yang salah atau konfigurasi yang telah ditinggalkan di versi baru dapat menyebabkan node menjadi tidak tersedia.
Saat kubelet dimulai, kubelet menggabungkan konfigurasi dari berbagai sumber berdasarkan prioritasnya. Jika item konfigurasi yang sama diatur melalui beberapa cara, pengaturan dengan prioritas lebih tinggi akan menimpa pengaturan dengan prioritas lebih rendah.
Menyesuaikan parameter kubelet untuk kelompok node di Konsol
Saat parameter kubelet kustom diterapkan, proses kubelet akan dimulai ulang. Hal ini dapat memengaruhi layanan Anda. Kami menyarankan agar Anda melakukan operasi ini di luar jam sibuk.
Masuk ke Konsol ACK. Di panel navigasi sebelah kiri, klik Clusters.
Pada halaman Clusters, temukan kluster yang ingin dikelola lalu klik namanya. Di panel navigasi sebelah kiri, pilih .
Pada halaman Node Pools, klik
> Kubelet Configuration di kolom Actions pada kelompok node target.Baca peringatan di halaman tersebut. Klik Custom Parameters, pilih parameter yang ingin dikonfigurasi, tentukan node yang akan ditingkatkan, dan atur kebijakan pembaruan batch. Lalu, klik Submit dan ikuti petunjuk di layar.
Kebijakan pembaruan batch dijelaskan sebagai berikut:
Maximum Concurrent Nodes Per Batch: Konfigurasi kubelet diterapkan ke node secara batch. Proses ini memerlukan waktu. Anda dapat melihat progres dan mengontrol prosesnya—seperti menjeda, melanjutkan, atau membatalkan—melalui daftar event.
Interval Between Batches: Interval waktu antar batch.
Anda dapat menggunakan fitur jeda untuk memverifikasi node yang telah ditingkatkan. Saat Anda menjeda tugas, konfigurasi node saat ini akan diselesaikan. Node yang belum mulai tidak akan dikonfigurasi hingga Anda melanjutkan tugas tersebut.
Kami menyarankan agar Anda menyelesaikan tugas konfigurasi kustom tepat waktu. Tugas yang dijeda akan dibatalkan secara otomatis setelah tujuh hari. Event dan log terkait juga akan dihapus.
Selain menggunakan Konsol, Anda juga dapat memanggil operasi ModifyNodePoolNodeConfig untuk menyesuaikan parameter kubelet. Bagian berikut menjelaskan parameter kubelet yang dapat disesuaikan dan didukung oleh ACK.
Parameter kubelet yang dapat disesuaikan
Field | Deskripsi | Nilai default | Rentang nilai yang direkomendasikan |
allowedUnsafeSysctls | Menentukan sysctl tidak aman atau karakter wildcard sysctl (pola yang diakhiri dengan Penting Sebelum menggunakan parameter ini, evaluasi risikonya secara cermat dan pastikan ketersediaannya. | N/A | Mendukung konfigurasi sysctl dengan awalan berikut:
|
containerLogMaxFiles | Jumlah maksimum berkas log untuk sebuah kontainer. Nilainya harus 2 atau lebih. Runtime kontainer harus containerd. | 10 | [2, 10]. |
containerLogMaxSize | Ukuran maksimum berkas log kontainer sebelum diputar. Runtime kontainer harus containerd. | 100Mi | N/A. |
cpuCFSQuota | Mengaktifkan penegakan kuota CPU CFS untuk kontainer dengan batas CPU. | true | Nilai valid:
|
cpuCFSQuotaPeriod | Menetapkan periode kuota CPU CFS. Feature gate CustomCPUCFSQuotaPeriod harus diaktifkan. | 100ms | Nilai dari 1 milidetik hingga 1 detik, inklusif. |
cpuManagerPolicy | Kebijakan manajer CPU. | none | Nilai valid:
|
eventBurst | Burst maksimum untuk pembuatan event. | 10 | [1, 100]. Nilainya harus lebih besar dari atau sama dengan nilai |
eventRecordQPS | Jumlah event yang dapat dihasilkan per detik. | 5 | [1, 50]. |
evictionHard | Sekumpulan ambang batas eviksi keras yang memicu eviksi pod. | imagefs.available<15%,memory.available<300Mi,nodefs.available<10%,nodefs.inodesFree<5% | Tidak ada. |
evictionSoft | Sekumpulan ambang batas eviksi lunak. | Tidak ada | Tidak ada. |
evictionSoftGracePeriod | Sekumpulan periode tenggang eviksi. Catatan `evictionSoft` harus diatur. | Tidak ada | Tidak ada. |
featureGates | Sekumpulan pasangan kunci-nilai yang menggambarkan feature gates untuk fitur eksperimental. Setiap gate direpresentasikan sebagai
Penting
| N/A | N/A. |
imageGCHighThresholdPercent | Persentase penggunaan disk yang memicu pengumpulan sampah citra. Pengumpulan sampah citra dijalankan ketika penggunaan disk melebihi ambang batas ini. Nilai ini harus lebih besar dari nilai `imageGCLowThresholdPercent`. | 85 | [60, 95]. |
imageGCLowThresholdPercent | Persentase penggunaan disk di mana pengumpulan sampah citra tidak dijalankan. Pengumpulan sampah citra tidak dijalankan jika penggunaan disk berada di bawah ambang batas ini. Nilai ini harus lebih kecil dari nilai `imageGCHighThresholdPercent`. | 80 | [30, 90]. |
kubeAPIBurst | Jumlah maksimum permintaan burst yang dikirim ke server API per detik. | 10 | [1, 100]. Nilainya harus lebih besar dari atau sama dengan nilai |
kubeAPIQPS | Jumlah permintaan per detik (QPS) ke server API. | 5 | [1, 50]. |
kubeReserved | Konfigurasi sumber daya yang dicadangkan untuk sistem Kubernetes. | Nilainya dihitung secara otomatis secara default. Untuk informasi selengkapnya, lihat Kebijakan pemesanan sumber daya node. | N/A. |
maxPods | Jumlah maksimum pod yang dapat berjalan di sebuah node. Penting Memodifikasi nilai `maxPods` tidak memengaruhi jumlah alamat IP yang dapat dialokasikan di node tersebut. Jika nilai `maxPods` terlalu besar, pod yang tidak menggunakan mode HostNetwork mungkin gagal mendapatkan alamat IP dan gagal dimulai. | N/A. Nilainya bergantung pada konfigurasi sumber daya fisik seperti spesifikasi mesin dan perencanaan jaringan kontainer. | N/A. |
memoryManagerPolicy | Kebijakan untuk manajer memori. | None | Nilai valid:
|
podPidsLimit | Jumlah maksimum ID proses (PID) yang dapat digunakan di setiap pod. | 16384 | Tidak ada. |
readOnlyPort | Port read-only untuk kubelet yang tidak memerlukan autentikasi. |
| 0 Untuk informasi tentang risiko membuka port read-only (10255) untuk pemantauan kontainer kubelet, lihat [Perubahan Produk] Migrasi port pemantauan kluster ACK versi lama ke port terautentikasi. |
registryBurst | Jumlah maksimum burst tarikan citra. | 10 | [1, 100]. Nilainya harus lebih besar dari atau sama dengan nilai |
registryPullQPS | QPS maksimum untuk repository citra. | 5 | [1, 50]. |
reservedMemory | Daftar pemesanan memori untuk node NUMA. | Tidak ada. | Tidak ada. |
serializeImagePulls | Menarik citra secara serial. | False | Nilai valid:
|
systemReserved | Konfigurasi sumber daya yang dicadangkan untuk sistem. | Nilainya dihitung secara otomatis secara default. Untuk informasi selengkapnya, lihat Kebijakan pemesanan sumber daya node. | N/A. |
topologyManagerPolicy | Kebijakan manajer topologi. Dengan arsitektur NUMA, data dapat dialokasikan ke node NUMA yang sama untuk mengurangi akses lintas node dan meningkatkan kinerja sistem. Manajer topologi dapat membuat keputusan alokasi sumber daya yang selaras dengan topologi. Untuk informasi selengkapnya, lihat Mengontrol Kebijakan Manajemen Topologi pada sebuah node. | none |
|
containerLogMonitorInterval | Versi kluster harus 1.30 atau lebih baru. Interval pemeriksaan rotasi log kontainer. | 10s | [3s,60s] |
containerLogMaxWorkers | Versi kluster harus 1.30 atau lebih baru. Jumlah maksimum pekerja konkuren untuk rotasi log. | 1 | [1,20] |
tracing | Mengaktifkan Analisis Tracing untuk komponen lapisan kontrol atau bidang data kluster. Untuk informasi selengkapnya, lihat Mengelola Analisis Tracing. | Tidak ada |
|
FAQ
Apakah konfigurasi kustom akan ditinggalkan?
Saat Kubernetes berkembang, beberapa parameter atau feature gates mungkin ditinggalkan atau dihapus. Jika parameter kustom yang dikelola oleh ACK tidak berlaku untuk versi baru, konfigurasi terkait akan dihapus selama peningkatan kluster.
Bagaimana cara menggunakan berkas konfigurasi untuk mengelola kubelet?
Container Service for Kubernetes menyesuaikan cara pengelolaan konfigurasi kubelet berdasarkan praktik terbaik komunitas. Untuk kluster yang menjalankan versi 1.20 atau lebih baru, flag baris perintah kubelet yang telah ditinggalkan secara bertahap digantikan oleh berkas konfigurasi. Untuk informasi selengkapnya, lihat Konfigurasi Kubelet (v1beta1).
Node baru, seperti node yang baru dibuat dan node yang diskalakan otomatis, menggunakan berkas konfigurasi dan metode konfigurasi asli. Node yang sudah ada tidak terpengaruh. Untuk mengelola konfigurasi semua node di kelompok node hanya dengan berkas konfigurasi, Anda dapat menerapkan konfigurasi kustom seperti yang dijelaskan di Parameter kubelet yang dapat disesuaikan.
Bagaimana cara memodifikasi parameter kubelet yang tidak ada dalam daftar yang didukung?
ACK memungkinkan Anda menulis parameter kustom ke berkas `/etc/kubernetes/kubelet-customized-args.conf`. Berkas ini menyimpan parameter startup dan opsi konfigurasi kustom untuk kubelet. Parameter yang ditulis ke berkas ini memiliki prioritas lebih tinggi dan akan menimpa nilai yang diatur menggunakan fitur konfigurasi kubelet kustom untuk kelompok node saat node dimulai ulang.
Menyesuaikan parameter kubelet dapat menyebabkan masalah seperti kegagalan pendaftaran node atau kegagalan penjadwalan pod, serta memengaruhi layanan Anda. Sebelum melanjutkan, kami menyarankan agar Anda sepenuhnya mengevaluasi risiko perubahan tersebut.
(Direkomendasikan) Untuk node yang akan dibuat di kelompok node, Anda dapat mengonfigurasi skrip di bagian User Data kelompok node untuk menulis ke berkas konfigurasi parameter kustom. Hal ini memastikan bahwa node baru menggunakan nilai parameter kustom ini secara default.
Di bagian User Data konfigurasi kelompok node, tambahkan skrip berikut. Ganti
${kubelet_key}dan${kubelet_value}dengan nilai aktual.Hanya skrip yang menggunakan
> /etc/kubernetes/kubelet-customized-args.confatau> kubelet-customized-args.confyang didukung di bagian User Data. Jika Anda menggunakan metode lain untuk memodifikasi `kubelet-customized-args.conf` di bagian Pre-customized User Data, berkas `/etc/kubernetes/kubelet-customized-args.conf` akan ditimpa selama inisialisasi ACK.mkdir -p /etc/kubernetes echo 'KUBELET_CUSTOMIZED_ARGS="--${kubelet_key}=${kubelet_value}"' > /etc/kubernetes/kubelet-customized-args.conf systemctl daemon-reload systemctl restart kubeletUntuk informasi selengkapnya tentang cara mengakses halaman konfigurasi, lihat Membuat dan mengelola kelompok node.
Untuk node yang sudah ada di kelompok node, masuk ke node untuk memodifikasi berkas konfigurasi parameter kustom. Lalu, jalankan perintah berikut untuk menerapkan konfigurasi.
systemctl daemon-reload systemctl restart kubelet
Referensi
Untuk informasi selengkapnya tentang item konfigurasi untuk kelompok node, lihat Membuat dan mengelola kelompok node.
Jika Anda mengalami kesalahan atau perilaku abnormal pada node, pod, atau kubelet Anda, lihat Memecahkan masalah node abnormal, Memecahkan masalah pod abnormal, dan FAQ tentang node dan kelompok node untuk memecahkan masalah tersebut.

Untuk informasi selengkapnya, lihat