الوحدة 1 - مقدمة إلى Kubernetes
نظرة عامة
تقدم لك هذه الوحدة الأولى Kubernetes، وهي منصة تنظيم الحاويات الأكثر استخدامًا في العالم. ستتعرف على سبب وجود Kubernetes، وكيفية عملها على مستوى عالٍ، وما هي المفاهيم الأساسية التي ستستخدمها طوال هذه الدورة.
أهداف التعلم
في نهاية هذه الوحدة، ستكون قادرًا على:
- شرح ما هو Kubernetes ولماذا هو ضروري
- فهم تطور الحاويات نحو التنظيم
- تحديد المكونات الرئيسية لعنقود Kubernetes
- التمييز بين Control Plane و Worker Nodes
- استخدام kubectl للتفاعل مع مجموعة
- بدء مجموعة محلية للتدريب
المدة المقدرة
النظرية: 3-4 ساعات
التطبيق: 2-3 ساعات
الإجمالي: 5-7 ساعات
جدول المحتويات
الجزء 1: المقدمة والمفاهيم
- الفصل 1.1 - ما هو Kubernetes؟
- الفصل 1.2 - لماذا Kubernetes؟
- الفصل 1.3 - التاريخ والتطور
- الفصل 1.4 - البنية عالية المستوى
- الفصل 1.5 - المفاهيم الأساسية
الجزء 2: التثبيت والتطبيق
- [الفصل 1.6 - التثبيت والتكوين](./chapitre1-6-installation-kubectl)
المختبرات العملية
التحقق
ما هو Kubernetes؟
Kubernetes (غالبًا ما يُختصر بـ K8s) هي منصة مفتوحة المصدر لتنظيم الحاويات تقوم بأتمتة النشر والتوسع وإدارة تطبيقات الحاويات.
تعريف بسيط
تخيل أن لديك عدة تطبيقات (خدمات صغيرة) تحتاج إلى:
- العمل على عدة خوادم
- إعادة التشغيل تلقائيًا إذا تعطلت
- التوسع حسب الحمل
- التواصل فيما بينها بشكل موثوق
Kubernetes تقوم بكل ذلك تلقائيًا لك.
تشبيه: قائد الأوركسترا
مثلما ينسق قائد الأوركسترا الموسيقيين، ينسق Kubernetes حاوياتك لتعمل معًا بتناغم.
الخصائص الرئيسية
يوفر Kubernetes:
-
التنظيم التلقائي
- النشر وإعادة التشغيل التلقائي
- توزيع الحاويات على الآلات المتاحة
- إدارة دورة حياة التطبيقات
-
التوسع (Scaling)
- زيادة/تقليل عدد النسخ تلقائيًا
- التكيف مع عبء العمل
- تحسين استخدام الموارد
-
الشفاء الذاتي (Self-Healing)
- إعادة تشغيل الحاويات التي تتعطل تلقائيًا
- استبدال الحاويات الفاشلة
- إعادة التوزيع في حالة تعطل الآلة
-
اكتشاف الخدمات
- التواصل التلقائي بين الخدمات
- موازنة تحميل مدمجة
- إدارة DNS داخلي
-
إدارة التكوين
- تخزين مركزي للتكوين
- إدارة الأسرار بشكل آمن
- عمليات نشر إعلانية
لماذا Kubernetes؟
التحديات بدون Kubernetes
قبل Kubernetes، كان نشر تطبيقات الحاويات معقدًا:
المشاكل:
- إدارة يدوية للحاويات
- لا يوجد إعادة تشغيل تلقائي
- التوسع معقد ويدوي
- لا يوجد موازنة تحميل مدمجة
- إدارة التكوين مشتتة
- لا يوجد اكتشاف للخدمات
الفوائد مع Kubernetes
الفوائد:
- تنظيم تلقائي كامل
- شفاء ذاتي وتوافر عالي
- توسع أفقي وعمودي
- موازنة تحميل مدمجة
- اكتشاف خدمات تلقائي
- إدارة مركزية للتكوين
حالات الاستخدام النموذجية
Kubernetes مثالي لـ:
-
الخدمات الصغيرة
- تطبيقات تتكون من العديد من الخدمات الصغيرة
- التواصل بين الخدمات
- نشر مستقل لكل خدمة
-
التطبيقات السحابية الأصلية
- تطبيقات مصممة للسحابة
- توسع تلقائي
- مرونة وشفاء ذاتي
-
DevOps و CI/CD
- عمليات نشر تلقائية
- تراجع سهل في حالة حدوث مشكلة
- بيئات متعددة (تطوير، اختبار، إنتاج)
-
السحابة المتعددة والسحابة الهجينة
- نشر على عدة سحابات
- قابلية النقل بين البيئات
- تجنب الاعتماد على بائع واحد
التاريخ والتطور
تطور الحاويات
Google و Borg
تم إنشاء Kubernetes بواسطة Google، التي كانت تستخدم داخليًا نظامًا يسمى Borg لتنظيم ملايين الحاويات.
Borg (2003-2015):
- نظام مملوك لشركة Google
- أدار مئات الآلاف من الوظائف
- أساس الخبرة لـ Kubernetes
Kubernetes (2014):
- نسخة مفتوحة المصدر مستوحاة من Borg
- سميت على الكلمة اليونانية "κυβερνήτης" (قائد، دفة)
- K8s = K + 8 أحرف + s
التبني والنمو
الأرقام الرئيسية:
- مستخدم من قبل ملايين المنظمات
- أكثر من 100,000 التزام على GitHub
- أكثر من 3,000 مساهم
- معتمد من قبل جميع الشركات التقنية الكبرى
البنية عالية المستوى
نظرة عامة على مجموعة
تتكون عنقود Kubernetes من نوعين من الآلات:
Control Plane (Master)
Control Plane هو "العقل" للعنقود. يتخذ جميع القرارات ويدير حالة العنقود.
مكونات Control Plane:
-
API Server
- نقطة الدخول الوحيدة لجميع التفاعلات
- يتحقق من صحة ويعالج الطلبات
- يعرض API REST Kubernetes
-
etcd
- قاعدة بيانات موزعة
- تخزن حالة العنقود
- مصدر الحقيقة الوحيد
-
Controller Manager
- ينفذ حلقات التحكم
- يراقب الحالة المرغوبة مقابل الحالة الفعلية
- يتخذ إجراءات تصحيحية
-
Scheduler
- يقرر على أي عقدة وضع الحاويات الجديدة
- يأخذ في الاعتبار الموارد والقيود
- يحسن التوزيع
Worker Nodes
تشغل Worker Nodes التطبيقات. تحتوي كل عقدة على:
مكونات Worker Nodes:
-
kubelet
- وكيل يتواصل مع API Server
- يدير الحاويات على العقدة
- يراقب صحة الحاويات
-
kube-proxy
- يدير الشبكات على مستوى العقدة
- ينفذ الخدمات (موازنة التحميل)
- يدير قواعد الشبكة
-
Container Runtime
- يشغل الحاويات (Docker، containerd، CRI-O)
- يدير الصور والحاويات
- واجهة موحدة (CRI)
المفاهيم الأساسية
Pods
الـ Pod هو أصغر وحدة قابلة للنشر في Kubernetes. إنه مجموعة من حاوية واحدة أو أكثر تشترك في الموارد.
الخصائص:
- Pod = حاوية واحدة أو أكثر
- الحاويات في Pod تشترك في:
- عنوان IP
- الأحجام
- مساحة الأسماء الشبكية
- الـ Pods مؤقتة (يمكن إعادة إنشائها)
عمليات النشر (Deployments)
يصف الـ Deployment الحالة المرغوبة لتطبيقك (عدد النسخ، أي صورة، إلخ).
الميزات:
- إدارة النسخ (عدد النسخ)
- التحديثات المتدحرجة (التحديثات بدون انقطاع)
- التراجع في حالة حدوث مشكلة
- الشفاء الذاتي
الخدمات (Services)
تقوم الـ Service بتعريض مجموعة من الـ Pods كخدمة شبكة مستقرة.
أنواع الخدمات:
- ClusterIP: خدمة داخلية للعنقود
- NodePort: تعرض على منفذ لكل عقدة
- LoadBalancer: تعرض عبر موازن تحميل سحابي
- ExternalName: اسم مستعار لخدمة خارجية
الأسماء (Namespaces)
تسمح الـ Namespaces بتقسيم مجموعة إلى عدة بيئات افتراضية.
الفوائد:
- العزل المنطقي
- فصل البيئات
- إدارة حصص الموارد
- التحكم في الوصول (RBAC)
نظام Kubernetes البيئي
Kubernetes ليس وحده. إنه جزء من نظام بيئي غني بالأدوات والمشاريع.
مشاريع CNCF
تستضيف Cloud Native Computing Foundation (CNCF) العديد من المشاريع المتعلقة بـ Kubernetes:
- Kubernetes: التنظيم
- Prometheus: المراقبة
- Helm: إدارة الحزم
- Istio: شبكة الخدمات
- Fluentd: تسجيل الأحداث
- etcd: تخزين موزع
- والعديد غيرها...
ملخص الوحدة
في هذه الوحدة، تعلمت:
Kubernetes هي منصة تنظيم الحاويات
تقوم بأتمتة النشر والتوسع وإدارة التطبيقات
تتكون المجموعة من Control Plane و Worker Nodes
الـ Pods هي أصغر وحدة قابلة للنشر
الـ Deployments تدير دورة حياة التطبيقات
الـ Services تعرض التطبيقات بشكل مستقر
الـ Namespaces تسمح بالعزل المنطقي
الخطوات التالية
الآن بعد أن فهمت المفاهيم الأساسية، أنت جاهز لـ:
الوحدة 2: البنية التفصيلية ومكونات Kubernetes
الوحدة 3: الـ Pods وعمليات النشر في الممارسة
الموارد الإضافية
تم إنشاء الوحدة في: ديسمبر 2024