Cara Menetapkan Dasar Mulakan Semula Kubernetes yang berbeza

Cara Menetapkan Dasar Mulakan Semula Kubernetes Yang Berbeza



Kami akan bercakap secara khusus tentang pelbagai dasar permulaan semula Kubernetes dalam artikel ini. Mari kita bincangkan dahulu pelbagai dasar yang digunakan apabila Kubernetes perlu dimulakan semula. Anda boleh menggunakan Dasar ini untuk menghentikan beban kerja tertentu daripada digunakan dalam kelompok. Walaupun mengenakan piawaian yang ketat dalam kluster lazimnya dilakukan untuk memastikan pematuhan, pentadbir kluster juga harus mengikut beberapa amalan terbaik yang telah dicadangkan.

Apakah Dasar Mulakan Semula Kubernetes?

Setiap pod Kubernetes mematuhi kitaran hayat tertentu. Ia bermula dalam peringkat 'menunggu' dan, jika satu atau lebih bekas utama berjaya dilancarkan, peralihan ke peringkat 'berjalan'. Bergantung pada sama ada bekas dalam pod berjaya atau gagal, proses itu kemudiannya bergerak ke fasa 'berjaya' atau 'gagal'.







Untuk memulakan semula dasar pada tahap bekas yang digunakan, tiga pilihan boleh digunakan:



Sentiasa

Setiap kali bekas ditamatkan, Kubernetes menghasilkan yang baharu memandangkan pod perlu aktif pada setiap masa.



OnFailure

Jika bekas keluar dengan kod pulangan selain 0, ia hanya dimulakan semula sekali. Memulakan semula tidak diperlukan untuk bekas yang mengembalikan 0 (berjaya).





tidak pernah

Bekas gagal dimulakan semula.

Sekarang, dalam bahagian berikut, kami akan membincangkan cara anda boleh memulakan semula pod.



Bagaimana untuk Memulakan Semula Pod dalam Kubernetes?

Untuk memulakan semula pod Kubernetes, keluarkan arahan menggunakan alat kubectl. Ia akan bersambung dengan pelayan KubeAPI. Mari kita terokai pilihan yang tersedia:

Memulakan semula Bekas dalam Pod

Satu pod boleh memuatkan beberapa bekas. Sebaliknya, anda pada asasnya menyambung ke bekas utama dalam pod apabila anda menyambung kepadanya. Anda boleh menyambung ke setiap bekas yang telah anda tentukan dalam kes jika anda telah menentukan lebih daripada satu.

Anda boleh lihat di bawah contoh spesifikasi pod berbilang bekas:


Ini menerangkan volum dikongsi dan dua bekas. Fail HTML akan disampaikan oleh bekas NGINX dan setiap saat bekas Ubuntu akan menambah setem tarikh pada fail HTML.

Memandangkan anda tidak menyatakan bekas yang hendak disambungkan, ia akan memilih yang pertama (NGINX) secara automatik apabila anda cuba menyambung ke pod itu. Tangkapan skrin dilampirkan di bawah:


Anda kini boleh mencuba untuk menamatkan proses PID 1 di dalam bekas yang sedang aktif. Jalankan arahan berikut sebagai root untuk mencapai ini:


Anda juga boleh menggunakan alat kubectl yang diterangkan di bawah:


Menurut spesifikasi pod, K8s kini akan cuba memulakan semula bekas yang musnah. Untuk itu, arahan 'huraikan' digunakan seperti berikut:


Berikut adalah hasil daripada arahan di atas:


Keadaan sekarang adalah 'pergi,' manakala keadaan sebelumnya 'ditamatkan.' Ini bermakna bekas telah dimulakan semula, mengikut ini. Walau bagaimanapun, tidak semua bekas boleh mengakses kelayakan root. Itulah sebabnya kaedah ini mungkin tidak begitu berguna.

Memulakan semula Pod dengan Penskalaan

Menskalakan kiraan replika pod kepada 0 dan kemudian menskalakannya kepada 1 ialah cara paling mudah untuk memulakannya semula. Sebaliknya anda mesti membina Deployment kerana arahan skala tidak boleh digunakan pada pod. Berikut ialah cara mudah untuk mencapainya:


Skala kepada 0 dan kemudian kepada 1 selepas itu. Dengan melakukan ini, pod akan ditamatkan dan kemudian digunakan semula ke kluster:


Replika ditetapkan kepada 1 seperti yang anda boleh lihat dalam imej ini.


Untuk melihat butiran penggunaan, kami kini telah menggunakan 'kubectl get deployments.' Berikut ialah senarai kedua-dua arahan dan hasilnya:

Mulakan semula Pod dengan Memadamkannya dan Mengatur Semula

Menggunakan arahan 'kubectl delete', anda boleh memadam pod dan kemudian mengatur semulanya. Walau bagaimanapun, pendekatan ini agak mengganggu, oleh itu ia tidak dinasihatkan.

Memulakan semula Pod Menggunakan Pelancaran

Untuk memulakan semula pod menggunakan cara yang diterangkan di atas, anda mesti sama ada memusnahkan pod sedia ada dan kemudian mencipta pod baharu, atau menskalakan kiraan replika ke bawah dan kemudian ke atas. Dengan Kubernetes versi 1.15, anda boleh memulakan semula Deployment secara bergolek. Ini ialah prosedur yang dicadangkan untuk memulakan semula pod. Hanya masukkan arahan berikut untuk bermula:


Sekarang, jika anda memerhatikan status penggunaan pada terminal yang berbeza, anda akan melihat aliran peristiwa seperti berikut:


Jika ia sihat, ia akan mengecilkan replika Deployment sebelumnya dan memutarkan replika pod baharu. Hasilnya adalah sama, kecuali dalam pendekatan ini, orkestrasi asas dikendalikan oleh Kubernetes.

Bagaimanakah Pod Kubernetes Boleh Dimulakan Semula dengan Cara Yang Berbeza?

Mari kita mulakan dahulu dengan bekas docker. Dengan arahan berikut, bekas Docker boleh dimulakan semula:

> docker mulakan semula container_id

Tetapi dalam Kubernetes, tiada arahan yang setanding untuk memulakan semula pod, terutamanya jika tiada fail YAML yang ditentukan. Sebagai alternatif, anda boleh memulakan semula pod Kubernetes menggunakan arahan kubectl. Perintah berikut disenaraikan:

Perintah Env Set Kubectl

Satu kaedah ialah menggunakan perintah skala kubectl. Ini akan mengubah suai bilangan replika pod yang perlu dimulakan semula. Di bawah ialah contoh arahan tentang cara menetapkan replika dalam pod menjadi dua:

> penyebaran skala kubectl penempatan pertama --replika = 2

Perintah Mulakan Semula Pelancaran

Di sini, kami akan menunjukkan cara menggunakan perintah mulakan semula pelancaran untuk memulakan semula pod Kubernetes:

> pelancaran kubectl mulakan semula pengerahan penggunaan pertama -n ruang nama demo

Pengawal diberitahu untuk menghapuskan setiap pod secara individu dengan arahan. Ia kemudiannya meningkatkan pod baharu menggunakan ReplicaSet. Sehingga setiap pod baharu adalah lebih terkini daripada setiap pod semasa apabila pengawal disambung semula, proses ini diteruskan.

Perintah Padam Pod

Bahagian ini akan membincangkan cara menggunakan arahan alih keluar untuk memulakan semula pod Kubernetes. Anda boleh perhatikan bahawa kami menggunakan arahan seterusnya untuk menyingkirkan objek API pod dalam imej ini:

. > kubectl delete pod first-pod -n ruang nama_demo

Yang dijangkakan bercanggah dengan memadamkan objek pod kerana API Kubernetes adalah deklaratif. Untuk mengekalkan konsistensi dengan yang dijangkakan, pod itu dicipta semula.

Satu pod boleh dimulakan semula pada satu masa menggunakan arahan sebelumnya. Rujuk arahan yang dilampirkan untuk memulakan semula beberapa pod:

> kubectl padamkan replikaset pods-multiple-n demo_namespace

Perintah yang disebutkan di atas memulakan semula setiap pod dengan memadamkan keseluruhan ReplicaSet pod dan kemudian menciptanya dari awal.

Kesimpulan

Siaran ini memberikan maklumat tentang pelbagai dasar permulaan semula Kubernetes. Kami menggambarkan setiap peringkat dengan bantuan contoh contoh. Juga, cuba arahan ini dan lihat output yang dihasilkannya.