كيفية ضبط التسامح Kubernetes

Kyfyt Dbt Altsamh Kubernetes



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

ما هي التسامح والتلطيخ في Kubernetes؟

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

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







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



يسمح التسامح في Kubernetes بجدولة حجرة على عقدة حيث تم تطبيق التلوث بالفعل. يتم تطبيق التسامح على الكبسولة باستخدام مواصفات PodSpec 'PodSpec'. عندما تقوم بتطبيق التسامح على جراب مع تلوث مطابق ، يمكن للجدول بسهولة جدولة البودات على عقدة معينة.



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





المتطلبات المسبقة:

فيما يلي الأشياء التي تحتاجها لتنفيذ التسامح على عقدة في Kubernetes:

  • Ubuntu 20.04 أو أي إصدار آخر آخر من أي نظام Linux
  • Minikube (أحدث إصدار)
  • آلة افتراضية مثبتة في نظام Linux / Unix الخاص بك
  • أداة سطر أوامر Kubectl

بافتراض أن نظامك يلبي جميع احتياجات المتطلبات الأساسية ، فلنبدأ في تعيين Kubernetes toleration.



الخطوة 1: ابدأ تشغيل محطة Minikube

أول شيء عليك القيام به هو بدء تشغيل محطة minikube بحيث يمكنك استخدام أوامر kubectl لتنفيذ تسامح Kubernetes على العقدة. لبدء تشغيل minikube ، يتم استخدام الأمر التالي:

> بدء minikube

عند تنفيذ هذا الأمر ، ستحصل على المخرجات التالية في جهازك الطرفي:

الخطوة 2: احصل على قائمة بالعقد النشطة

الآن بعد أن بدأنا الميني كيوب ، أصبح نظامنا جاهزًا لضبط التسامح على الكبسولات في Kubernetes. قبل أن نضبط التسامح على الكبسولات ، دعونا نتحقق من عدد العقد ونوع العقد التي لدينا بالفعل. للقيام بذلك ، نستخدم الأمر التالي التالي:

> kubectl الحصول على العقد -ال = أعمدة مخصصة = NodeName: .metadata.name ، TaintKey: .spec.taints [ * ] .key ، TaintValue: .spec.taints [ * ] .value و TaintEffect: .spec.taints [ * ] .تأثير

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

نظرًا لعدم وجود عقد تم إنشاؤها وتلويثها بواسطة التثبيت الافتراضي لـ Kubernetes ولم نقم أيضًا بإنشاء أي عقدة على وجه التحديد ، فإن النتيجة هي <لا شيء>. من الإخراج السابق يمكننا أن نرى أنه لا توجد عقدة. ومن ثم ، نقوم أولاً بإنشاء العقدة ثم تعيين التسامح. لتعيين التسامح على pod في Kubernetes ، نحتاج أولاً إلى نشر تطبيق على مجموعة. توضح الخطوات القليلة التالية كيفية نشر تطبيق على مجموعة.

الخطوة 3: قم بإنشاء Namespace

أولاً ، نقوم بإنشاء مساحة اسم لنشر تطبيق على مجموعة. هنا ، نقوم بإنشاء تطبيق بقيمة 'الواجهة الأمامية' بمساعدة الأمر التالي:

> kubectl إنشاء الواجهة الأمامية ns

ينشئ هذا الأمر مساحة الاسم التي لها قيمة 'الواجهة الأمامية'. انظر الناتج التالي:

الخطوة 4: انشر Nginx Pod على مساحة الاسم

الآن ، قم بنشر nginx pod على مساحة الاسم التي أنشأناها للتو. نستخدم الأمر التالي لنشر nginx:

> kubectl تشغيل nginx - صورة = nginx –namespace frontend

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

  يتم إنشاء وصف النص تلقائيًا

الخطوة 5: احصل على قائمة البودات

الآن ، دعونا نتحقق من الكبسولات التي تم إنشاؤها لمعرفة حالاتها. يسرد الأمر المعطى جميع الكبسولات وحالاتها أيضًا:

> kubectl الحصول على القرون نهاية المقدمة

نظرًا لأننا أنشأنا nginx فقط ، يجب أن يسرد هذا الأمر الحجرة بحالتها. انظر الناتج التالي:

الخطوة 6: تحليل أحداث Kubernetes

الآن ، دعونا نحلل الأحداث في Kubernetes حتى نتمكن من ضبط التسامح على الكبسولات وفقًا لذلك. نستخدم الأمر kubectl التالي للحصول على قائمة الأحداث في Kubernetes:

> kubectl الحصول على الأحداث نهاية المقدمة

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

  يتم إنشاء وصف النص تلقائيًا

كما ترى من الإخراج السابق ، تمت جدولة nginx pod بالتسامح المحدد. تعرض خاصية 'message' قائمة الإجراءات التي يتم تنفيذها على طول العملية.

الخطوة 7: تحقق من حالة السنفات

الخطوة الأخيرة هي التحقق مرة أخرى من حالة البود الذي أنشأناه سابقًا للتأكد من أنه تمت جدولته بنجاح على عقدة محددة وصحيحة. للقيام بذلك ، نستخدم الأمر kubectl التالي:

> kubectl الحصول على القرون نهاية المقدمة

كما يتضح من الإخراج السابق ، يُسمح الآن للجراب بالعمل على العقدة الملوثة حيث يتم تعيين التسامح ضدها.

استنتاج

في هذا الدليل ، استكشفنا العيوب والتسامح. تعلمنا عن العمل الأساسي للعيوب والتسامح. ثم طبقنا التسامح على الكبسولة. بمساعدة مثال بسيط ، تعلمنا كيفية ضبط التسامح على عقدة في Kubernetes.