المختبر 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
أسئلة للتفكير
- لماذا لا يقوم ReplicaSet بتحديث الـ Pods الحالية؟
- كيف يحافظ ReplicaSet على عدد النسخ؟
- ما الفرق بين ReplicaSet و Deployment؟
الخطوات التالية
المختبر 3.3: Deployments والتحديثات المتدرجة
الفصل 3.6: Deployments
تم إنشاء المختبر في: ديسمبر 2024