Kubernetes menggunakan label dan taint untuk mengelola serta menjadwalkan sumber daya di dalam kluster. Untuk informasi lebih lanjut mengenai pengenalan dan praktik penggunaan label, lihat Labels and Selectors. Untuk memahami cara kerja taint dan toleransi, lihat Taints and Tolerations dalam dokumentasi Kubernetes.
Node dengan perangkat keras khusus, seperti GPU, mahal untuk dioperasikan. Untuk mencegah beban kerja umum berjalan di node tersebut dan menyediakannya hanya untuk Pod yang benar-benar membutuhkan perangkat keras tersebut, terapkan taint pada node tersebut. Taint memberi tahu penjadwal Kubernetes untuk menghindari atau mengeluarkan Pod yang tidak memiliki toleransi yang sesuai.
ACK memungkinkan Anda mengelola taint dan label node langsung dari Konsol.
Kasus penggunaan
-
Dedicated nodes: Sediakan sekelompok node untuk tim atau beban kerja tertentu dengan memberikan taint sehingga hanya Pod yang memiliki toleransi yang sesuai yang dijadwalkan di sana.
-
Hardware-specific scheduling: Pastikan hanya Pod yang memerlukan GPU atau perangkat keras khusus lainnya yang ditempatkan pada node yang memiliki perangkat keras tersebut.
-
Pod eviction: Tambahkan taint
NoExecuteuntuk mengosongkan Pod dari sebuah node. Pod tanpa toleransi yang sesuai akan dikeluarkan dari node tersebut. Jika Anda ingin mempertahankan Pod di node tersebut, tambahkan toleransi yang sesuai dengan taint NoExecute ke Pod tersebut.
Efek taint
Setiap taint memiliki efek yang menentukan cara penjadwal memperlakukan Pod tanpa toleransi yang sesuai:
| Effect | Perilaku untuk Pod baru | Perilaku untuk Pod yang sedang Berjalan |
|---|---|---|
NoSchedule |
Tidak dijadwalkan ke node tersebut | Tidak dikeluarkan |
NoExecute |
Tidak dijadwalkan ke node tersebut | Dikeluarkan (jika tidak ada toleransi yang sesuai) |
PreferNoSchedule |
Penjadwal berusaha menghindari node tersebut; ini merupakan persyaratan lunak | Tidak dikeluarkan |
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
-
Akses ke Konsol ACK
-
Izin yang cukup untuk mengelola label dan taint node
Mengelola label node
Label digunakan untuk mengidentifikasi dan mengklasifikasikan node. Gunakan label tersebut sebagai selector untuk menargetkan node tertentu dalam operasi atau penjadwalan.
Menambahkan label
-
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
-
Pada halaman Clusters, klik nama kluster. Di panel navigasi kiri, pilih Nodes > Nodes.
-
Klik Manage Labels and Taints. Pada tab Labels, pilih node target dan klik Add Label.
-
Pada kotak dialog Add, atur Name dan Value, lalu konfirmasi.
Setelah ditambahkan, label tersebut akan muncul di kolom Labels pada daftar node.
Bekerja dengan label di daftar node
-
Klik label untuk memfilter daftar node dan hanya menampilkan node yang memiliki label tersebut.
-
Klik ikon
di samping label untuk menghapusnya.
Beberapa label bawaan Kubernetes tidak dapat dihapus. Jika Anda menghapusnya, sistem secara otomatis menambahkannya kembali ke node tersebut.
Mengelola taint node
Menambahkan taint
-
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
-
Pada halaman Clusters, klik nama kluster. Di panel navigasi kiri, pilih Nodes > Nodes.
-
Klik Manage Labels and Taints. Pada tab Taints, pilih node target dan klik Add Taint.
-
Pada kotak dialog Add, atur Name, Value, dan Effect, lalu konfirmasi.
| Parameter | Deskripsi |
|---|---|
| Name | 1–63 karakter; huruf, angka, tanda hubung (-), garis bawah (_), dan titik (.); harus dimulai dan diakhiri dengan huruf atau angka. Untuk menggunakan kunci berawalan, tambahkan awalan subdomain DNS (maksimal 253 karakter) diikuti dengan garis miring (/). |
| Value | Opsional. Maksimal 63 karakter; huruf, angka, tanda hubung (-), garis bawah (_), dan titik (.); harus dimulai dan diakhiri dengan huruf atau angka. |
| Effect | NoSchedule, NoExecute, atau PreferNoSchedule. Lihat Efek taint untuk detail perilaku. |
Untuk spesifikasi format lengkap taint, lihat Taints and Tolerations concepts dalam dokumentasi Kubernetes.
Memverifikasi taint
Setelah menambahkan taint, pastikan taint tersebut telah diterapkan:
-
Pada halaman Nodes, temukan node target dalam daftar.
-
Periksa kolom Taints — taint baru seharusnya muncul di sana.
-
Klik taint tersebut untuk memfilter daftar node dan verifikasi bahwa hanya node dengan taint tersebut yang ditampilkan.
Menghapus taint
Pada kolom Taints, klik ikon
di samping taint yang ingin Anda hapus.
Langkah selanjutnya
-
Untuk mengonfigurasi label dan taint di tingkat kelompok node (diterapkan ke semua node dalam kelompok), lihat Create and manage a node pool.
-
Untuk menjadwalkan Pod ke node tertentu menggunakan label atau bidang
nodeSelector, lihat Schedule pods to specific nodes.