इस प्रोजेक्ट के बारे में
debux एक ओपन-सोर्स कंटेनर डिबगर है जिसे Docker और Kubernetes वातावरण के लिए डिज़ाइन किया गया है। यह एक सामान्य समस्या का समाधान करता है: उत्पादन-शैली वाले कंटेनरों को डिबग करना जिनमें शेल या पैकेज मैनेजर नहीं होते, जैसे distroless, scratch और minimal इमेज। `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 इंटरफ़ेस**: पूर्ण-स्क्रीन टारगेट ब्राउज़र जिसमें Docker, Kubernetes संदर्भ/नेमस्पेस नेविगेशन, सक्रिय सत्र पुन: संलग्न, हाल के सत्र और विकल्प टॉगल शामिल हैं।
- **शेल पूर्णता**: उत्पन्न पूर्णताओं में सबस्ट्रिंग मिलान के साथ लाइव Docker और Kubernetes टारगेट शामिल हैं।
टूल को एकल बाइनरी के रूप में वितरित किया जाता है जिसमें एक इंस्टॉलर स्क्रिप्ट होती है जो amd64/arm64 पर Linux और macOS का समर्थन करती है। रिलीज़ एसेट्स चेकसम-सत्यापित होते हैं, और वैकल्पिक cosign हस्ताक्षर सत्यापन समर्थित है। परियोजना MIT लाइसेंस के तहत है।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.