Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
pumba — Инструмент для хаос-тестирования, эмуляции сети и стресс-тестирования контейнеров | Kitploit
Инструменты/GitHubGitHub/alexei-led/pumba
Безопасность контейнеровDevSecOpsИнженерия Хаоса
GitHubalexei-led/pumba

pumba

Инструмент для хаос-тестирования, эмуляции сети и стресс-тестирования контейнеров

Репозиторий
3.1k21516 ч 5 мин назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Pumba
Инструмент хаос-тестирования для Docker, containerd и Podman

GitHub Release Release Build and Test Go Report Card Codecov License

Быстрый старт · Руководство пользователя · Сетевой хаос · Развёртывание · Участие в разработке


Pumba — это инструмент хаос-тестирования и эмуляции сетевых сбоев для контейнеров Docker, containerd и Podman. Вдохновлённый Netflix Chaos Monkey, Pumba привносит chaos engineering на уровень контейнеров: убивайте, останавливайте, приостанавливайте и удаляйте контейнеры, вносите сетевые задержки и потерю пакетов или создавайте нагрузку на ресурсы контейнеров.

Как это работает

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]

Поддерживаемые среды выполнения

Поддерживаемые платформы

Pumba нацелен на Linux-контейнеры — каждое хаос-действие зависит от примитивов Linux (netns, cgroups v2, iptables, tc qdisc, сокеты среды выполнения контейнеров). Публикуемые бинарники:

Windows намеренно не собирается. Примитивы хаоса — запись в Linux netns/cgroups, внедрение sidecar с tc/iptables, передача POSIX-сигналов (SIGCONT/SIGSTOP/SIGUSR1/SIGUSR2, используемых средой выполнения containerd) — не имеют аналогов в Windows. Правдоподобного сценария использования Windows нет даже с бэкендом WSL2 в Docker Desktop, поэтому бинарник для Windows не публикуется. PR, добавляющие поддержку Windows, приниматься не будут; пожалуйста, запускайте pumba на Linux (нативно, в контейнере или в VM).

Возможности

Быстрый старт

Установка

Скачайте последний релиз для вашей платформы или используйте Docker:

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

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

Первый хаос

root@kitploit:~
# Kill a random container matching "test" every 30 seconds
pumba --interval=30s --random kill "re2:^test"

# Add 3 seconds network delay to mydb for 5 minutes
pumba netem --duration 5m delay --time 3000 mydb

# Drop 10% of incoming packets to myapp for 2 minutes
pumba iptables --duration 2m loss --probability 0.1 myapp

# Stress CPU of mycontainer for 60 seconds
pumba stress --duration 60s --stressors="--cpu 4 --timeout 60s" mycontainer

Среда выполнения containerd

root@kitploit:~
# Kill a container by ID via containerd
pumba --runtime containerd --containerd-namespace k8s.io kill <container-id>

# Add network delay via containerd (requires tc in the container image)
pumba --runtime containerd --containerd-namespace moby \
  netem --duration 5m delay --time 3000 <container-id>

Среда выполнения Podman

Pumba общается с Podman через Docker-совместимый сокет. Флаг --podman-socket необязателен — если он пуст, pumba последовательно проверяет $CONTAINER_HOST, $PODMAN_SOCK, podman machine inspect, /run/podman/podman.sock и $XDG_RUNTIME_DIR/podman/podman.sock.

root@kitploit:~
# Kill a container by name via Podman (rootful socket auto-detected)
sudo pumba --runtime podman kill mycontainer

# Add network delay via Podman (requires rootful socket)
sudo pumba --runtime podman netem --duration 5m delay --time 3000 mycontainer

# Stress CPU via Podman (default child-cgroup mode)
sudo pumba --runtime podman stress --duration 60s --stressors="--cpu 4 --timeout 60s" mycontainer

# Explicit socket override
pumba --runtime podman --podman-socket unix:///run/podman/podman.sock kill mycontainer

netem, iptables и stress требуют rootful Podman — в rootless-режиме происходит быстрый отказ с понятным сообщением, указывающим на podman machine set --rootful (macOS) или rootful systemd-юнит (Linux).

Разработка на macOS с Podman

Podman на macOS работает внутри Linux VM. Pumba должен работать на том же ядре, что и целевые контейнеры (чтение /proc/<pid>/cgroup на стороне хоста), поэтому запускайте бинарник pumba внутри VM podman machine:

root@kitploit:~
# one-time setup
brew install podman
podman machine init --rootful --cpus 4 --memory 4096 --now
podman machine ssh sudo dnf install -y bats      # optional, for bats tests

# copy a linux/arm64 or linux/amd64 pumba binary into the VM
podman machine ssh sudo cp /path/to/pumba /usr/local/bin/

# run inside the VM
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>

Совет: Для сетевого хаоса на контейнерах без tc/iptables используйте --tc-image, чтобы запустить sidecar-контейнер:

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

Запуск с Docker

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-образы

RegistryImageStatus
GitHub Container Registryghcr.io/alexei-led/pumba✅ Основной
Docker Hubalexeiled/pumba⚠️ Устаревший

Образы собираются нативно для linux/amd64 и linux/arm64 (без QEMU).

Документация

Демо

asciicast

Сообщество и поддержка

  • Вопросы: GitHub Issues
  • Блог: Pumba — хаос-тестирование для Docker

Лицензия

Apache License 2.0

Скачать инструмент
RuntimeSocket (default)netem / iptables / stressNotes
Docker/var/run/docker.sockWorks as root or with socket accessDefault runtime.
containerd/run/containerd/containerd.sockRequires root (overlayfs mounts for sidecar)Namespaces: k8s.io (Kubernetes), moby (Docker-managed), default (pure containerd).
Podman/run/podman/podman.sock (rootful)Requires rootful Podman (fails fast else)Uses Podman's Docker-compat API; on macOS pumba runs inside podman machine (see below).
OSamd64arm64Notes
Linux✅✅Primary target. Run pumba on the same kernel as the targeted containers.
macOS✅✅Developer ergonomics only. Use it to drive a remote Docker/Podman/containerd VM (e.g. Colima, podman machine).
Windows❌❌Not supported and not planned. See below.
CategoryCommandsDescription
Хаос контейнеровkill, stop, pause, rm, restartНарушение жизненного цикла контейнеров
ВыполнениеexecВыполнение команд внутри контейнеров
Сетевая задержкаnetem delayДобавление задержки исходящему трафику
Потеря пакетовnetem loss, iptables lossОтбрасывание пакетов (исходящих и входящих)
Сетевые эффектыnetem duplicate, corrupt, rateДублирование, повреждение или ограничение скорости пакетов
Стресс-тестированиеstressНагрузка на CPU, память и I/O через stress-ng (в дочерней cgroup или инъекция в ту же cgroup)
Выбор целейnames, regex (re2:), labels, --randomГибкий выбор контейнеров
Планирование--intervalПовторяющийся хаос с фиксированным интервалом
FlagDefaultDescription
--runtimedockerСреда выполнения контейнеров (docker, containerd или podman)
--containerd-socket/run/containerd/containerd.sockПуть к сокету containerd
--containerd-namespacek8s.ioNamespace containerd (k8s.io для Kubernetes, moby для Docker)
--podman-socket(определяется автоматически)URI сокета Podman (например, unix:///run/podman/podman.sock); пустое значение включает автоопределение
DocumentDescription
Руководство пользователяКоманды хаоса для контейнеров, выбор целей, планирование, конфигурация
Сетевой хаосnetem, iptables, продвинутые сценарии, схемы архитектуры
Стресс-тестированиеСтресс-тестирование CPU/памяти/IO с помощью stress-ng
РазвёртываниеDocker, Kubernetes DaemonSets, OpenShift
Участие в разработкеСборка из исходников, запуск тестов, структура проекта