HomeAboutSkillsCertificatesProjectsBlogContact

June 28, 2026

أهم أوامر kubectl وفهم الـ Behavior الداخلي لكل أمر 🚀

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

Kubectl Commands

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