Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
pumba — Tool für Chaos-Tests, Netzwerk-Emulation und Stresstests von Containern | Kitploit
Tools/GitHubGitHub/alexei-led/pumba
Container-SicherheitDevSecOpsChaos-Engineering
GitHubalexei-led/pumba

pumba

Tool für Chaos-Tests, Netzwerk-Emulation und Stresstests von Containern

Repository anzeigen
3.1k215vor 16h 4mVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Pumba
Chaos-Testwerkzeug für Docker, containerd und Podman

GitHub Release Release Build and Test Go Report Card Codecov License

Schnellstart · Benutzerhandbuch · Netzwerk-Chaos · Bereitstellung · Mitwirken


Pumba ist ein Chaos-Test- und Netzwerk-Emulationswerkzeug für Docker-, containerd- und Podman-Container. Inspiriert von Netflix Chaos Monkey bringt Pumba Chaos Engineering auf die Container-Ebene – Container töten, stoppen, pausieren und entfernen, Netzwerkverzögerungen und Paketverluste einfügen oder Container-Ressourcen unter Belastung testen.

So funktioniert es

root@kitploit:~
graph LR
    A[Pumba CLI] -->|Docker API / containerd API / Podman compat API| B[Container Runtime]
    B -->|List & Filter| C[Target Containers]

    A -->|kill / stop / pause / rm| C

    A -->|netem / iptables| D[Helper Container / Direct Exec]
    D -->|Shares network namespace| C
    D -->|Runs tc / iptables| E[Network Chaos]

Unterstützte Laufzeitumgebungen

Unterstützte Plattformen

Pumba zielt auf Linux-Container ab – jede Chaos-Aktion hängt von Linux-Primitiven ab (netns, cgroups v2, iptables, tc qdiscs, Container-Runtime-Sockets). Veröffentlichte Binärdateien:

Windows wird bewusst nicht gebaut. Die Chaos-Primitive – Linux-netns/cgroup-Schreibvorgänge, tc/iptables-Sidecar-Injektion, POSIX-Signalweiterleitung (SIGCONT/SIGSTOP/SIGUSR1/SIGUSR2, die von der containerd-Laufzeitumgebung verwendet werden) – haben kein Windows-Äquivalent. Es gibt keinen plausiblen Windows-Anwendungsfall, selbst mit dem WSL2-Backend von Docker Desktop, daher wird keine Windows-Binärdatei veröffentlicht. PRs, die Windows-Unterstützung hinzufügen, werden nicht angenommen; bitte führen Sie pumba auf Linux aus (nativ, als Container oder in einer VM).

Funktionen

Schnellstart

Installation

Laden Sie das neueste Release für Ihre Plattform herunter, oder verwenden Sie Docker:

root@kitploit:~
# Binärdatei
curl -sL https://github.com/alexei-led/pumba/releases/latest/download/pumba_linux_amd64 -o pumba
chmod +x pumba

# Docker (empfohlen)
docker pull ghcr.io/alexei-led/pumba:latest

Erstes Chaos

root@kitploit:~
# Töte alle 30 Sekunden einen zufälligen Container, der "test" entspricht
pumba --interval=30s --random kill "re2:^test"

# Füge mydb 5 Minuten lang eine Netzwerkverzögerung von 3 Sekunden hinzu
pumba netem --duration 5m delay --time 3000 mydb

# Verwerfe 2 Minuten lang 10 % der eingehenden Pakete für myapp
pumba iptables --duration 2m loss --probability 0.1 myapp

# Belaste die CPU von mycontainer 60 Sekunden lang
pumba stress --duration 60s --stressors="--cpu 4 --timeout 60s" mycontainer

containerd-Laufzeitumgebung

root@kitploit:~
# Töte einen Container anhand seiner ID über containerd
pumba --runtime containerd --containerd-namespace k8s.io kill <container-id>

# Füge über containerd eine Netzwerkverzögerung hinzu (erfordert tc im Container-Image)
pumba --runtime containerd --containerd-namespace moby \
  netem --duration 5m delay --time 3000 <container-id>

Podman-Laufzeitumgebung

Pumba kommuniziert mit Podman über dessen Docker-kompatiblen Socket. --podman-socket ist optional – wenn leer, prüft pumba der Reihe nach $CONTAINER_HOST, $PODMAN_SOCK, podman machine inspect, /run/podman/podman.sock und $XDG_RUNTIME_DIR/podman/podman.sock.

root@kitploit:~
# Töte einen Container anhand seines Namens über Podman (rootful Socket automatisch erkannt)
sudo pumba --runtime podman kill mycontainer

# Füge über Podman eine Netzwerkverzögerung hinzu (erfordert rootful Socket)
sudo pumba --runtime podman netem --duration 5m delay --time 3000 mycontainer

# Belaste die CPU über Podman (Standard-Child-cgroup-Modus)
sudo pumba --runtime podman stress --duration 60s --stressors="--cpu 4 --timeout 60s" mycontainer

# Explizite Socket-Überschreibung
pumba --runtime podman --podman-socket unix:///run/podman/podman.sock kill mycontainer

netem, iptables und stress erfordern rootful Podman – rootless bricht schnell mit einer klaren Meldung ab, die auf podman machine set --rootful (macOS) oder die rootful systemd-Unit (Linux) verweist.

macOS-Entwicklung mit Podman

Podman läuft auf macOS innerhalb einer Linux-VM. Pumba muss auf demselben Kernel wie die Zielcontainer laufen (Host-seitiges Lesen von /proc/<pid>/cgroup), führen Sie die pumba-Binärdatei also innerhalb der podman machine-VM aus:

root@kitploit:~
# einmalige Einrichtung
brew install podman
podman machine init --rootful --cpus 4 --memory 4096 --now
podman machine ssh sudo dnf install -y bats      # optional, für bats-Tests

# kopieren Sie eine linux/arm64- oder linux/amd64-pumba-Binärdatei in die VM
podman machine ssh sudo cp /path/to/pumba /usr/local/bin/

# innerhalb der VM ausführen
podman machine ssh sudo pumba --runtime podman --log-level debug ps
podman machine ssh sudo pumba --runtime podman netem --duration 10s delay --time 200 <container-id>

Tipp: Für Netzwerk-Chaos auf Containern ohne tc/iptables verwenden Sie --tc-image, um einen Sidecar zu starten:

root@kitploit:~
pumba --runtime containerd netem --tc-image ghcr.io/alexei-led/pumba-alpine-nettools:latest \
  --duration 5m delay --time 3000 <container-id>

Mit Docker ausführen

root@kitploit:~
docker run -it --rm \
  -v /var/run/docker.sock:/var/run/docker.sock \
  ghcr.io/alexei-led/pumba --interval=10s --random kill "re2:^test"

Docker-Images

RegistryImageStatus
GitHub Container Registryghcr.io/alexei-led/pumba✅ Primär
Docker Hubalexeiled/pumba⚠️ Veraltet

Images werden nativ für linux/amd64 und linux/arm64 gebaut (kein QEMU).

Dokumentation

Demo

asciicast

Community & Support

  • Issues: GitHub Issues
  • Blog: Pumba – Chaos-Tests für Docker

Lizenz

Apache License 2.0

Tool herunterladen
LaufzeitSocket (Standard)netem / iptables / stressHinweise
Docker/var/run/docker.sockFunktioniert als Root oder mit Socket-ZugriffStandard-Laufzeitumgebung.
containerd/run/containerd/containerd.sockErfordert Root (overlayfs-Mounts für Sidecar)Namensräume: k8s.io (Kubernetes), moby (Docker-verwaltet), default (reines containerd).
Podman/run/podman/podman.sock (rootful)Erfordert rootful Podman (sonst schneller Abbruch)Verwendet Podmans Docker-kompatible API; auf macOS läuft pumba innerhalb von podman machine (siehe unten).
Betriebssystemamd64arm64Hinweise
Linux✅✅Primäres Ziel. Führen Sie pumba auf demselben Kernel wie die Zielcontainer aus.
macOS✅✅Nur für Entwicklerzwecke. Verwenden Sie es, um eine entfernte Docker-/Podman-/containerd-VM zu steuern (z. B. Colima, podman machine).
Windows❌❌Nicht unterstützt und nicht geplant. Siehe unten.
KategorieBefehleBeschreibung
Container-Chaoskill, stop, pause, rm, restartUnterbrechen des Container-Lebenszyklus
AusführenexecBefehle innerhalb von Containern ausführen
Netzwerkverzögerungnetem delayLatenz zum ausgehenden Datenverkehr hinzufügen
Paketverlustnetem loss, iptables lossPakete verwerfen (ausgehend und eingehend)
Netzwerkeffektenetem duplicate, corrupt, ratePakete duplizieren, beschädigen oder ratenbegrenzen
BelastungsteststressCPU-, Speicher-, I/O-Belastung über stress-ng (Child-cgroup oder gleiche cgroup Injektion)
ZielauswahlNamen, Regex (re2:), Labels, --randomFlexible Containerauswahl
Zeitplanung--intervalWiederkehrendes Chaos in festen Intervallen
FlagStandardBeschreibung
--runtimedockerContainer-Laufzeitumgebung (docker, containerd oder podman)
--containerd-socket/run/containerd/containerd.sockcontainerd-Socket-Pfad
--containerd-namespacek8s.iocontainerd-Namensraum (k8s.io für Kubernetes, moby für Docker)
--podman-socket(automatisch erkannt)Podman-Socket-URI (z. B. unix:///run/podman/podman.sock); leer löst automatische Erkennung aus
DokumentBeschreibung
BenutzerhandbuchContainer-Chaos-Befehle, Zielauswahl, Zeitplanung, Konfiguration
Netzwerk-Chaosnetem, iptables, fortgeschrittene Szenarien, Architekturdiagramme
BelastungstestCPU-/Speicher-/I/O-Belastungstests mit stress-ng
BereitstellungDocker, Kubernetes-DaemonSets, OpenShift
MitwirkenAus dem Quellcode bauen, Tests ausführen, Projektstruktur