Введение в Chaos Mesh, мощный инструмент проектирования хаоса

В настоящее время сбои в распределенных вычислительных системах стало трудно прогнозировать. Мы должны быть активными, чтобы предотвратить проблемы. Подход Chaos Engineering служит именно этой цели.

В этой статье я собираюсь представить Chaos Mesh, мощный инструмент хаос-инженерии. Если вы не знакомы с концепцией хаоса, прочитайте об этом ниже, иначе вы можете сразу перейти к разделу Chaos Mesh.

Инженерная концепция хаоса

Chaos Engineering — это современная концепция преднамеренного создания хаотических, но реалистичных ситуаций в распределенной среде. Идея была впервые разработана инженерами Netflix в 2011 году. Такое тестирование проверяет, может ли производственная среда выдерживать неожиданные сбои. Мы можем упреждающе устранять самые фатальные уязвимости до того, как это повлияет на производство. Он проверяет устойчивость среды к сбоям инфраструктуры, сети и приложений.

Например, мы можем проверить, что произойдет, если произойдет сбой в одной точке отказа. Как это повлияет на другие оставшиеся части системы? Если мы выявляем проблему, мы можем изменить стратегию и повторить тест, чтобы убедиться, что реализовано правильное решение.

Типичные тест-кейсы хаоса:

  • Имитация высокой загрузки процессора и неожиданного увеличения трафика.
  • Внедрение задержки в сервисы.
  • Вызывает сбои в работе сети.
  • Сбои под.

И многое другое.

Обзор сетки хаоса

Chaos Mesh — это облачный инструмент для создания хаоса с открытым исходным кодом. Он предоставляет удобный веб-интерфейс, где вы можете создавать свои эксперименты. Кроме того, вы можете создать их прямо из пользовательского интерфейса или из .yaml файлов.

Вот пример эксперимента по уничтожению pod в формате .yaml:

Он поддерживает различные типы экспериментов для Kubernetes, а также для физических узлов. Рекомендую перейти в документацию, чтобы ознакомиться со всеми тестами.

У вас есть возможность запускать как разовые, так и запланированные эксперименты.

Инструмент отладки

Хотите просматривать журналы и отладочную информацию о своих экспериментах? Chaos Mesh предлагает инструмент командной строки под названием chaosctl. Обратите внимание, что в настоящее время он поддерживает отладку сценариев IOChaos, NetworkChaos и StressChaos.

Интеграция с действиями GitHub

Лучший способ обеспечить бесперебойную работу ваших проектов — интегрировать проверки в конвейер CI/CD. Вы можете подключить Chaos Mesh к GitHub Actions. Официальное руководство содержит информацию о настройке в несколько простых шагов.

Поддержка Графана

Вы можете интегрировать Chaos Mesh в Grafana с помощью плагина Data Source. Это полезно, когда вы хотите визуализировать информацию о ваших текущих экспериментах. Ознакомьтесь с гайдом о процессе интеграции.

Демонстрационный эксперимент Chaos Mesh

Во-первых, давайте установим Chaos Mesh в Linux, используя среду kind.

Если вы не используете kind, ознакомьтесь с руководством по установке, чтобы узнать о других параметрах, таких как minikube, k3s и т. д.

Запустите эту команду в Терминале:

curl -sSL https://mirrors.chaos-mesh.org/v2.1.5/install.sh | bash -s -- --local kind

Это займет пару минут. Проверьте установку:

kubectl get po -n chaos-testing

Вы должны увидеть, что ваши модули работают:

В этом уроке мы собираемся создавать эксперименты через пользовательский интерфейс. Чтобы получить доступ к Chaos Dashboard, вам необходимо включить переадресацию портов:

kubectl port-forward -n chaos-testing svc/chaos-dashboard 2333:2333

Теперь вы сможете получить к нему доступ через http://localhost:2333 в браузере.

Вот краткий обзор панели инструментов:

Если у вас уже есть эксперименты, вы можете проверить их статус в меню Эксперименты:

В этой демонстрации я собираюсь создать тест на уничтожение pod. Как вы можете видеть ниже, навигация по пользовательскому интерфейсу и настройка эксперимента очень интуитивно понятны:

Вот и все!

Теперь выполните эту команду, чтобы увидеть статус модулей:

kubectl get po -n chaos-testing

Вы должны заметить, что некоторые модули были созданы заново (см. Возраст 35 с):

Заключение

В этой статье я представил основные функции Chaos Mesh. Вы узнали, как создавать эксперименты из Chaos Dashboard. Теперь вы знаете, почему хаос-инженерия — это хорошая практика.

Я надеюсь, что вы узнали что-то полезное из этого поста. Спасибо за чтение, и до встречи в следующий раз!