k9s: إدارة Kubernetes من الترمنال من غير أوامر طويلة

k9s واجهة ترمنال لـ Kubernetes بتختصر لفة get و describe و logs في شاشة واحدة. إزاي تسطبه، أهم الأوامر، وليه تبدأ بالـ readonly mode.

لو شغال على Kubernetes، أكيد عارف اللفة دي: kubectl get pods -n ...، تلاقي pod واقع، فتكتب describe، وبعدها logs، وبعدها ترجع تعمل get تاني تشوف اتصلح ولا لأ. k9s معمول عشان يختصر اللفة دي كلها في شاشة ترمنال واحدة.

يعني إيه k9s؟

k9s واجهة ترمنال (TUI) لـ Kubernetes. حسب الـ README بتاعه على GitHub، هو بيراقب الكلاستر باستمرار ويخليك تتنقل بين الـ resources وتتعامل معاها من غير ما تكتب أوامر kubectl طويلة كل شوية.

  • الرخصة: Apache-2.0
  • آخر release: v0.51.0 (صدر في 6 يونيو 2026)
  • الريبو: derailed/k9s على GitHub، شغال ومش archived

التسطيب

على macOS بـ Homebrew:

brew install derailed/k9s/k9s

وعلى Windows بـ winget:

winget install k9s

الـ README فيه طرق تانية كتير للتسطيب على Linux وغيره، ارجعله لو بيئتك مختلفة.

ابدأ بأمان: الـ readonly mode

أول حاجة أنصحك بيها، خصوصًا لو هتفتحه على كلاستر production:

k9s -n my-namespace --readonly
  • -n بيفتحك على namespace معين على طول
  • --readonly بيقفل كل الأوامر اللي بتعدّل في الكلاستر، فتقدر تتفرج وتعمل debugging من غير خوف إنك تمسح حاجة بالغلط
  • وفيه كمان --context لو عندك أكتر من كلاستر وعايز تختار واحد بعينه

الأوامر اللي هتستخدمها أول يوم

الأوامر في k9s بتبدأ بـ : زي vim:

  1. :pod أو :svc أو أي resource تانية تفتح القايمة بتاعتها، و :pod ns-x تفتحها على namespace معين
  2. :ns تبدّل الـ namespace، و :ctx تبدّل الـ context
  3. / للفلترة بـ regex، و /-l للفلترة بالـ labels، و /-f للـ fuzzy search
  4. :xray بيوريك العلاقات بين الـ resources (مثلًا deployment ومعاه الـ pods بتاعته)
  5. :pulses نظرة عامة سريعة على صحة الكلاستر
  6. ? بيعرض كل الاختصارات المتاحة في الشاشة اللي انت فيها

خلي بالك من اختصارين

  • ctrl-d بيمسح الـ resource، بس بعد ما يطلب منك تأكيد
  • ctrl-k بيعمل kill للـ resource من غير أي تأكيد، والـ README بيقول إنه زي kubectl delete --now

عشان كده الـ --readonly مش رفاهية لما تكون على production.

رأيي

k9s مش بديل إنك تفهم kubectl وتعرف إيه اللي بيحصل تحت. بس وقت الـ debugging، لما تبقى بتطارد pod بيعمل restart، هيوفّر عليك وقت كبير جدًا. نصيحتي العملية: اعمل alias بـ --readonly لأي context حساس، وخلّي الـ write mode للبيئات اللي انت متأكد منها.

وانت، بتستخدم k9s ولا Lens ولا kubectl بس؟

المصادر

  • Kubernetes
  • DevOps
  • CLI
  • k9s
  • Tools