كيفية تعيين سياسات إعادة تشغيل Kubernetes مختلفة

Kyfyt T Yyn Syasat A Adt Tshghyl Kubernetes Mkhtlft



سنتحدث على وجه التحديد عن سياسات إعادة تشغيل Kubernetes المختلفة في هذه المقالة. دعونا أولاً نناقش السياسات المختلفة المستخدمة عند إعادة تشغيل Kubernetes. يمكنك استخدام هذه النُهج لإيقاف نشر حمل عمل معين في نظام المجموعة. في حين يتم فرض معايير صارمة في الكتلة عادةً لضمان الامتثال ، يجب على مسؤولي المجموعة أيضًا اتباع العديد من أفضل الممارسات التي تم اقتراحها.

ما هي سياسة إعادة تشغيل Kubernetes؟

تلتزم كل حجرة Kubernetes بدورة حياة محددة. يبدأ في مرحلة 'الانتظار' ، وإذا تم إطلاق حاوية أو أكثر من الحاويات الأولية بنجاح ، فإنه ينتقل إلى مرحلة 'التشغيل'. اعتمادًا على ما إذا كانت الحاويات الموجودة في الكبسولة تنجح أو تفشل ، تنتقل العملية بعد ذلك إلى مرحلة 'تم النجاح' أو 'الفاشلة'.







لإعادة تشغيل السياسة على مستوى الحاويات المطبقة ، يمكن استخدام ثلاثة خيارات:



دائماً

في كل مرة يتم فيها إنهاء الحاوية ، تنتج Kubernetes واحدة جديدة نظرًا لأن الكبسولة يجب أن تكون نشطة في جميع الأوقات.



عند الفشل

إذا خرجت الحاوية مع رمز إرجاع غير 0 ، فستتم إعادة تشغيلها مرة واحدة فقط. إعادة التشغيل ليست ضرورية للحاويات التي تُرجع 0 (نجاح).





أبداً

فشلت الحاوية في إعادة التشغيل.

الآن ، في القسم التالي ، سنناقش كيف يمكنك إعادة تشغيل البود.



كيفية إعادة تشغيل جراب في Kubernetes؟

لإعادة تشغيل مجموعة Kubernetes ، قم بإصدار أوامر باستخدام أداة kubectl. سيتصل بخادم KubeAPI. دعنا نستكشف الخيارات المتاحة:

إعادة تشغيل حاوية داخل جراب

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

يمكنك أن ترى أدناه مثالًا لمواصفات جراب متعدد الحاويات:


يصف هذا وحدة تخزين مشتركة وحاويتين. سيتم تقديم ملف HTML بواسطة حاوية NGINX وكل ثانية ستضيف حاوية Ubuntu طابع تاريخ إلى ملف HTML.

نظرًا لأنك لم تحدد الحاوية التي تريد الاتصال بها ، فسوف تختار تلقائيًا الحاوية الأولى (NGINX) عندما تحاول الاتصال بهذا الكبسولة. لقطة الشاشة مرفقة أدناه:


يمكنك الآن محاولة إنهاء عملية PID 1 داخل الحاوية النشطة حاليًا. قم بتشغيل الأوامر التالية كجذر لإنجاز ذلك:


يمكنك أيضًا استخدام أداة kubectl الموضحة أدناه:


وفقًا لمواصفات الكبسولة ، ستحاول K8s الآن إعادة تشغيل الحاوية المدمرة. لذلك ، يتم استخدام أمر 'وصف' على النحو التالي:


ها هي نتيجة الأمر أعلاه:


الحالة الحالية 'مستمرة' ، بينما تم 'إنهاء' الحالة السابقة. وهذا يعني أنه تم إعادة تشغيل الحاوية ، بحسب هذا. ومع ذلك ، لا يمكن لجميع الحاويات الوصول إلى بيانات اعتماد الجذر. هذا هو السبب في أن هذه الطريقة قد لا تكون مفيدة للغاية.

إعادة تشغيل قرنة عن طريق القياس

يعد تحجيم عدد النسخ المتماثلة للحجرة إلى 0 ثم توسيعها إلى 1 هو أبسط طريقة لإعادة تشغيله. يجب عليك بدلاً من ذلك إنشاء نشر لأنه لا يمكن استخدام أمر المقياس على القرون. إليك طريقة سهلة لتحقيق ذلك:


مقياس الرسم إلى 0 ثم إلى 1 بعد ذلك. من خلال القيام بذلك ، سيتم إنهاء الكبسولة ثم إعادة نشرها إلى الكتلة:


تم تعيين النسخ المتماثلة على 1 كما ترى في هذه الصورة.


لعرض تفاصيل النشر ، استخدمنا الآن 'kubectl get النشرات'. فيما يلي قائمة بكل من الأمر والنتيجة:

إعادة تشغيل Pod عن طريق حذفه وإعادة نشره

باستخدام الأمر 'kubectl delete' ، يمكنك حذف الكبسولة ثم إعادة نشرها. ومع ذلك ، فإن هذا النهج معطّل إلى حد ما ، لذلك لا ينصح به.

إعادة تشغيل Pod باستخدام Rollout

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


الآن ، إذا كنت تراقب حالة النشر على محطة طرفية مختلفة ، فستلاحظ تدفق الأحداث على النحو التالي:


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

كيف يمكن إعادة تشغيل كبسولات Kubernetes بطرق مختلفة؟

لنبدأ أولاً بحاوية عامل الإرساء. باستخدام الأمر التالي ، يمكن إعادة تشغيل حاويات Docker:

> إعادة تشغيل عامل الميناء container_id

لكن في Kubernetes ، لا يوجد أمر مشابه لإعادة تشغيل pods ، خاصةً إذا لم يكن هناك ملف YAML محدد. كبديل ، يمكنك إعادة تشغيل حاضنات Kubernetes باستخدام أوامر kubectl. يتم سرد الأوامر التالية:

أمر Kubectl Set Env

إحدى الطرق هي استخدام الأمر kubectl scale. سيؤدي هذا إلى تعديل عدد النسخ المتماثلة للجراب الذي يحتاج إلى إعادة التشغيل. يوجد أدناه مثال لأمر حول كيفية تعيين النسخ المتماثلة في الحجرة لتكون نسختين:

> النشر الأول على نطاق kubectl - نسخ = 2

بدء أمر إعادة التشغيل

سنشرح هنا كيفية استخدام أمر بدء التشغيل لإعادة تشغيل أجهزة Kubernetes:

> بدء نشر kubectl إعادة النشر أولاً مساحة الاسم التجريبي

يُطلب من وحدة التحكم إبادة كل جراب على حدة بواسطة الأمر. ثم يقوم بتوسيع حجم البودات الجديدة باستخدام ReplicaSet. تستمر هذه العملية إلى أن يصبح كل جراب جديد أحدث من كل جراب حالي عند استئناف وحدة التحكم.

أمر حذف القرص

سيتناول هذا القسم كيفية استخدام أمر الإزالة لإعادة تشغيل أجهزة Kubernetes. يمكنك ملاحظة أننا استخدمنا الأمر التالي للتخلص من كائن pod API في هذه الصورة:

. > kubectl حذف الجراب الأول demo_namespace

يتعارض العنصر المتوقع من خلال حذف كائن pod لأن Kubernetes API هو تعريف. للحفاظ على الاتساق مع المتوقع ، يتم إعادة إنشاء الكبسولة.

يمكن إعادة تشغيل جراب واحد في كل مرة باستخدام الأمر السابق. ارجع إلى الأمر المرفق لإعادة تشغيل عدة قرون:

> kubectl حذف مجموعة النسخ المتماثلة pods-multi-n demo_namespace

يقوم الأمر المذكور أعلاه بإعادة تشغيل كل جراب عن طريق حذف مجموعة النسخ المتماثلة بالكامل من البودات ثم إنشائها من نقطة الصفر.

استنتاج

قدم هذا المنشور معلومات حول سياسات إعادة تشغيل Kubernetes المختلفة. قمنا بتوضيح كل مرحلة بمساعدة عينة من الأمثلة. أيضًا ، جرب هذه الأوامر وانظر إلى المخرجات التي تولدها.