كيفية إعادة تشغيل قرنة Kubernetes

تلميح: لا يوجد أمر "إعادة تشغيل kubectl"

Kubernetes (k8s) هو نظام مفتوح المصدر لتنسيق الحاويات من أجل التشغيل التلقائي للنشر وتوسيع نطاق التطبيقات في حاويات.

يوضح هذا المقال كيفية إعادة تشغيل القرون قيد التشغيل باستخدام kubectl (واجهة سطر أوامر لتشغيل الأوامر ضد مجموعات Kubernetes).

مشكلة مع قرنة الخاص بك؟

افترض أن أحد برامجك التي تعمل على k8s تواجه مشكلة.

لقد كان جيدًا في وقت مبكر ، لكن لسبب ما ، بدأ الانهيار الآن. ليس لديك أي فكرة عن سبب ذلك ، لذا عليك التحقق من صحة القرون

kubectl الحصول على القرون الخدمة
اسم جاهز الوضع الحالي المطاعم
api-7996469c47-d7zl2 1/1 الجري 0 77 د
api-7996469c47-tdr2n 1/1 الجري 0 77 د
chat-5796d5bc7c-2jdr5 0/1 Error 0 5d
chat-5796d5bc7c-xsl6p 0/1 Error 0 5d

سترى أن أحد برامجك يواجه مشكلة نظرًا لأن حالته هي "خطأ". قد تواجه حالة أخرى CrashLoopBackOff ، وهو k8s يحاول إعادة تشغيل السنفات تلقائيًا (افتراضي).

kubectl وصف جراب دردشة ن الخدمة

تحاول تصحيح الأخطاء عن طريق تشغيل أمر صف ، ولكن لا يمكنك العثور على أي شيء مفيد في الإخراج. يمكنك القيام بالشيء المنطقي التالي والتحقق من سجلات حِمل القرنة باستخدام ستيرن ويبدو أنك لا تستطيع العثور على أي رسائل خطأ مفيدة. ربما قام شخص من فريقك بالالتزام السيئ ، لذا فأنت تقوم بالتحقق من سجلات git لمعرفة ما إذا لم تكن هناك عمليات دفع مؤخرًا إلى الريبو. لا يوجد

أنت تخدش رأسك وتتساءل ما هي المشكلة. ينتظر المستخدمون بفارغ الصبر أن يعمل التطبيق مرة أخرى حتى لا تريد تضييعه في أي وقت.

إعادة تشغيل قرنة Kubernetes الخاصة بك

دعنا فقط إعادة تشغيل جراب!

عادة ، بالنسبة لفرق التطوير الحديثة ، لديك نظام CI / CD حيث يمكنك ببساطة الضغط على زر لإعادة نشر السنفات الخاصة بك.

ومع ذلك ، فإن المشكلة في ذلك هي أن الأمر قد يستغرق وقتًا طويلاً لإعادة تشغيل جهاز الكمبيوتر الخاص بك نظرًا لأنه يجب إعادة تشغيله من خلال التكامل المستمر بالكامل (مثل اختبارات الوحدة ورمز الترجمة وصورة عامل ميناء البناء وما إلى ذلك) والنشر المستمر (مثل الدوران) البيئة ، رمز الخروج ، حزم التنزيل ، إلخ). لماذا يجب عليك المرور بهذه العملية مرة أخرى عندما تعلم أنها ستمضي؟

المشكلة في [CI / CD] هي أن الأمر قد يستغرق وقتًا طويلاً لإعادة تشغيل جرابك لأنه يجب إعادة تشغيل العملية بأكملها مرة أخرى.

سيكون الحل الأسرع هو استخدام kubectl المضمّن في نطاق الأوامر وتعيين النسخ المتماثلة على صفر.

نشر kubectl على نطاق الدردشة - النسخ = 0-ن الخدمة
kubectl الحصول على القرون الخدمة
اسم جاهز الوضع الحالي المطاعم
api-7996469c47-d7zl2 1/1 الجري 0 77 د
api-7996469c47-tdr2n 1/1 الجري 0 77 د
chat-5796d5bc7c-2jdr5 0/1 إنهاء 0 5d
chat-5796d5bc7c-xsl6p 0/1 إنهاء 0 5d

يعيّن مقياس الأوامر مقدار النسخ المتماثلة التي يجب تشغيلها من أجل pod المعنية. عندما تضبطه على الصفر ، يتم إيقاف العملية بشكل فعال.

kubectl الحصول على القرون الخدمة
اسم جاهز الوضع الحالي المطاعم
api-7996469c47-d7zl2 1/1 الجري 0 77 د
api-7996469c47-tdr2n 1/1 الجري 0 77 د

لبدء الحافظة مرة أخرى ، اضبط النسخ المتماثلة على أكثر من 0.

نشر kubectl على نطاق الدردشة - النسخ = 2-ن الخدمة
kubectl الحصول على القرون الخدمة
اسم جاهز الوضع الحالي المطاعم
api-7996469c47-d7zl2 1/1 الجري 0 77 د
api-7996469c47-tdr2n 1/1 الجري 0 77 د
chat-5796d5bc7c-2jdr5 1/1 الجري 0 3 ثانية
chat-5796d5bc7c-xsl6p 1/1 تشغيل 0 3 ثانية

هذا هو!

خاتمة

Kubernetes كبيرة لتنسيق الحاويات. ومع ذلك ، كما هو الحال مع جميع النظم ، تحدث مشاكل. إعادة تشغيل السنفات باستخدام مقياس kubectl --replicas = 0 هي طريقة سريعة وسهلة لتشغيل تطبيقك مرة أخرى. ومع ذلك ، لن تؤدي إعادة تشغيل جرابك إلى حل المشكلة الأساسية التي تسببت في كسر الجراب في المقام الأول ، لذا يرجى التأكد من العثور على المشكلة الأساسية وإصلاحها!

ملاحظة. نقوم بالتوظيف! تبحث Panya Studios دائمًا عن أفراد موهوبين وشغوفين للانضمام إلى فريقنا المتنامي في بانكوك ، تايلاند. استكشف فتحاتنا الحالية على https://panyastudios.com

إذا كان لديك طريقة أخرى للقيام بذلك أو لديك أي مشاكل مع الأمثلة أعلاه ، فأعلمني في التعليقات.

لا تنسى متابعتي هنا على "متوسط" للحصول على مقالات أكثر إثارة للاهتمام حول هندسة البرمجيات.

شكرا للقراءة!

مصادر

  • https://kubernetes.io/docs/reference/kubectl/cheatsheet/
  • https://sysdig.com/blog/debug-kubernetes-crashloopbackoff/
  • https://github.com/wercker/stern

انضم إلى مجتمعنا Slack وقراءة موضوعات Faun الأسبوعية الخاصة بنا ⬇

إذا كانت هذه المشاركة مفيدة ، فالرجاء النقر على زر التصفيق أدناه عدة مرات لإظهار دعمك للمؤلف! ⬇