Praktik terbaik Kubernetes. Upgrade Kubernetes Zero Downtime Cluster

Praktik terbaik Kubernetes. Membuat Kontainer Kecil
Kubernetes Praktik Terbaik. Organisasi Kubernetes dengan Kubernetes
Best Practices Namespace. Uji Kelayakan Kubernetes dengan Tes Kesiapan dan Uji Kekuatan
Praktik Terbaik Kubernetes . Mengatur Kueri dan Batas Sumber Daya
Praktik Terbaik Kubernetes. Hentikan
Praktik Terbaik Kubernet yang Benar . Memetakan layanan eksternal

Semua orang tahu betapa baiknya untuk menjaga aplikasi Anda tetap terbaru. Kubernetes dan Docker dapat membuat proses peningkatan lebih mudah, sehingga Anda dapat membuat wadah baru dengan dependensi yang diperbarui dan dengan mudah menyebarkannya. Selain memperbarui dependensi aplikasi, Kubernetes terus memperbarui fitur dan kebijakan keamanan.
Dengan demikian, node dan infrastruktur dasar Kubernet harus mutakhir. Dalam seri ini, kita akan belajar bagaimana Google Kubernetes Engine dapat dengan mudah memutakhirkan kluster Kubernetes.

Jadi, ketika memperbarui cluster, Anda perlu memperbarui penyihir dan simpul, dan penyihir harus diperbarui terlebih dahulu. Mari kita lihat cara memperbarui kedua elemen menggunakan Google Kubernetes Engine. Sistem ini secara otomatis memperbarui wisaya karena rilis rilis titik. Namun, sebagai aturan, itu tidak akan diperbarui ke versi baru, misalnya, 1.7-1.8, secara otomatis. Ketika Anda siap untuk meningkatkan ke versi baru, Anda cukup mengklik tautan Upgrade yang tersedia di konsol GKE, setelah itu kotak dialog akan muncul di layar. Ini berisi peringatan bahwa mengubah versi master mungkin memakan waktu beberapa menit, di mana Anda tidak dapat mengedit kluster ini, sementara selama peningkatan panduan, penyebaran dan layanan Anda akan terus bekerja secara normal. Namun, seluruh infrastruktur yang membutuhkan API Kubernetes tidak akan berfungsi.



Ini berarti bahwa QPTL dan semua aplikasi yang menggunakan API Kubernetes untuk mendapatkan informasi kluster akan dinonaktifkan dan Anda tidak akan dapat membuat perubahan apa pun pada klaster.

Mari kita lihat bagaimana Anda bisa menyelesaikan masalah ini dengan memperbarui wizard dengan nol downtime.



Meskipun kluster zona GKE standar hanya mendukung satu penyihir, Anda dapat membuat kluster regional yang menyediakan penyihir ketersediaan tinggi multi-zona. Karenanya, saat membuat kluster Anda, pastikan untuk memilih opsi regional.

Simpul dan penyihir Anda akan secara otomatis dibuat di tiga zona, dan penyihir akan memiliki alamat IP yang seimbang. Ini akan menjaga API Kubernetes berjalan dengan lancar selama peningkatan.

Saat memperbarui node, ada beberapa strategi berbeda yang dapat Anda gunakan. Saya ingin memusatkan perhatian Anda pada dua hal - menggulung pembaruan bergulir dan migrasi menggunakan kumpulan simpul.

Cara termudah untuk memperbarui node Kubernetes adalah dengan menggunakan pembaruan bergulir, mekanisme pembaruan default yang digunakan GKE untuk memperbarui node Anda. Ini berfungsi sebagai berikut.



Node versi lama dinonaktifkan satu demi satu sehingga semua modul berhenti bekerja di dalamnya. Kemudian simpul-simpul ini dihapus, dan bukannya simpul-simpul itu, simpul-simpul baru dari versi Kubernet yang diperbarui muncul satu demi satu. Setelah satu node mulai bekerja, yang lainnya melanjutkan ke proses pembaruan, dan ini berlanjut sampai semua node diperbarui. Anda dapat membiarkan GKE mengelola proses ini untuk Anda dengan mengaktifkan pembaruan otomatis node di kumpulan node dengan memilih Diaktifkan.



Jika tidak, dasbor GKE akan memperingatkan Anda ketika pembaruan baru tersedia. Dalam hal ini, untuk melakukan pembaruan, Anda perlu mengklik tautan Pembaruan simpul otomatis dan ikuti instruksi.



Pada saat yang sama, sangat penting untuk memastikan bahwa pod Anda dikontrol menggunakan set replika, set stateful, atau yang serupa. Maka perapian otonom tidak akan direstrukturisasi.

Meskipun pembaruan yang bergulir cukup mudah dilakukan dengan GKE, masih ada beberapa kekurangan. Salah satunya adalah ketika Anda memutakhirkan, kapasitas cluster Anda berkurang satu node. Kerugian ini mudah dihilangkan dengan menskalakan kumpulan node dengan menambahkan kapasitas tambahan dan kemudian menguranginya setelah pembaruan.

Selain itu, sifat pembaruan bergulir yang sepenuhnya otomatis membuat pembaruan menjadi lebih mudah, tetapi membuat Anda kurang memiliki kendali atas prosesnya. Jika terjadi kesalahan dan Anda harus memutar kembali ke versi yang lama, akan butuh waktu untuk menghentikan pembaruan yang berjalan dan membuang semua perubahan yang telah dilakukan. Mari kita lihat bagaimana Anda bisa menggunakan kumpulan dari banyak node untuk meningkatkan cluster Anda.



Jadi, alih-alih memperbarui kumpulan aktif node menggunakan pembaruan bergulir, Anda membuat kumpulan node yang sama sekali baru, tunggu semua node untuk memulai, dan kemudian transfer beban kerja satu node pada suatu waktu. Saat Anda menjalankan sendiri perintah-perintah ini, Anda mendapatkan kontrol lebih besar atas proses migrasi, sementara GKE terus mengelola node Anda.
Misalkan cluster Kubernetes terdiri dari 3 mesin virtual. Anda dapat melihat node menggunakan perintah get node.



Untuk membuat kumpulan node baru bernama kumpulan-dua, Anda harus menggunakan perintah yang sesuai, mengaturnya dengan cara yang persis sama dengan perintah untuk kumpulan yang lama.



Secara opsional, Anda juga dapat menggunakan GUI untuk membuat kumpulan simpul baru. Untuk informasi lebih lanjut tentang ini, gunakan tautan pembuatan Node pool yang terletak di bawah video ini.

Jika Anda memeriksa jumlah node lagi, Anda akan menemukan tiga node baru dengan nama pool-two pool, namun, pod masih berada di node lama.



Mari kita pindahkan mereka ke kumpulan simpul baru, memindahkan satu simpul pada satu waktu dalam mode bergulir. Untuk melakukan ini, gunakan perintah cordon untuk setiap node lama untuk melindungi mereka dan mencegah pembentukan perapian baru di dalamnya.



Segera setelah semua node lama dipagari, pembuatan perapian hanya akan direncanakan di node baru. Ini berarti Anda dapat mulai menghapus pod dari node lama, dan Kubernetes secara otomatis berencana untuk membuatnya di node baru. Maka Anda perlu "menguras" setiap node, yang akan mengarah pada penghapusan semua perapian di node.



Setelah Anda melakukan ini untuk satu simpul, pastikan bahwa pod baru sudah siap dan sudah berfungsi, dan kemudian pindah ke simpul berikutnya. Jika Anda memiliki masalah selama migrasi, jalankan uncordon untuk pool lama, lalu jalankan cordon dan tiriskan untuk pool baru. Dalam hal ini, polong akan secara otomatis ditransfer kembali ke kumpulan lama. Setelah semua pod ditransfer dengan aman, Anda dapat menghapus kumpulan lama. Untuk melakukan ini, ganti kumpulan default dengan kumpulan yang ingin Anda hapus.



Google Kubernetes Engine memungkinkan Anda menjaga klaster Kubernetes Anda tetap baru dengan hanya beberapa klik. Saya sangat merekomendasikan menggunakan kluster regional GKE untuk penyihir ketersediaan tinggi dan pembaruan simpul otomatis untuk memastikan pembaruan yang benar dan bebas masalah.

Jika Anda memerlukan kontrol tambahan atas proses pembaruan node, Anda dapat menyediakannya dengan bantuan pool, tanpa melepaskan keunggulan platform manajemen yang disediakan oleh GKE.

Jika Anda tidak menggunakan GKE, maka gunakan metode rolling update rolling atau node pool node untuk memperbarui node cluster Anda. Tetapi ingat bahwa dalam hal ini Anda perlu menambahkan secara manual node baru ke cluster dan melakukan pembaruan penting sendiri, yang mungkin tidak cukup sederhana.

Akan dilanjutkan segera ...


Sedikit iklan :)


Terima kasih untuk tetap bersama kami. Apakah Anda suka artikel kami? Ingin melihat materi yang lebih menarik? Dukung kami dengan melakukan pemesanan atau merekomendasikan kepada teman Anda VPS berbasis cloud untuk pengembang mulai $ 4,99 , analog unik dari server entry-level yang diciptakan oleh kami untuk Anda: Seluruh kebenaran tentang VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps mulai dari $ 19 atau cara membagi server? (opsi tersedia dengan RAID1 dan RAID10, hingga 24 core dan hingga 40GB DDR4).

Dell R730xd 2 kali lebih murah di pusat data Equinix Tier IV di Amsterdam? Hanya kami yang memiliki 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV dari $ 199 di Belanda!Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - mulai dari $ 99! Baca tentang Cara Membangun Infrastruktur Bldg. kelas c menggunakan server Dell R730xd E5-2650 v4 seharga 9.000 euro untuk satu sen?

All Articles