Apakah itu Kubernetes nodeSelector?
NodeSelector ialah kekangan penjadualan dalam Kubernetes yang menentukan peta dalam bentuk kunci: pemilih pod tersuai pasangan nilai dan label nod digunakan untuk menentukan kunci, pasangan nilai. NodeSelector yang dilabelkan pada nod hendaklah sepadan dengan pasangan nilai kunci: supaya pod tertentu boleh dijalankan pada nod tertentu. Untuk menjadualkan pod, label digunakan pada nod, dan nodeSelectors digunakan pada pod. Platform Kontena OpenShift menjadualkan pod pada nod menggunakan nodeSelector dengan memadankan label.
Selain itu, label dan nodeSelector digunakan untuk mengawal pod mana yang akan dijadualkan pada nod tertentu. Apabila anda menggunakan label dan nodeSelector, labelkan nod terlebih dahulu supaya pod tidak ditangguhkan dan kemudian tambahkan nodeSelector pada pod. Untuk meletakkan pod tertentu pada nod tertentu, nodeSelector digunakan, manakala nodeSelector seluruh kluster membenarkan anda meletakkan pod baharu pada nod tertentu yang terdapat di mana-mana dalam kluster. NodeSelector projek digunakan untuk meletakkan pod baharu pada nod tertentu dalam projek.
Prasyarat
Untuk menggunakan Kubernetes nodeSelector, pastikan anda mempunyai alatan berikut dipasang dalam sistem anda:
- Ubuntu 20.04 atau mana-mana versi terkini yang lain
- Kelompok Minikube dengan sekurang-kurangnya satu nod pekerja
- Alat baris arahan Kubectl
Sekarang, kami beralih ke bahagian seterusnya di mana kami akan menunjukkan cara anda boleh menggunakan nodeSelector pada gugusan Kubernetes.
nodeSelector Configuration dalam Kubernetes
Pod boleh dihadkan untuk hanya boleh dijalankan pada nod tertentu dengan menggunakan nodeSelector. NodeSelector ialah kekangan pemilihan nod yang dinyatakan dalam spesifikasi pod PodSpec. Dengan kata mudah, nodeSelector ialah ciri penjadualan yang memberi anda kawalan ke atas pod untuk menjadualkan pod pada nod yang mempunyai label yang sama yang ditentukan oleh pengguna untuk label nodeSelector. Untuk menggunakan atau mengkonfigurasi nodeSelector dalam Kubernetes, anda memerlukan kelompok minikube. Mulakan kluster minikube dengan arahan yang diberikan di bawah:
> mulakan minikube
Kini setelah kluster minikube telah berjaya dimulakan, kita boleh memulakan pelaksanaan konfigurasi nodeSelector dalam Kubernetes. Dalam dokumen ini kami akan membimbing anda untuk membuat dua penempatan, satu tanpa sebarang nodeSelector dan satu lagi dengan nodeSelector.
Konfigurasikan Deployment tanpa nodeSelector
Pertama, kami akan mengekstrak butiran semua nod yang sedang aktif dalam kluster dengan menggunakan arahan yang diberikan di bawah:
> kubectl mendapatkan nodPerintah ini akan menyenaraikan semua nod yang terdapat dalam kelompok dengan butiran nama, status, peranan, umur dan parameter versi. Lihat output sampel yang diberikan di bawah:
Sekarang, kami akan menyemak kotoran yang aktif pada nod dalam kelompok supaya kami boleh merancang untuk menggunakan pod pada nod dengan sewajarnya. Perintah yang diberikan di bawah adalah untuk digunakan untuk mendapatkan penerangan tentang kotoran yang digunakan pada nod. Seharusnya tiada kotoran aktif pada nod supaya pod boleh digunakan dengan mudah di atasnya. Jadi, mari kita lihat kotoran yang aktif dalam kelompok dengan melaksanakan arahan berikut:
> kubectl menerangkan nod minikube | cengkaman Noda
Daripada output yang diberikan di atas, kita dapat melihat bahawa tiada kesan yang dikenakan pada nod, hanya apa yang kita perlukan untuk menggunakan pod pada nod. Sekarang, langkah seterusnya adalah untuk membuat penempatan tanpa menyatakan sebarang nodeSelector di dalamnya. Untuk perkara itu, kami akan menggunakan fail YAML di mana kami akan menyimpan konfigurasi nodeSelector. Perintah yang dilampirkan di sini akan digunakan untuk penciptaan fail YAML:
> nano deplond.yamlDi sini, kami cuba mencipta fail YAML bernama deplond.yaml dengan arahan nano.
Setelah melaksanakan arahan ini, kami akan mempunyai fail deplond.yaml di mana kami akan menyimpan konfigurasi penempatan. Lihat konfigurasi penempatan yang diberikan di bawah:
Sekarang, kami akan membuat penggunaan dengan menggunakan fail konfigurasi penempatan. Fail deplond.yaml akan digunakan bersama dengan arahan 'buat' untuk mencipta konfigurasi. Lihat arahan lengkap yang diberikan di bawah:
> kubectl buat -f deplond.yaml
Seperti yang ditunjukkan di atas, penggunaan telah berjaya dibuat tetapi tanpa nodeSelector. Sekarang, mari kita semak nod yang sudah tersedia dalam kelompok dengan arahan yang diberikan di bawah:
> kubectl dapatkan podIni akan menyenaraikan semua pod yang tersedia dalam kelompok. Lihat output yang diberikan di bawah:
Seterusnya, kita perlu menukar kiraan replika yang boleh dilakukan dengan mengedit fail deplond.yaml. Cuma buka fail deplond.yaml dan edit nilai replika. Di sini, kami menukar replika: 3 kepada replika : 30. Lihat pengubahsuaian dalam petikan yang diberikan di bawah:
Sekarang, perubahan perlu digunakan pada penggunaan daripada fail definisi penyebaran dan itu boleh dilakukan dengan menggunakan arahan berikut:
> kubectl memohon -f deplond.yaml
Sekarang, mari kita semak butiran lanjut pod dengan menggunakan pilihan -o wide:
> kubectl dapatkan pod -The lebar
Daripada output yang diberikan di atas, kita dapat melihat bahawa nod baharu telah dibuat dan dijadualkan pada nod kerana tiada taint aktif pada nod yang kita gunakan daripada kluster. Oleh itu, kami secara khusus perlu mengaktifkan taint untuk memastikan bahawa pod hanya dijadualkan pada nod yang dikehendaki. Untuk itu, kita perlu mencipta label pada nod induk:
> nod label kubectl master on-master= benarKonfigurasikan Deployment dengan nodeSelector
Untuk mengkonfigurasi penggunaan dengan nodeSelector, kami akan mengikuti proses yang sama yang telah diikuti untuk konfigurasi penempatan tanpa sebarang nodeSelector.
Pertama, kami akan mencipta fail YAML dengan arahan 'nano' di mana kami perlu menyimpan konfigurasi penggunaan.
> nano nd.yamlSekarang, simpan definisi penempatan dalam fail. Anda boleh membandingkan kedua-dua fail konfigurasi untuk melihat perbezaan antara definisi konfigurasi.
Sekarang, buat penggunaan nodeSelector dengan arahan yang diberikan di bawah:
> kubectl create -f nd.yaml
Dapatkan butiran pod dengan menggunakan bendera lebar -o:
> kubectl dapatkan pod -The lebar
Daripada output yang diberikan di atas, kita dapat melihat bahawa pod sedang digunakan pada nod minikube. Marilah kita menukar kiraan replika untuk menyemak tempat pod baharu digunakan dalam kelompok.
Gunakan perubahan baharu pada penggunaan dengan menggunakan arahan berikut:
> kubectl memohon -f nd.yaml
Kesimpulan
Dalam artikel ini, kami mempunyai gambaran keseluruhan tentang kekangan konfigurasi nodeSelector dalam Kubernetes. Kami mempelajari apa itu nodeSelector dalam Kubernetes dan dengan bantuan senario mudah, kami belajar cara membuat penempatan dengan dan tanpa kekangan konfigurasi nodeSelector. Anda boleh merujuk artikel ini jika anda baru menggunakan konsep nodeSelector dan mencari semua maklumat yang berkaitan.