June 28, 2026
أهم أوامر kubectl وفهم الـ Behavior الداخلي لكل أمر 🚀
أكتر حاجة بتضيع الوقت في الـ Kubernetes هي عدم فهم الـ Behavior الداخلي لكل أمر، في البوست ده دمجت التشبيهات البسيطة مع المفهوم التقني علشان تسهل علينا استخدامها:

kubectl run vs create
🏃♂️ run: أمر Imperative سريع لإنشاء Pods بس مفيد لاختبار الـ Images أو الـ Troubleshooting السريع.
🏗️ create: ده الـ General Builder بيستخدم لإنشاء الـ Resources زي Deployments, ConfigMaps من الـ CLI أو من ملفات YAML.
kubectl apply vs replace
🧠 apply (Declarative): ذكي وآمن بياخد الفايل يقارنه باللي شغال على الكلاستر عن طريق انه بيقرأ الـ
last-applied-configurationوبيحسب الفروق ويعدلها فقط.
🚜 replace (Imperative): ده البلدوزر بيستبدل الـ Resource بالكامل مع استخدام Flag
--forceبيمسح القديم تماماً ويعمله Recreate زي ما هو موجود في الـ YAML فايل.
kubectl explain vs help
🗺️ explain: ديه شبه الخريطة بيقرأ من الـ OpenAPI schema وبيجيبلك هيكل الـ API مثال:
kubectl explain pod.spec.containers، كأنك بتتصفح الـ Docs من الـ Terminal.
📚 help: ده كتالوج الأوامر بيشرحلك إزاي تكتب الـ Command نفسه على الـ Terminal وبيعرض الـ Syntax والـ Flags المتاحة مع أمثلة عملية جاهزة للنسخ.
kubectl edit vs patch
📝 edit: بيسحب الـ YAML من الـ API server ويفتحه في الـ Terminal Editor تعدل براحتك، ولما تعمل Save بيـ Apply لوحده.
⚡ patch: لو عايز تغير قيمة واحدة بس زي الـ Container image من غير ما تفتح ملفات، بتبعت التعديل في سطر واحد.
kubectl port-forward vs expose
🔌 port-forward: بيعمل نفق مؤقت Tunnel بين جهازك والـ Pod متخطياً شبكة الكلاستر عشان تتأكد إن الأبلكيشن شغال وأول ما تقفل الـ Terminal النفق بيقع ممتاز للـ Quick Debugging.
🌐 expose: بينشئ Service فعلية زي ClusterIP, NodePort لتوزيع الـ Traffic وتوفير Endpoint دائمة من خلال الـ kube-proxy.
kubectl logs vs exec
🪟 logs: كأنك بتبص من الشباك بيجيبلك الـ Data Stream من
stdout/stderrالخاصة بالـ Process الرئيسي (PID 1) لمعرفة سبب الـ Crash من بره.
🚪 exec: كأنك بتدخل البيت بينشئ Process جديد (زي
shأوbash) داخل الـ Namespace الخاص بالكونتينر عشان تعمل Troubleshooting داخلي.
kubectl cordon vs drain
🛑 cordon: يافطة ممنوع الدخول بيضيف Taint من نوع Unschedulable للـ Node وبيمنع نزول Pods جديدة عليها لكن القديم بيستمر في العمل عادي.
🧹 drain: الإخلاء الإداري بيعمل Cordon للـ Node الأول وبعدين بيعمل طرد/Eviction للـ Pods الحالية بأمان باحترام الـ PodDisruptionBudgets لعمل صيانة للسيرفر.
kubectl top vs describe
📉 top: الواقع اللحظي بيعرض الاستهلاك الفعلي Actual Usage للـ CPU والـ Memory في اللحظة دي ولازم يكون الـ Metrics Server شغال.
📋 describe: التقرير الشامل بيعرض حالة الـ Resource الحالية من الـ etcd بالإضافة للـ Events والموارد المحجوزة (Requests & Limits).
🏆 الـ Golden Flags
ومعاهم كمان الـ Golden Flags اللي هتنقذ وقتك في الشغل او الامتحانات:
-o yaml--dry-run=client--grace-period=0 --force-lأو--selector-Aأو--all-namespaces-wأو--watch-nأو--namespace