Apa yang terjadi jika level kontrol Kubernetes gagal?

Kubernetes adalah koordinator utama untuk mendistribusikan instance container di beberapa node fisik. Node dikelola oleh control plane Kubernetes, sekelompok komponen yang mempertahankan status cluster, merespons perubahan kondisi, dan membuat keputusan penjadwalan.

Penting untuk memahami peran level kontrol saat menjalankan grup yang membutuhkan ketersediaan konstan. Artikel ini menjelaskan apa yang terjadi ketika tingkat kontrol turun sehingga Anda dapat merencanakan ke depan dan menerapkan langkah-langkah mitigasi.

Pahami tingkat kontrolnya

Level kontrol Kubernetes bertanggung jawab atas keseluruhan operasi cluster Anda. Mengkoordinasikan tindakan yang memengaruhi kontrak kerja Anda. Control plane juga menyediakan kumpulan data store etcd, serta server API yang berinteraksi dengan Anda menggunakan alat seperti kubectl.

Berikut adalah beberapa fungsi utama dari control plane:

  • kube-apiserver Ini menghosting server API Kubernetes.
  • manajer pengontrol kube Ini memulai dan mengelola pengontrol cluster Anda sehingga mereka dapat mendeteksi dan menerapkan perubahan status yang diminta oleh server API.
  • Kube . penjadwalan Tetapkan node yang berfungsi untuk pod dengan memilih node yang paling lengkap untuk mendukung setiap pod baru.
  • dll. Ini adalah penyimpanan data nilai kunci yang berisi semua data cluster Kubernetes dan informasi status.

Arsitektur Kubernetes bergantung pada ketersediaan konstan dari komponen-komponen ini. Mereka bekerja sama untuk menciptakan keadaan berjalan normal di mana semuanya bekerja dengan baik dan grup Anda bekerja seperti yang diharapkan.

Apa yang terjadi jika pesawat kontrol gagal?

Pesawat kontrol tidak gagal-aman. Karena banyaknya komponen yang terlibat, masing-masing bagian tidak lagi berfungsi dan memengaruhi perakitan Anda. Sebuah komponen bisa gagal, atau host sebenarnya di mana bidang kontrol berjalan bisa mengalami kegagalan perangkat keras.

Efek sebenarnya pada kit Anda tergantung pada komponen mana yang menyebabkan masalah. Namun, kegagalan tingkat kontrol biasanya mencegah Anda mengelola grup dan dapat mencegah beban kerja yang ada merespons peristiwa baru:

  • Jika server API mati, Kubectl, Kubernetes Dashboard, dan alat manajemen lainnya akan berhenti bekerja.
  • Jika penjadwal gagal, tidak ada bagian baru dari node yang ditetapkan, membuatnya tidak dapat dijangkau dan muncul sebagai tertunda. Ini juga memengaruhi pod yang perlu dijadwal ulang karena sumber daya node habis atau permintaan ekspansi diterima.
  • Jika manajer konsol gagal, perubahan yang Anda buat pada klaster tidak akan diterapkan, sehingga beban kerja Anda tampaknya tetap dalam keadaan sebelumnya.

Kegagalan tingkat kontrol mencegah Anda mengubah status grup secara efektif. Perubahan gagal sepenuhnya atau tidak berpengaruh dalam grup.

Bagaimana dengan memegang pekerja dan menjalankan kapsul?

Level kontrol adalah level manajemen yang berada di atasnya dan mencakup node pekerja dan disk mereka. Bidang kontrol dan node akun independen satu sama lain. Setelah pod node dijadwalkan, node ini bertanggung jawab untuk mendapatkan image yang benar dan menjalankan instance container.

Ini berarti bahwa kegagalan bidang kontrol tidak serta merta menghancurkan beban kerja yang sudah sehat. Anda sering kali masih dapat mengakses pod yang ada meskipun Anda tidak dapat terhubung ke cluster Anda menggunakan kubectl. Pengguna tidak perlu melihat kerusakan sementara di tingkat kontrol.

Waktu henti yang lebih lama juga meningkatkan kemungkinan masalah kontrak pekerja. Node tidak dapat membandingkan statusnya, sehingga inkonsistensi dapat terjadi. Jaringan juga bisa mati ketika DNS mati dan konten kueri yang di-cache kedaluwarsa.

Kesalahan dapat meningkat jika node yang berfungsi mengalami masalah saat bidang kontrol turun. Dalam hal ini, tanduk simpul mungkin berhenti bekerja, tetapi blok lainnya tidak tahu apa yang terjadi. Pod tidak dapat dijadwal ulang ke node yang berbeda karena node beroperasi secara independen tanpa control plane. Ini akan membuat beban kerja Anda offline.

Hindari kegagalan pesawat kontrol

Anda dapat melindungi dari kegagalan bidang kontrol dengan menyiapkan grup ketersediaan tinggi yang menduplikasi fungsi bidang kontrol di beberapa perangkat. Sama seperti Anda menggunakan Kubernetes untuk men-deploy dan menskalakan container, Anda dapat menerapkan High Availability (HA) ke Kubernetes itu sendiri untuk fleksibilitas yang lebih besar.

Kubernetes menyediakan dua mekanisme untuk menetapkan implementasi tingkat kontrol HA:

  1. Gunakan node level kontrol “bertumpuk”. Pendekatan ini membutuhkan lebih sedikit infrastruktur dan beroperasi dengan setidaknya tiga mesin. Setiap perangkat menjalankan tingkat kontrolnya sendiri yang mengulangi data dari yang lain. Tuan rumah mengambil kepemilikan blok dengan menunjuknya sebagai pemimpin. Saat pemimpin offline, node lain menyadari ketidakhadirannya dan pemimpin baru dipilih. Idealnya, Anda memerlukan jumlah host yang ganjil, seperti 3, 5 atau 7, untuk menyederhanakan proses pemilihan.
  2. Menggunakan penyimpanan data eksternal dll. Pendekatan ini mirip dengan model bertumpuk, tetapi dengan satu perbedaan utama. Bergantung pada instance eksternal dan jika tidak, dibagikan di antara node level kontrol. Ini menghindari redundansi data yang tidak perlu. Anda harus mempertimbangkan untuk mengonfigurasi replikasi grup etcd secara manual sehingga tidak menjadi titik kegagalan yang terpisah.

Kubernetes sekarang mendukung cluster bertingkat dengan baik. Jika Anda mengelola grup Anda sendiri, Anda dapat menambahkan node tingkat kontrol lain dengan menambahkan --control-plane Tandai saat memutar file kubeadm join Memerintah:

$ kubeadm join <cluster-control-plane-leader-ip>:6443 
    --token <cluster-join-token>
    --discovery-token-ca-cert-hash sha256:<cluster-discovery-token-ca-cert-hash>  
    --certificate-key <cluster-certificate-key> 
    --control-plane

Ringkasan

Bidang kontrol Kubernetes bertanggung jawab untuk mempertahankan operasi di tingkat grup. Ini memantau node bisnis Anda, menangani permintaan API, dan memberlakukan tindakan di dalam blok untuk mencapai keadaan yang diinginkan.

Jika Kontrol Level mogok, fitur ini tidak akan tersedia, tetapi Anda harus dapat terus menggunakan kapsul yang ada untuk waktu yang terbatas. Level kontrol menghubungkan node ke dalam sebuah cluster. Tanpa itu, node dipaksa untuk beroperasi secara independen tanpa mengetahui satu sama lain.

Karena bidang kontrol adalah satu titik pusat kegagalan, kelompok tugas-kritis harus beralih di beberapa node master untuk meningkatkan keandalan. Beberapa kluster master mendistribusikan fungsi manajemen kluster dengan cara yang sama seperti node yang bekerja membuat container Anda sangat mudah diakses. Meskipun mungkin sulit untuk diatur, pengulangan ekstra sangat berharga. Tingkat kontrol ketersediaan tinggi juga ditawarkan sebagai fitur penawaran Kubernetes terkelola dari banyak penyedia layanan cloud.

Baca Juga!

Cara Memperbarui Kodi di Amazon Fire TV Stick

Syafiq Adnan / Shutterstock.com Untuk mendapatkan perbaikan bug terbaru dan potensi fitur baru, perbarui aplikasi …