كيف يعمل Kubernetes — من الحالة المطلوبة إلى أحمال عمل قيد التشغيل
كيف يعمل Kubernetes معروضاً على لوحة تفاعلية: ملفات التوصيف، ومستوى التحكم، والجدولة، وحلقة المواءمة التي تبقي أحمال العمل قيد التشغيل.
يشغّل Kubernetes التطبيقات المحزّمة في حاويات عبر مواءمة مستمرة: أنت تصرّح بالحالة المطلوبة، ويعمل مستوى التحكم والعقد العاملة على جعل العنقود مطابقاً لها.
كيف يعمل Kubernetes — من الحالة المطلوبة إلى أحمال عمل قيد التشغيل
لوحة FlowJam التفاعلية لهذا الشرح — كل مسار وصف وسهم أعلاه جزء من مخطط QueryChart حقيقي يمكنك فتحه وتعديله.
كيف تقرأ هذا الشرح المرئي
- اقرأ الأعمدة الأربعة من اليسار إلى اليمين: التصريح، ثم الجدولة، ثم التشغيل، ثم الحفاظ.
- صفوف مستوى التحكم (في الأعلى) تقرّر، وصفوف العقد العاملة (في الأسفل) تنفّذ. والأسهم من الأعلى إلى الأسفل أوامر؛ أما الحلقة الراجعة من «هل pod سليمة؟» فهي دورة المواءمة.
- الحالة المطلوبة في ملف التوصيف هي المصدر الموثوق — وكل مربع آخر موجود ليقرّب الواقع منها.
التصريح بالحالة المطلوبة
«kubectl apply لملف توصيف بالحالة المطلوبة» هو ما يبدأ به كل شيء: يصف المطوّر الهدف — «3 نسخ متماثلة من API، الصورة v2.1، المنفذ 8080» — ثم يرسله. و«خادم API يخزّن الحالة المطلوبة في etcd» هي نقطة التثبيت: فخادم API في مستوى التحكم هو الباب الأمامي، وetcd هو المصدر الموثوق للعنقود. وكل ما يأتي بعد ذلك نتيجة لهذه الكتابة الواحدة.
الجدولة
«المجدوِل يراقب ويختار العقد المناسبة لـpods» و«المجدوِل يسنِد كل pod إلى عقدة سليمة» هما مستوى التحكم وهو يختار أين يعمل الشغل. يأخذ المجدوِل موارد كل عقدة وقيودها بالحسبان، ثم يضع pod على أفضل مرشّح — فالمطوّر لا يختار الأجهزة، بل الحالة المطلوبة فقط.
التشغيل على العقد العاملة
«kubelet على العقدة يسحب الصور ويشغّل الحاويات» هو نصف الترتيب الخاص بالعقد العاملة: فـkubelet وكيل مستوى التحكم على كل عقدة، يتخاطب مع بيئة تشغيل الحاويات ليشغّل pods المسنَدة ويرفع تقارير السلامة. و«Service يوجّه حركة البيانات إلى pods العاملة» يضيف نقطة الدخول الشبكية الثابتة — فـpods تأتي وتذهب، أما اسم Service فلا يتغيّر.
الحفاظ على الحالة
«المتحكّم يوائم — يعيد تشغيل ما يفشل ويضبط عدد النسخ المتماثلة» هي حلقة التغذية الراجعة، و«هل pod سليمة؟» هو فحصها — إذ تقرّر فحوص الحياة والجاهزية ما إذا كانت pod ستُستبدل (فرع «لا» يعود إلى المواءمة) أم ستبقى. و«Deployment يبقى عند الحالة المطلوبة» هي الحالة النهائية: ليست عملاً منتهياً، بل نظاماً يعمل ويطابق ملف توصيفه.
العلاقات الرئيسية والخلاصات
- Kubernetes تصريحي: تذكر الهدف لا الخطوات، ويتولى النظام الباقي.
- مستوى التحكم يقرّر وkubelet ينفّذ — ولا يعمل شيء دون وجود الحالة المطلوبة في etcd.
- المواءمة هي الحلقة: قارن، وطبّق الفارق، ثم كرّر، بلا نهاية.
- الفحوص تقرّر السلامة، والسلامة تقرّر الاستبدال — فـpod المتعطلة يُعاد تشغيلها دون تدخل بشري.
- ينسّق Kubernetes الحاويات التي يحزمها Docker، ولهذا يتصل الشرحان المرئيان أحدهما بالآخر.
متى تستخدم هذا الشرح المرئي
- شرح الفرق بين مستوى التحكم والعقد العاملة لفريق جديد على Kubernetes.
- تعليم النموذج التصريحي قبل أن يكتب أحدهم أول ملفات توصيف Deployment وService.
- تأسيس نقاش حول المعالجة الذاتية — ما الذي يصلحه Kubernetes تلقائياً وما الذي ما زال يحتاج إلى مشغّل بشري.
كيف تعمل
علّق على ملف التوصيف الذي تشغّله فعلاً
على خطوة التطبيق، أضف ملاحظات عن Deployment وService الحقيقيين لديك — أعداد النسخ المتماثلة، والصور، والمنافذ — حتى يعكس المخطط عنقودك.
أضف طبقة الشبكة
أدرج مربع Ingress بين Service والمستخدمين، ودوّن كيف يعرض عنقودك حركة البيانات، فهذا هو الجزء الذي تخصّصه معظم الفرق أولاً.
أظهر قواعد التوسّع لديك
وسّع خطوة المواءمة بفرع Horizontal Pod Autoscaler يضبط عدد النسخ المتماثلة بحسب CPU أو مقاييس مخصّصة، وينتهي إلى حالة خاصة به.
أضف مسار الإخفاق ومسار التخزين
أدرج وحدات التخزين الدائمة لأحمال العمل ذات الحالة، وقواعد منع التجاور (anti-affinity) التي تستخدمها، مع تعليق على كل منها يشرح السبب.
الأسئلة الشائعة
ما Kubernetes بعبارة مبسّطة؟
Kubernetes نظام يشغّل التطبيقات المحزّمة في حاويات عبر عنقود من الأجهزة ويبقيها عاملة. أنت تخبره بما تريد — كم نسخة من كل تطبيق، وأي صورة، وأي منافذ — وهو يجدول العمل على الأجهزة، ويعيد تشغيل ما يفشل، ويوسّع ويقلّص، ويوجّه حركة البيانات. ويلخّص الشرح المرئي ذلك في أربعة أفعال: التصريح، ثم الجدولة، ثم التشغيل، ثم الحفاظ.
ما مستوى التحكم في Kubernetes؟
مستوى التحكم هو مجموعة المكونات التي تتخذ القرارات بشأن العنقود: خادم API الذي يستقبل ملفات التوصيف، وetcd الذي يخزّن الحالة المطلوبة، والمجدوِل الذي يضع pods، والمتحكّمات التي توائم الواقع مع الحالة المطلوبة. هو الدماغ. أما العقد العاملة فهي العضلات — إذ يعمل على كل واحدة منها kubelet يشغّل pods المسنَدة إليها ويراقبها.
ماذا يعني «التصريحي» في Kubernetes؟
يعني أنك تصف الحالة الهدف بدل إصدار أوامر للوصول إليها. تطبّق ملف توصيف يقول «شغّل ثلاث نسخ متماثلة»؛ وKubernetes يستنتج الخطوات ويظل ينفّذها كلما انحرف الواقع. وإذا ماتت pod، أنشأ المتحكّم بديلاً لها للعودة إلى ثلاث — دون أن يعيد إنسان تنفيذ أمر. فملف التوصيف هو المصدر الموثوق، والمواءمة هي الآلية.
كيف يبقي Kubernetes التطبيقات سليمة؟
عبر الفحوص وحلقة المواءمة. فحوص الحياة تخبر Kubernetes بما إذا كانت الحاوية حية — وفشلها يعيد تشغيلها. وفحوص الجاهزية تخبره بما إذا كانت pod قادرة على خدمة الطلبات — وفشلها يزيلها من Service. ويقارن المتحكّم الحالة العاملة بالحالة المطلوبة ويطبّق الفارق باستمرار، وهي الحلقة التي يمثّلها قرار «هل pod سليمة؟» في الشرح المرئي.
عدّل هذا الشرح المرئي في QueryChart (FlowJam)
افتح لوحة Kubernetes هذه نفسها كمخطط خاص بك، وأعد تسمية المكونات لتطابق عنقودك، وعلّق على أحمال عملك.