Cara Menggunakan Kubernetes nodeSelector

Cara Menggunakan Kubernetes Nodeselector



Kelompok Kubernetes menggunakan kekangan penjadualan seperti: kotoran, label, toleransi dan nodeSelector untuk mengasingkan dan menjadualkan beban kerja pada kumpulan nod yang berbeza. Kekangan penjadualan adalah keperluan biasa dalam Kubernetes untuk pengurusan infrastruktur. Kami akan menumpukan pada kekangan penjadualan nodeSelector dalam artikel ini. Kami akan meneroka apa itu nodeSelector, cara ia berfungsi dan cara ia boleh digunakan dalam Kubernetes. Kami akan membentangkan senario mudah untuk membantu anda memahami cara menggunakan Kubernetes nodeSelector dengan cekap.

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 nod

Perintah 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.yaml

Di 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 pod

Ini akan menyenaraikan semua pod yang tersedia dalam kelompok. Lihat output yang diberikan di bawah:

  Perihalan Teks dijana secara automatik

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

  Perihalan Teks dijana secara automatik

Sekarang, mari kita semak butiran lanjut pod dengan menggunakan pilihan -o wide:

> kubectl dapatkan pod -The lebar

  Perihalan Teks dijana secara automatik

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= benar

Konfigurasikan 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.yaml

Sekarang, 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

  Teks, kalendar Penerangan dijana secara automatik dengan keyakinan sederhana

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

  Perihalan Teks dijana secara automatik

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.