Cara Mengatur Toleransi Kubernetes

Cara Mengatur Toleransi Kubernetes



Hari ini, kita belajar tentang toleransi di Kubernetes dengan bantuan contoh sederhana dan mendasar. Artikel ini dirancang untuk mempelajari konsep dasar toleransi di Kubernetes dan bagaimana penerapannya di Kubernetes untuk menjadwalkan pod. Karena toleransi dan taint bekerja sama, kita akan berdiskusi singkat tentang taint juga untuk memahami keseluruhan konsep taint dan toleransi di Kubernetes. Mari kita mulai dengan definisi dasar noda dan toleransi.

Apa itu Toleransi dan Noda di Kubernetes?

Toleransi dan taint di Kubernetes digunakan untuk memastikan bahwa pod ditempatkan di node yang benar. Toleransi didefinisikan dalam spesifikasi pod sedangkan taint didefinisikan dalam spesifikasi node. Saat Anda menerapkan toleransi pada sebuah pod, ini memungkinkan penjadwal untuk menjadwalkan pod pada node tertentu. Namun, noda bekerja berlawanan dengan toleransi. Ini memungkinkan node untuk menolak pod yang akan dijadwalkan di atasnya. Pod hanya diperbolehkan untuk dijadwalkan pada node jika mereka memiliki toleransi yang diterapkan padanya dengan taint yang cocok.

Kubernetes bekerja dengan pod, cluster, node, event, dll. Dalam beberapa kasus, untuk mengelola hal-hal ini, Kubernetes memerlukan toleransi dan taint. Toleransi adalah implementasi dari proses penjadwalan. Pod perlu dijadwalkan agar dapat berfungsi dengan baik dan memiliki sumber daya yang cukup saat diperlukan untuk menjalankan operasinya. Toleransi diterapkan pada pod terhadap taint sehingga pod tersebut tidak mengalami interupsi atau gangguan saat bekerja.







Noda di Kubernetes mengaktifkan pod untuk menolak penjadwalan pod. Ini diterapkan ke node menggunakan spesifikasi Node 'NodeSpec'. Penjadwal tidak dapat menempatkan pod pada node yang memiliki taint. Namun, jika Anda perlu menjadwalkan pod pada node di mana taint sudah diterapkan, Anda perlu mendeklarasikan toleransi terhadapnya.



Toleransi di Kubernetes memungkinkan pod dijadwalkan pada node yang sudah menerapkan taint. Toleransi pada pod diterapkan menggunakan spesifikasi Pod “PodSpec”. Saat Anda menerapkan toleransi pada pod dengan taint yang cocok, penjadwal dapat dengan mudah menjadwalkan pod pada node tertentu.



Sekarang, izinkan kami menyajikan skenario untuk membantu Anda memahami cara menerapkan toleransi pada pod di Kubernetes. Sebelum Anda melanjutkan ke bagian implementasi, pastikan Anda memiliki semua persyaratan prasyarat.





Prasyarat:

Berikut adalah hal-hal yang Anda perlukan untuk mengimplementasikan toleransi pada sebuah node di Kubernetes:

  • Ubuntu 20.04 atau versi terbaru lainnya dari sistem Linux apa pun
  • Minikube (versi terbaru)
  • Menginstal mesin virtual di sistem Linux/Unix Anda
  • Alat baris perintah Kubectl

Dengan asumsi bahwa sistem Anda memenuhi semua kebutuhan prasyarat, mari kita mulai mengatur toleransi Kubernetes.



Langkah 1: Jalankan Terminal Minikube

Hal pertama yang perlu Anda lakukan adalah memulai terminal minikube sehingga Anda dapat menggunakan perintah kubectl untuk mengimplementasikan toleransi Kubernetes pada sebuah node. Untuk memulai minikube, perintah berikut digunakan:

> mulai minikube

Setelah eksekusi perintah ini, Anda mendapatkan output berikut di terminal Anda:

Langkah 2: Dapatkan Daftar Node Aktif

Sekarang setelah kami memulai minikube, sistem kami siap untuk mengatur toleransi pada pod di Kubernetes. Sebelum kita mengatur toleransi pada pod, mari kita periksa berapa banyak node dan jenis node apa yang sudah kita miliki. Untuk melakukan itu, kami menggunakan perintah berikut ini:

> kubectl dapatkan node -Itu =custom-columns=NodeName:.metadata.name,TaintKey:.spec.taints [ * ] .key,TaintValue:.spec.taints [ * ] .value,TaintEffect:.spec.taints [ * ] .memengaruhi

Instruksi ini mencantumkan semua node yang dinodai oleh instalasi default Kubernetes. Mari kita lihat dulu output dari perintah ini. Kemudian, kita membahas daftar node:

Karena tidak ada node yang dibuat dan di-tain oleh instalasi default Kubernetes dan kami juga tidak secara khusus membuat node apa pun, hasilnya adalah . Dari keluaran sebelumnya, kita dapat melihat bahwa tidak ada node. Oleh karena itu, pertama-tama kita membuat node dan kemudian mengatur toleransi. Untuk menyetel toleransi pada pod di Kubernetes, pertama-tama kita perlu menerapkan aplikasi pada klaster. Beberapa langkah berikutnya mendemonstrasikan cara men-deploy aplikasi di cluster.

Langkah 3: Buat Ruang Nama

Pertama, kami membuat namespace untuk menerapkan aplikasi di kluster. Di sini, kami membuat aplikasi dengan nilai 'frontend' dengan bantuan perintah berikut:

> kubectl membuat ns frontend

Perintah ini membuat namespace yang memiliki nilai 'frontend'. Lihat keluaran berikut:

Langkah 4: Deploy Pod Nginx di Namespace

Sekarang, terapkan pod nginx di namespace yang baru saja kita buat. Kami menggunakan perintah berikut untuk menerapkan nginx:

> kubectl menjalankan nginx – gambar =nginx –ujung depan namespace

Ini menerapkan aplikasi pada kluster tanpa konfigurasi toleransi dalam spesifikasi penerapan aplikasi. Menggunakan perintah kubectl, kita men-deploy pod nginx di frontend namespace:

  Deskripsi Teks dihasilkan secara otomatis

Langkah 5: Dapatkan Daftar Pod

Sekarang, mari kita periksa pod yang dibuat untuk melihat statusnya. Perintah yang diberikan mencantumkan semua pod dan statusnya juga:

> kubectl dapatkan pod -n paling depan

Karena kita hanya membuat nginx, perintah ini harus mencantumkan pod tersebut beserta statusnya. Lihat keluaran berikut:

Langkah 6: Analisis Acara Kubernetes

Sekarang, mari kita menganalisis kejadian di Kubernetes sehingga kita dapat mengatur toleransi pada pod yang sesuai. Kami menggunakan perintah kubectl berikut untuk mendapatkan daftar acara di Kubernetes:

> kubectl dapatkan acara -n paling depan

Ini mencantumkan semua peristiwa yang terkait dengan nilai front-end beserta propertinya seperti jenis, alasan, objek, dan pesan. Lihat daftar yang diberikan dalam output berikut:

  Deskripsi Teks dihasilkan secara otomatis

Seperti yang Anda lihat dari keluaran sebelumnya, pod nginx dijadwalkan dengan toleransi khusus. Properti 'pesan' menunjukkan daftar tindakan yang dilakukan selama proses.

Langkah 7: Periksa Status Pod

Langkah terakhir adalah memeriksa kembali status pod yang telah kita buat sebelumnya untuk memastikan bahwa pod tersebut berhasil dijadwalkan pada node yang spesifik dan benar. Untuk melakukannya, kami menggunakan perintah kubectl berikut:

> kubectl dapatkan pod -n paling depan

Seperti yang dapat dilihat pada keluaran sebelumnya, pod sekarang diizinkan untuk berjalan pada node yang tercemar karena toleransinya diatur melawannya.

Kesimpulan

Dalam panduan ini, kami mengeksplorasi tentang noda dan toleransi. Kami belajar tentang dasar kerja noda dan toleransi. Kemudian, kami menerapkan toleransi pada pod. Dengan bantuan contoh sederhana, kami mempelajari cara menyetel toleransi pada sebuah node di Kubernetes.