تخطَّ إلى المحتوى

kubectl apply

تطبيق ملف تعريف Kubernetes kubectl apply

kubectl apply ينشئ أو يحدّث موارد Kubernetes (Deployment، Service...) لتطابق ملف YAML المُعطى، بدل الأوامر الحتمية (imperative) خطوة بخطوة.

kubectl apply -f يقرأ ملف YAML ويقارنه بالحالة الحالية في الـ cluster، ثم يطبّق فقط الفروقات اللازمة لتصبح الحالة الفعلية مطابقة لما هو موصوف في الملف — سواء كان المورد غير موجود أصلاً (يُنشأ) أو موجوداً بإعدادات مختلفة (يُحدَّث). هذا النهج التصريحي (declarative) هو الأسلوب الموصى به في CI/CD بدل أوامر حتمية مثل kubectl create أو kubectl edit، لأنه يمكن تكراره بأمان (idempotent) وتتبعه بـ Git.

يقبل ملفاً واحداً أو مجلداً كاملاً من ملفات YAML بـ -f ./dir، ويُستخدم غالباً كخطوة نشر أخيرة في pipeline بعد بناء الصورة ودفعها لسجل الحاويات.

الصياغة

kubectl apply -f <ملف.yaml>
kubectl apply -f <مجلد>/

📄 مثال

kubectl apply -f deployment.yaml
kubectl apply -f service.yaml

# أو كل ملفات مجلد واحد:
kubectl apply -f k8s/

أهم النقاط

العنصرالوظيفة
-fمسار ملف YAML واحد أو مجلد يحتوي عدة ملفات
السلوك التصريحييطبّق فقط الفروقات بين الملف والحالة الحالية، لا يعيد إنشاء كل شيء من الصفر
--dry-run=clientيعرض ما سيتغير دون تطبيقه فعلياً — مفيد للتحقق داخل CI قبل النشر الفعلي

💡 نصائح عملية

  • استخدم apply لا create في CI/CD — create يفشل إذا كان المورد موجوداً أصلاً، بينما apply يحدّثه بأمان
  • اربط kubectl rollout status مباشرة بعد apply في خطوة الـ CI لضمان انتظار اكتمال النشر قبل اعتباره ناجحاً

⚠️ أخطاء شائعة

  • تعديل موارد الـ cluster يدوياً بـ kubectl edit ثم تشغيل apply لاحقاً — الفروقات اليدوية تُستبدل بصمت بما هو في الملف
  • نسيان تتبع ملفات YAML في Git، فيصبح النشر غير قابل لإعادة الإنتاج أو المراجعة

خصائص ذات صلة

🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار DEVOPS الكامل بالعربي.

📚 للتعمق التقني الكامل بالإنجليزية: MDN Web Docs