عن المشروع
debux هو مصحح أخطاء حاويات مفتوح المصدر مصمم لبيئات Docker و Kubernetes. يعالج مشكلة شائعة: تصحيح أخطاء الحاويات ذات الطابع الإنتاجي التي تفتقر إلى الصدفات أو مديري الحزم، مثل صور distroless و scratch والصور المصغرة. على عكس `docker exec`، الذي يتطلب أدوات وصدفة داخل الصورة المستهدفة، يبدأ debux حاوية صندوق أدوات تصحيح منفصلة تلتصق بالهدف، وتشارك مساحات الأسماء المفيدة (الشبكة، العملية)، وتكشف نظام ملفات الهدف في `$DEBUX_TARGET_ROOT` (عادةً `/proc/1/root`).
تشمل القدرات الرئيسية:
- **يعمل مع أي حاوية**: يصحح أخطاء الحاويات الجارية أو المتوقفة أو المنتهية أو التي تعيد التشغيل بشكل متكرر، بما في ذلك تلك التي تفتقر إلى الصدفات أو مديري الحزم.
- **دعم Docker و Kubernetes**: سير عمل موحد لحاويات Docker المحلية، وخدمات Docker Compose، وحاويات Podman، وحاويات Kubernetes. يدعم أيضًا تصحيح أخطاء عقد Kubernetes مع الوصول إلى مساحة اسم المضيف.
- **صندوق أدوات جاهز**: الأدوات المثبتة مسبقًا تشمل curl و wget و dig و nmap و tcpdump و strace و ltrace و gdb و htop و vim و jq و git و openssh و zsh و tmux والمزيد. يعتمد صندوق الأدوات على Wolfi ويستخدم mise لإدارة الحزم.
- **تثبيت الأدوات عند الطلب**: يقوم أمر `dctl` بتثبيت أدوات إضافية أثناء جلسة التصحيح باستخدام mise. يمكن تحميل الأدوات مسبقًا في بداية الجلسة باستخدام `--tools`.
- **صدفة مدركة للهدف**: انتقل إلى جذر الهدف، وافحص عمليات الهدف، وأعد استخدام مساحة اسم شبكة الهدف، وشغل ثنائيات الهدف الخاصة عبر chroot عندما يفتقر صندوق الأدوات إليها.
- **إعادة توجيه المنافذ ونسخ الملفات**: الوصول إلى الملفات وسحبها من أي هدف، حتى الحاويات التي بدأت بدون `-p` وحاويات distroless حيث يفشل `kubectl cp`.
- **وضع النسخ في Kubernetes**: عندما يتم حظر الحاويات المؤقتة بواسطة RBAC أو سياسة القبول، يقوم `--copy` بإنشاء نسخة مؤقتة من البود للتصحيح. يدعم جلسات النسخ طويلة الأمد مع TTL وحماية Karpenter وقدرات إعادة الالتحاق.
- **تصحيح أخطاء العقد**: يقوم `debux node` بجدولة بود صندوق أدوات بمساحة اسم المضيف على عقدة Kubernetes، مع تركيب نظام ملفات جذر العقدة ومشاركة مساحات أسماء PID والشبكة و IPC.
- **تصحيح أخطاء الصور**: تصحيح أخطاء صورة دون تشغيلها، مفيد عندما لا يمكن للصورة نفسها الإقلاع.
- **واجهة TUI**: متصفح هدف بملء الشاشة مع تنقل في سياق/مساحة اسم Kubernetes و Docker، وإعادة الالتحاق بالجلسات النشطة، والجلسات الأخيرة، ومفاتيح الخيارات.
- **إكمال الصدفة**: الإكمالات المولدة تشمل أهداف Docker و Kubernetes الحية مع مطابقة السلاسل الفرعية.
يتم توزيع الأداة كملف ثنائي واحد مع سكربت تثبيت يدعم Linux و macOS على amd64/arm64. يتم التحقق من أصول الإصدار عبر المجاميع الاختبارية، مع دعم التحقق من التوقيع الاختياري عبر cosign. المشروع مرخص بموجب MIT.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.