انتقل إلى المحتوى الرئيسي

المختبر 3.2 - النشر باستخدام ReplicaSets

الأهداف​

في نهاية هذا المختبر، ستكون قادرًا على:

  • إنشاء وإدارة ReplicaSets
  • فهم الشفاء الذاتي
  • توسيع ReplicaSets
  • مراقبة سلوك ReplicaSets

التمرين 1: إنشاء ReplicaSet​

الخطوة 1: إنشاء ملف YAML​

قم بإنشاء replicaset.yaml:

apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: web-replicaset
labels:
app: web
spec:
replicas: 3
selector:
matchLabels:
app: web
template:
metadata:
labels:
app: web
spec:
containers:
- name: nginx
image: nginx:1.20
ports:
- containerPort: 80

الخطوة 2: التطبيق​

kubectl apply -f replicaset.yaml

الخطوة 3: التحقق​

# عرض ReplicaSet
kubectl get replicaset

# عرض الـ Pods التي تم إنشاؤها
kubectl get pods -l app=web

التمرين 2: الشفاء الذاتي​

الخطوة 1: حذف Pod​

# حذف Pod
kubectl delete pod <pod-name>

# المراقبة الفورية
kubectl get pods -l app=web -w

سؤال: ماذا يحدث؟ يتم إنشاء Pod جديد تلقائيًا.

الخطوة 2: التحقق من ReplicaSet​

kubectl describe replicaset web-replicaset

التمرين 3: التوسيع​

الخطوة 1: زيادة النسخ​

# التوسيع إلى 5 نسخ
kubectl scale replicaset web-replicaset --replicas=5

# التحقق
kubectl get pods -l app=web

الخطوة 2: تقليل النسخ​

# التوسيع إلى 2 نسخ
kubectl scale replicaset web-replicaset --replicas=2

# مراقبة الحذف
kubectl get pods -l app=web -w

التمرين 4: تعديل القالب​

الخطوة 1: تحرير ReplicaSet​

kubectl edit replicaset web-replicaset

قم بتغيير الصورة من nginx:1.20 إلى nginx:1.21.

سؤال: ماذا يحدث؟ الـ Pods الحالية لا تتغير. لماذا؟

الخطوة 2: حذف الـ Pods​

# حذف جميع الـ Pods
kubectl delete pods -l app=web

# مراقبة إعادة الإنشاء
kubectl get pods -l app=web

الـ Pods الجديدة تستخدم الصورة الجديدة.


التنظيف​

kubectl delete replicaset web-replicaset

أسئلة للتفكير​

  1. لماذا لا يقوم ReplicaSet بتحديث الـ Pods الحالية؟
  2. كيف يحافظ ReplicaSet على عدد النسخ؟
  3. ما الفرق بين ReplicaSet و Deployment؟

الخطوات التالية​

المختبر 3.3: Deployments والتحديثات المتدرجة
الفصل 3.6: Deployments


تم إنشاء المختبر في: ديسمبر 2024