الفصل 3.1 - مقدمة إلى الـ Pods
أهداف التعلم
في نهاية هذا الفصل، ستكون قادرًا على:
- فهم ما هو الـ Pod
- شرح لماذا توجد الـ Pods
- التمييز بين الـ Pods والحاويات
- فهم حالات استخدام الـ Pods متعددة الحاويات
ما هو الـ Pod؟
الـ Pod هو أصغر وحدة قابلة للنشر في Kubernetes. وهو عبارة عن مجموعة من حاوية أو أكثر تشترك في:
- نفس عنوان IP
- نفس مساحة الأسماء للشبكة
- نفس الأحجام (التخزين)
- نفس مساحة الأسماء IPC
لماذا الـ Pods؟
تجريد فوق الحاويات
Kubernetes لا يدير الحاويات مباشرة، بل الـ Pods:
المزايا:
- إدارة مجموعات الحاويات
- مشاركة الموارد
- اتساق الشبكة
الـ Pods ذات الحاوية الواحدة
معظم الـ Pods تحتوي على حاوية واحدة:
apiVersion: v1
kind: Pod
metadata:
name: nginx-pod
spec:
containers:
- name: nginx
image: nginx:1.20
الـ Pods متعددة الحاويات
يمكن أن يحتوي الـ Pod على عدة حاويات تعمل معًا:
حالة استخدام: نمط Sidecar
apiVersion: v1
kind: Pod
metadata:
name: app-with-logger
spec:
containers:
- name: app
image: my-app:1.0
- name: logger
image: fluentd:latest
أمثلة على الـ sidecars:
- تسجيل (Fluentd, Logstash)
- مراقبة (Prometheus exporter)
- وكيل (Envoy, nginx)
- مزامنة الملفات
الاتصال بين الحاويات في الـ Pod
تتواصل الحاويات في الـ Pod عبر localhost:
مثال:
# في الحاوية 1
curl http://localhost:8080 # يتواصل مع الحاوية 2
الأحجام المشتركة
تشارك الحاويات في الـ Pod الأحجام:
apiVersion: v1
kind: Pod
metadata:
name: shared-volume-pod
spec:
containers:
- name: writer
image: busybox
volumeMounts:
- name: shared-data
mountPath: /data
- name: reader
image: busybox
volumeMounts:
- name: shared-data
mountPath: /data
volumes:
- name: shared-data
emptyDir: {}
ملخص
في هذا الفصل، تعلمت:
Pod: أصغر وحدة قابلة للنشر، مجموعة من الحاويات
الموارد المشتركة: IP، الشبكة، الأحجام، IPC
Pods ذات الحاوية الواحدة: الحالة الأكثر شيوعًا
Pods متعددة الحاويات: للـ sidecars والحاويات التعاونية
الاتصال: عبر localhost بين حاويات نفس الـ Pod
الخطوات التالية
الآن بعد أن فهمت الـ Pods:
الفصل 3.2: إعلان YAML للـ Pods
مختبر 3.1: إنشاء وإدارة الـ Pods
تم إنشاء الفصل في: ديسمبر 2024