À propos du projet
debux est un débogueur de conteneurs open-source conçu pour les environnements Docker et Kubernetes. Il résout un problème courant : le débogage de conteneurs de style production dépourvus de shells ou de gestionnaires de paquets, comme les images distroless, scratch et minimales. Contrairement à `docker exec`, qui nécessite des outils et un shell à l'intérieur de l'image cible, debux lance un conteneur de boîte à outils de débogage séparé qui s'attache à la cible, partage des espaces de noms utiles (réseau, processus) et expose le système de fichiers cible à `$DEBUX_TARGET_ROOT` (généralement `/proc/1/root`).
Les capacités clés incluent :
- **Fonctionne avec n'importe quel conteneur** : Débogue les conteneurs en cours d'exécution, arrêtés, sortis ou en boucle de crash, y compris ceux sans shells ou gestionnaires de paquets.
- **Prise en charge de Docker et Kubernetes** : Flux de travail unifié pour les conteneurs Docker locaux, les services Docker Compose, les conteneurs Podman et les pods Kubernetes. Prend également en charge le débogage des nœuds Kubernetes avec accès à l'espace de noms hôte.
- **Boîte à outils prête à l'emploi** : Les outils préinstallés incluent curl, wget, dig, nmap, tcpdump, strace, ltrace, gdb, htop, vim, jq, git, openssh, zsh, tmux, et plus encore. La boîte à outils est basée sur Wolfi et utilise mise pour la gestion des paquets.
- **Installation d'outils à la demande** : La commande `dctl` installe des outils supplémentaires pendant une session de débogage en utilisant mise. Les outils peuvent être préchargés au début de la session avec `--tools`.
- **Shell conscient de la cible** : Accédez à la racine cible, inspectez les processus cibles, réutilisez l'espace de noms réseau cible et exécutez les binaires propres à la cible via chroot lorsque la boîte à outils en manque.
- **Redirection de port et copie de fichiers** : Atteignez et récupérez des fichiers depuis n'importe quelle cible, même les conteneurs démarrés sans `-p` et les pods distroless où `kubectl cp` échoue.
- **Mode de copie Kubernetes** : Lorsque les conteneurs éphémères sont bloqués par RBAC ou une politique d'admission, `--copy` crée un pod dupliqué temporaire pour le débogage. Prend en charge les sessions de copie de longue durée avec TTL, protection Karpenter et capacités de réattachement.
- **Débogage de nœuds** : `debux node` planifie un pod de boîte à outils avec espace de noms hôte sur un nœud Kubernetes, montant le système de fichiers racine du nœud et partageant les espaces de noms PID, réseau et IPC.
- **Débogage d'images** : Déboguez une image sans la démarrer, utile lorsque l'image elle-même ne peut pas démarrer.
- **Interface TUI** : Navigateur de cibles plein écran avec navigation de contexte/namespace Docker et Kubernetes, réattachement de session active, sessions récentes et bascules d'options.
- **Complétion de shell** : Les complétions générées incluent des cibles Docker et Kubernetes en direct avec correspondance de sous-chaînes.
L'outil est distribué comme un binaire unique avec un script d'installation prenant en charge Linux et macOS sur amd64/arm64. Les artefacts de version sont vérifiés par somme de contrôle, et la vérification de signature cosign optionnelle est prise en charge. Le projet est sous licence MIT.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.