المشروع projet10-kubernetes-deploiements · عندما يعرض Docker Desktop « Create Kubernetes Cluster »، يقترح نوعين من العناقيد: kind أو Kubeadm. يشرح هذا المستند الفرق وأيهما تختار لهذه الدورة.
| المعيار | Kubeadm | kind |
|---|---|---|
| المعنى | أداة رسمية لإقلاع عنقود | Kubernetes in Docker |
| عدد العقد | واحدة (single-node) | 1 إلى 10 (متعدد العقد ممكن) |
| أين تعمل العقد | مباشرة في آلة Docker Desktop الافتراضية | كل عقدة = حاوية Docker |
| تخزين الصور | مشترك مع محرك Docker | معزول (containerd خاص بـ kind) |
صورة محلية (docker build) | ظاهرة فوراً (imagePullPolicy: IfNotPresent) | غير ظاهرة ← kind load docker-image <img> إلزامي |
| محاكاة عطل عقدة | لا (عقدة واحدة) | نعم (يمكن إيقاف حاوية-عقدة) |
| السرعة / الخفة | سريع جداً في التشغيل | سريع، لكن خطوة تحميل صورة إضافية |
| مثالي لـ | تعلّم Pods / Deployments / Services بلا احتكاك | اختبار متعدد العقد والجدولة والتآلف |
| إعادة التهيئة | إعادة ضبط العنقود | تغيير عدد العقد يعيد تهيئة الكل |
يبني مشروعنا صورة محلياً:
docker build -t demo-k8s:1.0 ./appويستخدم deployment.yaml:
image: demo-k8s:1.0
imagePullPolicy: IfNotPresent # لا يحاول التنزيل من سجليشارك العنقود محرك Docker: الصورة demo-k8s:1.0 موجودة سلفاً.
docker build -t demo-k8s:1.0 ./app
kubectl apply -f k8s/وإلا تبقى الـ Pods في ErrImagePull / ImagePullBackOff (لا يجد العنقود الصورة).
docker build -t demo-k8s:1.0 ./app
kind load docker-image demo-k8s:1.0 # <-- ضروري مع kind
kubectl apply -f k8s/يُعاد في كل إعادة بناء صورة مع kind. هذا النسيان رقم 1 الذي يعلّق المبتدئين.
| هدفك | اختر |
|---|---|
| اكتشاف Pods و Deployments و Services و ConfigMap والتوسيع والتحديث التدريجي | Kubeadm ⭐ |
| إظهار عنقود متعدد العقد وتوزيع الـ Pods بين العقد | kind (عقدتان أو أكثر) |
لهذا المشروع، علّم Kubeadm ثم Create.
Kubeadm.v1.34.1) مناسبة.docker ps وتزدحم الرؤية).kubectl config use-context docker-desktop
kubectl get nodes # يجب أن يعرض عقدة Readyإن واجهت مشكلة وصول إلى الصور أو الـ Pods، انظر ملحق استكشاف الأخطاء في 02-COMMANDES.md.
دورة من إعداد د. هيثم رحومة — تطوير ونشر حلول البيانات