Документация Chaos engineering — pre-GA preview

Хаос-инжиниринг — предварительная версия и безопасная настройка

Хаос-инжиниринг намеренно нарушает работу целевой системы, чтобы проверить её
восстановление. Начните с тестового кластера, ограничьте цель и согласуйте опыт
с людьми, которые отвечают за кластер. Здесь описаны доступные воздействия,
настройка явного разрешения и проверки перед запуском.

Что означает предварительная версия для администратора

Воздействия могут останавливать поды, менять поведение сети или расходовать
ресурсы. Для части воздействий в Kubernetes требуются повышенные привилегии.
Перед запуском проверьте права учётной записи и кластера, выбор цели и план
восстановления. Текущая версия оператора не проверяет подписи образов и не
проверяет ресурсы эксперимента через admission webhook. Применяйте собственные
политики кластера и заранее убедитесь, что они отклоняют небезопасный тестовый
ресурс. Для команд CLI, запускающих воздействие, требуется явное разрешение.

Доступные воздействия

В предварительной версии доступны следующие виды воздействия:

  • pod_kill / pod_kill_random — остановить выбранный или случайный под.
  • network_partition — прервать входящий и исходящий трафик пода.
  • network_delay — добавить задержку в сетевой трафик пода.
  • network_loss — терять заданный процент пакетов.
  • deployment_restart — последовательно перезапустить поды приложения.
  • scale — изменить число реплик приложения, затем восстановить его.
  • node_drain — запретить новые поды на узле и переселить существующие.
  • resource_stress — создать нагрузку на процессор, память или диск.
  • dns_disruption — нарушить разрешение указанного домена.
  • io_chaos — задерживать или нарушать операции с файлами.
  • time_chaos — изменить системное время пода.

Запустить эксперимент можно через:

  • Раздел Chaos в веб-интерфейсе.
  • mockarty-cli chaos run / mockarty-cli chaos preset run.
  • Терминальный интерфейс (mockarty-cli tui chaos).
  • SDK для Go, Python и Java.
  • Тест-план с шагами Chaos, если модуль доступен по вашей лицензии.

Для каких команд нужно подтверждение

CLI требует подтверждения перед командами, которые могут изменить кластер:

  • mockarty-cli chaos run …
  • mockarty-cli chaos abort …
  • mockarty-cli chaos preset run …
  • mockarty-cli chaos cluster add … (регистрирует подключение к кластеру)
  • mockarty-cli chaos operator install … / uninstall …

Без подтверждения CLI отклонит команду. Подтверждение не заменяет лицензию:
после него сервер отдельно проверит право на запуск.

Следующие команды только читают данные и не требуют подтверждения:

  • mockarty-cli chaos list
  • mockarty-cli chaos get <id>
  • mockarty-cli chaos report <id>
  • mockarty-cli chaos preset list
  • mockarty-cli chaos operator status
  • mockarty-cli chaos cluster list / cluster info

Как подтвердить запуск

Выберите один из двух способов.

1. Флаг для отдельной команды

mockarty-cli chaos run \
  --type pod_kill \
  --namespace app \
  --selector app=web \
  --duration 5m \
  --i-know-this-is-preview

Указывайте флаг в каждой команде, которая запускает воздействие. Он также
работает с вложенными командами chaos.

2. Переменная окружения для сеанса или CI

export MOCKARTY_CHAOS_PREVIEW=1
mockarty-cli chaos run --type pod_kill --namespace app --selector app=web --duration 5m

Подходят значения 1, true, yes, on в любом регистре. Любое другое
значение, включая пустую строку, не подтверждает запуск.

В CI задавайте переменную только для задачи с хаос-экспериментом. Остальные
задачи смогут читать результаты, но не запустят воздействие случайно.

Как выглядит баннер

Если подтверждение не указано, CLI покажет:

  Chaos engineering is currently in pre-GA preview.

  Fault-injection subcommands are gated behind an explicit opt-in:

    --i-know-this-is-preview     (CLI flag)
    MOCKARTY_CHAOS_PREVIEW=1     (environment variable)

  Read-only operations (list, get, report, preset list, operator
  status) work without opt-in so you can audit prior experiments.

  Full details: https://mockarty.ru/docs/chaos-pre-ga

Код выхода — 3. Ошибка лицензии использует код 2.

Лицензия проверяется отдельно

После подтверждения в CLI сервер проверяет доступ к модулю Хаос и
надёжность
. Если модуль или место пользователя недоступны, сервер вернёт
403:

Подтверждение в CLI Доступ к модулю Результат
нет нет CLI показывает сообщение о подтверждении
нет есть CLI показывает сообщение о подтверждении
есть нет Сервер возвращает 403 feature not licensed
есть есть Команда выполняется

Команды просмотра не требуют подтверждения в CLI. Сервер всё равно проверяет
права доступа; история прежних экспериментов может остаться доступной после
окончания лицензии.

Зрелость

Хаос-инжиниринг находится в режиме preview. Перед командой, которая
запускает воздействие, CLI требует явного подтверждения.
Перед изменением производственного скрипта проверьте справку текущей версии CLI
и права вашей установки.

Лицензия и проверка аудита

Если в вашей организации требуется аудит экспериментов:

  • История экспериментов показывает запуски и результаты. Если вам нужен
    аудиторский след или данные для SIEM, проверьте, какие именно события
    записывает ваша установка. Наличие названий событий в операторе само по
    себе не подтверждает их запись в журнал аудита.
  • Хаос и надёжность — лицензируемый модуль с местами. Подтверждение в CLI
    не даёт доступ пользователю без назначенного места.

FAQ

Зачем отдельный флаг, если уже есть лицензия?

Лицензия определяет, кому разрешён доступ. Флаг подтверждает намерение
запустить воздействие именно этой командой CLI.

Можно ли настроить подтверждение для всего сеанса?

Да. Установите MOCKARTY_CHAOS_PREVIEW=1 в текущем сеансе. CLI читает
переменную при каждом запуске. Не добавляйте её в общий профиль, если не
хотите разрешить воздействия всем будущим сеансам.

Что указать в задаче CI?

Передайте --i-know-this-is-preview или установите
MOCKARTY_CHAOS_PREVIEW=1 только для этой задачи. Проверьте выбранную цель
и право пользователя на запуск.

Где посмотреть результат запуска?

Откройте историю экспериментов и отчёт о запуске. Если вашему процессу нужна
аудиторская запись, отдельно проверьте её в журнале установки и SIEM.

Перед запуском в рабочем кластере

Ограничьте пространства имён и ресурсы, которые оператор может менять.
Подготовьте и проверьте процедуру отката, применяйте принятую у вас политику
образов. Параметры Helm для проверки ресурсов и подписей образов сейчас не
включают эти проверки в работающем операторе. Наличие параметров или успешная
установка чарта не подтверждают, что кластер применяет такие ограничения.