ملاحظة perev. : تستمر هذه المقالة في دورة المواد من كاتب تقني من Google ، تعمل على توثيق Kubernetes (أندرو تشين) ، ومدير هندسة البرمجيات من SAP (Dominik Tornow). هدفهم هو شرح أساسيات Kubernetes بوضوح ووضوح. آخر مرة قمنا بترجمة مقال عن التوفر العالي ، والآن سنتحدث عن مثل هذا المفهوم الأساسي في Kubernetes مثل pod.
Kubernetes هو محرك تنسيق للحاوية مصمم لتشغيل التطبيقات المعبأة في حاويات متعددة ، ويشار إليها عادةً باسم الكتلة. في هذه المنشورات ، نستخدم نهج نمذجة النظم لتحسين فهم Kubernetes ومفاهيمها الأساسية. يتم تشجيع القراء على أن يكون لديهم بالفعل فهم أساسي لـ Kubernetes.
الحاضنات هي لبنات البناء الأساسية لـ Kubernetes ، ولكن حتى مستخدمي Kubernetes ذوي الخبرة لا يمكنهم دائمًا تفسير ما هو عليه.
يقدم هذا المنشور نموذجًا فكريًا موجزًا يلقي الضوء على الخصائص المميزة لقرون Kubernetes. من أجل هذا الإيجاز ، اضطررت إلى حذف بعض الميزات الأخرى من 
Pods ، مثل 
تحقيقات الحيوية والاستعداد ، ومشاركة الموارد 
(بما في ذلك مشاركة مساحة الاسم التي ظهرت مؤخرًا - الترجمة تقريبًا ) ، والعمل مع الشبكة. 
التعريف
جراب هو طلب لتشغيل حاوية واحدة أو أكثر على عقدة واحدة.
يتم تحديد جراب من خلال تقديم طلب 
لتنفيذ حاوية واحدة أو أكثر على عقدة واحدة ، وتشترك هذه الحاويات في الوصول إلى الموارد مثل وحدات التخزين ومكدس الشبكة.
ومع ذلك ، في الحياة اليومية ، يمكن استخدام مصطلح "جراب" بمعنى هذا 
الطلب وبمعنى 
جمع الحاويات التي يتم تشغيلها استجابة للطلب. لذلك ، في المنشور ، سنستخدم كلمة "pod" عندما نتحدث عن الطلب ، وبالنسبة للحالة الثانية - استخدم تعبير "مجموعة الحاويات".
تعتبر Pods لبنات البناء الأساسية لـ Kubernetes لأنه يمكن التعبير عن جميع أعباء العمل في Kubernetes - على سبيل المثال ، عمليات 
النشر و 
ReplicaSets و 
Jobs - على شكل قرون.
Pod هو الكائن 
الوحيد في Kubernetes الذي يتسبب في تشغيل الحاويات. 
لا جراب - لا حاوية! المخطط 1. النشر ، مجموعة النسخ المتماثل ، والجراب والحاويات
المخطط 1. النشر ، مجموعة النسخ المتماثل ، والجراب والحاوياتالعمارة Kubernetes
 مخطط 2. القرون ، المجدول و Kubelet
مخطط 2. القرون ، المجدول و Kubeletفي هذا الرسم التوضيحي ، يتم تمييز الكائنات والمكونات المقابلة. يتم تمثيل 
Pods ككائنات Pod Kubernetes ، والعمل معهم:
كائنات Kubernetes
 الشكل 3. كائنات Kubernetes
الشكل 3. كائنات Kubernetesيوضح هذا الرسم التوضيحي كائنات Kubernetes المسؤولة عن العمل مع الجراب:
- كائن الجراب الفعلي (كائن Pod) ؛
- كائن ملزم
- كائن العقدة
يعين 
Pod Object مجموعة الحاويات التي سيتم إطلاقها ، 
وسياسة إعادة التشغيل المطلوبة في حالة تعطل الحاوية ، كما تراقب حالة الإطلاق.
يربط 
كائن الربط 
كائن Pod بكائن العقدة ، أي يعين جراب للمضيف لإطلاقه في وقت لاحق.
يمثل 
كائن العقدة عقدة في كتلة Kubernetes.
تجهيز قرنة
 مخطط 4. معالجة pod'a
مخطط 4. معالجة pod'aعندما يتم إنشاء جراب من قبل مستخدم أو وحدة تحكم مثل 
ReplicaSet Controller أو 
Job Controller ، يعالج Kubernetes الجراب في خطوتين:
- المجدول يخطط لجراب ،
- Kubelet تطلق جراب.
تخطيط القرنة
 الشكل 5 الشكل 5. دورة التحكم في جدولة Kubernetes
الشكل 5 الشكل 5. دورة التحكم في جدولة Kubernetesتتمثل مهمة 
المجدول في Kubernetes في جدولة جراب ، أي تعيينه عقدة مناسبة في مجموعة Kubernetes للإطلاق اللاحق.
 إقران كائن جراب بكائن عقدة
إقران كائن جراب بكائن عقدةيتم تعيين جراب للعقدة (أو 
يرتبط بها) إذا وفقط إذا كان هناك كائن ربط يحتوي على:
- مساحة الاسم تساوي مساحة اسم الجراب ،
- الاسم يساوي اسم الجراب ،
- نوع الهدف يساوي Node،
- اسم الهدف يساوي اسم العقدة.
(يمكن لعشاق المغامرات إلقاء نظرة على GitHub من Kelsey Hightower's بعنوان " 
Creating and Scheduling a Pod Manually " 
، وهو دليل خطوة بخطوة حول كيفية إنشاء كائن ملزم يدويًا.)
إطلاق جراب
 الشكل 6. دورة التحكم Kubelet
الشكل 6. دورة التحكم Kubeletتتمثل مهمة Kubelet في إطلاق جراب ، مما يعني بشكل أساسي إطلاق مجموعة من حاويات جراب. يحدث إطلاق جراب Kubelet على مرحلتين: التهيئة والمرحلة الرئيسية.
كقاعدة ، تقوم مجموعة من الحاويات أثناء مرحلة التهيئة بتنفيذ الأعمال التحضيرية ، مثل إعداد الدليل الضروري وهيكل الملف. ومجموعة الحاويات في المرحلة الرئيسية تؤدي بالفعل المهام "الأكثر أهمية".
في الحياة اليومية ، على الرغم من أن هذا ليس صحيحًا تمامًا ، غالبًا ما يعني مصطلح "جراب" مجموعة من الحاويات في المرحلة الرئيسية أو حتى معنى أضيق للحاوية "الأكثر أهمية" في المرحلة الرئيسية.
 مخطط 7.1. بدء جراب ، مرحلة التهيئة (init) والمرحلة الرئيسية (main)
مخطط 7.1. بدء جراب ، مرحلة التهيئة (init) والمرحلة الرئيسية (main)أثناء التهيئة ، يبدأ Kubelet بالتتابع تشغيل الحاويات وفقًا لمواصفات 
.Spec.InitContainers بالترتيب المحدد في القائمة. لإطلاق pod بنجاح وأخذ سياسة إعادة التشغيل في الاعتبار ، يجب أن تبدأ حاويات التهيئة الخاصة بها وتكتمل بنجاح.
خلال المرحلة الرئيسية ، تطلق Kubelet في وقت واحد حاويات وفقًا لمواصفات 
.Spec.Containers . هنا ، من أجل الإطلاق الناجح للجراب ، ومع مراعاة سياسة إعادة التشغيل ، يجب بدء تشغيل حاوياته الرئيسية وإكمالها بنجاح أو العمل لفترة غير محدودة.
 مخطط 7.2. تشغيل جراب ، تفاصيل هذه العملية
مخطط 7.2. تشغيل جراب ، تفاصيل هذه العمليةفي حالة فشل الحاوية ، عندما تتوقف الحاوية عن العمل 
برمز خروج غير صفري (0) ، يمكن لـ Kubelet إعادة تشغيل الحاوية وفقًا لسياسة إعادة تشغيل اللوحة. تحتوي هذه السياسة على أحد المعاني التالية: 
Always ، 
OnFailure ، 
Never .
تحتوي سياسة إعادة تشغيل pod على دلالات مختلفة لحاويات التهيئة والحاويات الرئيسية: إذا كان إطلاق حاويات التهيئة يجب أن يؤدي إلى الاكتمال ، فقد لا تنتهي الحاويات الرئيسية.
 إعادة تشغيل السياسة لحاوية التهيئة
إعادة تشغيل السياسة لحاوية التهيئةسيتم إعادة تشغيل الحاوية الأولية (أي أنها ستستلزم إطلاق حاوية جديدة بنفس المواصفات) عند الانتهاء من عملها فقط إذا تم استيفاء الشروط التالية:
- يشير رمز خروج الحاوية إلى خطأ و
- سياسة إعادة تشغيل OnFailureهيAlwaysأوOnFailure.
 إعادة تشغيل السياسة للحاوية الرئيسية
إعادة تشغيل السياسة للحاوية الرئيسيةسيتم إعادة تشغيل الحاوية الرئيسية (أي تستلزم إطلاق حاوية جديدة بنفس المواصفات) عند الانتهاء من عملها فقط إذا تم استيفاء الشروط التالية:
- تعريف سياسة إعادة التشغيل على أنها Alwaysأو
- يتم تعريف سياسة إعادة التشغيل على أنها OnFailureويبلغ رمز خروج الحاوية عن خطأ.
 الشكل 8: مثال على مخطط زمني بنقطة حمراء ، يرمز إلى فشل الحاوية
الشكل 8: مثال على مخطط زمني بنقطة حمراء ، يرمز إلى فشل الحاويةيوضح الرسم التوضيحي جدولاً زمنيًا محتملًا لإطلاق الجراب مع اثنين من المواصفات لحاويات التهيئة ومواصفات للحاويات الرئيسية. كما يوضح إنشاء 
الحاوية الرئيسية 1.2 الجديدة (وفقًا لسياسة إعادة التشغيل) بعد حدوث مشكلة في إطلاق 
الحاوية الرئيسية 1.1 .
مراحل قرنة
 رسم بياني 9. تفاعل Kubelet مع جسم الجراب ووقت تشغيل الحاوية (وقت تشغيل الحاوية)
رسم بياني 9. تفاعل Kubelet مع جسم الجراب ووقت تشغيل الحاوية (وقت تشغيل الحاوية)يتلقى Kubelet مواصفات جراب من 
.Spec.InitContainers و 
.Spec.Containers ، ويطلق مجموعة الحاويات المحددة ، ويحدّث قيم 
.Status.InitContainerStatuses و 
.Status.ContainerStatuses .
Kubelet ينهار 
.Status.InitContainerStatuses و 
.Status.ContainerStatuses في قيمة واحدة - 
.Status.Phase .
طور الجراب هو إسقاط حالة الحاويات من مجموعة حاويات ، يعتمد على:
- الدول ورموز الخروج من حاويات التهيئة ،
- الدول ورموز الخروج من الحاويات الرئيسية.
 مخطط 10. مراحل جراب
مخطط 10. مراحل جرابمعلق
 المرحلة المعلقة
المرحلة المعلقةجراب في مرحلة الانتظار فقط إذا:
- لا يوجد أي من حاويات pod init في حالة Terminatedمع وجود خطأ (Failure) ؛
- جميع حاويات الجراب الرئيسية في حالة Waiting.
الجري
 مرحلة الجري
مرحلة الجريجراب في مرحلة العمل فقط إذا:
- جميع حاويات pod init في الحالة Terminatedبنجاح ؛
- حاوية جراب رئيسية واحدة على الأقل في حالة Running؛
- لا توجد أي من حاويات الجراب الرئيسية في حالة TerminatedمعFailure.
النجاح
 مرحلة النجاح
مرحلة النجاحجراب في مرحلة النجاح فقط إذا:
- جميع حاويات pod init في الحالة Terminatedبنجاح ؛
- جميع حاويات الجراب الرئيسية في حالة Terminatedبنجاح.
الفشل
 مرحلة الفشل
مرحلة الفشلجراب في مرحلة الفشل فقط إذا:
- جميع حاويات الجراب في حالة Terminated؛
- واحدة على الأقل من حاويات جراب في حالة Terminatedمع وجود خطأ (Failure).
غير معروف
بالإضافة إلى المراحل الموصوفة أعلاه ، قد يكون الجراب في مرحلة غير معروفة ، مما يشير إلى استحالة تحديد مرحلته الحالية.
جمع القمامة من القرون
 رسم بياني 11. دورة التحكم في جامع القمامة
رسم بياني 11. دورة التحكم في جامع القمامةبعد تخطيط وبدء تشغيل وحدة التحكم ، تتولى وحدة تحكم خاصة في Kubernetes - وحدة التحكم في 
Garbage Collector Controller - مسؤولية إزالة كائنات Pod من 
مخزن كائنات Kubernetes .
الخلاصة
Pod هي لبنة البناء الأساسية لـ Kubernetes: يتم تعريف pod على أنه تمثيل طلب لإطلاق حاوية واحدة أو أكثر على عقدة واحدة. بعد إنشاء البودرة ، تقوم Kubernetes بمعالجتها على مرحلتين: الأولى ، يقوم 
المجدول بجدولة البود ، ثم يقوم Kubelet بتشغيله. طوال فترة حياته ، يمر الجراب بمراحل مختلفة ، ويبلغ عن الحالة - أو ، بشكل أدق ، حالة مجموعة حاوياته - إلى المستخدم والنظام.
ملاحظة من المترجم
اقرأ أيضا في مدونتنا: