Введение в 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. Теперь вы знаете, почему хаос-инженерия — это хорошая практика.
Я надеюсь, что вы узнали что-то полезное из этого поста. Спасибо за чтение, и до встречи в следующий раз!