الفصل 2.4 - مدير وحدة التحكم
أهداف التعلم
في نهاية هذا الفصل، ستكون قادرًا على:
- فهم دور مدير وحدة التحكم
- شرح نمط التحكم في الحلقة
- تحديد وحدات التحكم المختلفة
- فهم كيفية الحفاظ على Kubernetes للحالة المرغوبة
ما هو مدير وحدة التحكم؟
يقوم مدير وحدة التحكم (kube-controller-manager) بتشغيل وحدات التحكم التي تراقب حالة العنقود وتتخذ إجراءات لمطابقة الحالة الفعلية مع الحالة المرغوبة.
نمط التحكم في الحلقة
تتبع وحدات التحكم نمط التحكم في الحلقة:
الخصائص:
- مراقبة مستمرة (watch)
- مقارنة الحالة الفعلية مع المرغوبة
- إجراءات تصحيحية تلقائية
- حلقة التوفيق
وحدات التحكم الرئيسية
1. وحدة تحكم النشر
يدير النشر ويحافظ على عدد النسخ:
الإجراءات:
- إنشاء ReplicaSets
- إدارة التحديثات المتدرجة
- تنفيذ التراجعات
2. وحدة تحكم ReplicaSet
يحافظ على عدد الـ Pods المرغوب:
3. وحدة تحكم العقدة
يراقب حالة العقد:
- يكتشف العقد غير المتاحة
- يضع علامة على العقد كـ NotReady
- يتجنب جدولة الـ Pods على العقد الفاشلة
4. وحدة تحكم الخدمة
يدير الخدمات ونقاط النهاية الخاصة بها:
- إنشاء/الحفاظ على نقاط النهاية
- التزامن مع موازنات التحميل السحابية
5. وحدة تحكم الوظيفة
يدير الوظائف والوظائف المجدولة:
- يراقب تنفيذ الوظائف
- يدير الوظائف المجدولة (المهام المجدولة)
مثال عملي: النشر
السيناريو الأولي
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 3
template:
spec:
containers:
- name: app
image: nginx:1.20
ما يحدث:
- يقرأ Deployment Controller النشر
- ينشئ ReplicaSet مع 3 نسخ
- يتحقق ReplicaSet Controller من وجود 3 Pods
- إذا تعطل أحد الـ Pods، ينشئ ReplicaSet Controller Pod جديد
- يقوم Scheduler بتعيين الـ Pod الجديد لعقدة
- يقوم kubelet بتشغيل الحاوية
التوفيق (Reconciliation Loop)
المفهوم
التوفيق هو العملية المستمرة لـ:
- مراقبة الحالة الحالية
- المقارنة مع الحالة المرغوبة
- اتخاذ إجراءات لتقليل الفجوة
مثال: ReplicaSet
الأداء والتحسينات
تحديد المعدل
تحد وحدات التحكم من عدد الطلبات لتجنب تحميل API Server بشكل زائد.
التراجع
في حالة حدوث خطأ، تنتظر وحدات التحكم قبل إعادة المحاولة (تراجع أسي).
العمال المتزامنون
يعالج العديد من العمال الموارد بالتوازي.
الأوامر المفيدة
# عرض سجلات Controller Manager
kubectl logs -n kube-system kube-controller-manager-<node>
# عرض الأحداث المرتبطة بالمتحكمات
kubectl get events --sort-by='.lastTimestamp'
# Vérifier l'état d'un Deployment
kubectl describe deployment <name>
الملخص
في هذا الفصل، تعلمت:
مدير وحدة التحكم: يقوم بتشغيل وحدات التحكم التي تحافظ على الحالة المرغوبة
نمط التحكم: مراقبة مستمرة، مقارنة، إجراء تصحيحي
وحدات التحكم الرئيسية: النشر، ReplicaSet، العقدة، الخدمة، الوظيفة
التوفيق: عملية مستمرة للحفاظ على الحالة المرغوبة
التعافي الذاتي: تقوم وحدات التحكم بتصحيح الفجوات تلقائيًا
الخطوات التالية
الآن بعد أن فهمت مدير وحدة التحكم:
الفصل 2.5: المجدول - جدولة الـ Pods
الفصل 2.6: kubelet - وكيل Worker Nodes
تم إنشاء الفصل في: ديسمبر 2024