
النهارده هنتكلم عن أهم مكونات Kubernetes وهو نظام مفتوح المصدر لإدارة ونشر وتشغيل التطبيقات داخل حاويات (Containers) بشكل آلي وفعّال.
يعتبر K8s أشهر ال Orchestrators حاليًا وبتظهر أهميته في الشركات الكبيرة وبيئات ال Microservices
المعقدة لأنه يقدر يدير ويسهل عملية نشر التطبيقات بطريقة منظمة وقابلة للتوسع. هنتكلم بشكل مختصر عن أهم المكونات وإزاي بتتواصل مع بعضها البعض.
أهم مكونات Kubernetes الأساسية
1- Container: هي حاوية تحمل بداخلها التطبيق مع بيئة كاملة تشمل كل ما يحتاجه من اعتماديات ليعمل.
2- Pod: أصغر وحدة Deployable في K8s ، تحتوي على حاوية واحدة أو أكثر تُدار معًا وتشارك نفس الـ IP والـ Volume.
3- Node: خادم (فعلي أو افتراضي) يعمل عليه K8s
ويشغّل الـ Pods
. وتسمي ال Node
ب Worker Node
عندما تقوم بتشغيل ال(Pods) التي تم جدولة تشغيلها من قبل الـ Master.
4- Cluster: يُسمي النظام الذي يديره K8S
بال Cluster
ويتكون من مجموعة من الـ Nodes
تُدار كوحدة واحدة لتشغيل التطبيقات.
5- Control Plane: أو تسمى بال Master Node
وهي المسؤولة عن إدارة الـ Cluster
بأكمله عن طريق عدة مكونات.
6- Kubelet: هو Agent
يعمل على كل Node
. وظيفته هي التأكد من أن الحاويات تعمل كما هو متوقع في الPod, بيعمل دا في عدة خطوات زي التواصل مع ال Control Panel
وكذلك مع الـ Container runtime
وتجميع تقارير عن حالة ال Containers
وإرسالها لـ Control Panel
.
7- Kube-proxy: المكون المسؤول عن إدارة الشبكة وتوجيه ال traffic
لل worker node
وال Service الصحيحة.
8- API Server: هو العنصر الرئيسي في الـ Control Plane
، ويُعتبر البوابة (Gateway)
التي يتفاعل من خلالها كل شيء داخل أو خارج الـ cluster
مع k8s
.
9- Controller manager: هو المسؤول عن إدارة الحالة داخل الـ cluster
والتأكد من أن كل شيء يعمل كما هو “مطلوب” (وفقًا لتعريفك في ملفات YAML
مثل Deployments
، ReplicaSets
، إلخ).
10- Scheduler: مكون من مكونات الـ Control Plane
بيحدد أين يجب تشغيل الـ Pods
, فوقت ما تطلب إنشاء Pod
جديد بيقوم ال Scheduler
باختيار الـ Node
المناسبة من حيث الموارد وال Constraints
لإنشاء الPod.
11- ETCD: هي قاعدة البيانات الأساسية والمركزية التي يستخدمها k8s
لتخزين الحالة الكاملة لـ cluster
. وهي بالأساس Key-value Store
لضمان البساطة والسرعة في تخزين واسترجاع بيانات الـ cluster وبتعتبر هي ال Source of truth لباقي ال Cluster
.
12- Service: هي كيان بيوفّر نقطة وصول ثابتة وثابتة الاسم (Stable Endpoint) لمجموعة من الـ Pods
، حتى لو تغيّرت أو أُعيد تشغيلها.لأن ال Pods
لما يعاد تشغيلها ممكن ال IP
الخاص بيها يتغير ووقتها أنت كمستخدم هتحتاج تغير طريقة تواصلك معها وعشان نتجنب دا بنقدم ال Service
فتفضل طريقة التواصل للتطبيق أو الخدمة ثابتة بغض النظر عن تفاصيل التشغيل.
13- Kubectl: ال Command line interface الأساسية للتفاعل مع Kubernetes
14- ConfigMaps: تُستخدم لتخزين الإعدادات غير السرية للتطبيقات.
15- Secrets: تُستخدم لتخزين معلومات حساسة (مثل كلمات المرور ، مفاتيح API
).
16- Ingress: هو عبارة عن Smart gateway
تُستخدم لتوجيه الزيارات الخارجية (HTTP/HTTPS)
القادمة من الإنترنت إلى داخل ال Cluster
وتحديدًا إلى الـ Services وال Pods
المناسبة.
في الختام
ال Cheatsheet إن شاء الله تساعدكم في المذاكرة أو وقت الشغل لو نسينا تعريف/استخدام مٌكون وحابين نفتكره بسرعة.