Создание эксперимента хаоса, использующего ошибку "Сетка хаоса" для убийства модулей pod AKS с помощью портал Azure
Вы можете использовать эксперимент хаоса для проверки устойчивости приложения к сбоям, вызвав эти сбои в управляемой среде. В этой статье вы вызываете периодические Служба Azure Kubernetes сбои pod в пространстве имен с помощью эксперимента хаоса и Azure Chaos Studio. Выполнение этого эксперимента поможет защититься от недоступности службы, если возникают нерегулярные сбои.
В Студии Chaos Studio используется Платформа разработки хаоса с открытым исходным кодом для Kubernetes, чтобы внедрить ошибки в кластер AKS. Ошибки в сетке Хаоса — это прямые сбои службы , требующие установки Сетки Хаоса в кластере AKS. Эти же действия можно использовать для настройки и запуска эксперимента для любого сбоя сетки хаоса AKS.
Необходимые компоненты
- Подписка Azure. Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.
- Кластер AKS с пулом узлов Linux. Если у вас нет кластера AKS, ознакомьтесь с кратким руководством по AKS, использующим Azure CLI, Azure PowerShell или портал Azure.
Ограничения
- С частными кластерами можно использовать ошибки Сетки Хаоса, настроив внедрение виртуальной сети в Chaos Studio. Все команды, выданные частному кластеру, включая действия, описанные в этой статье по настройке Chaos Mesh, должны выполнять инструкции по частному кластеру. Рекомендуемые методы включают подключение из виртуальной машины в той же виртуальной сети или использование функции вызова команды AKS.
- Ошибки сетки хаоса AKS поддерживаются только в пулах узлов Linux.
- Если кластер AKS настроен только для разрешения авторизованных диапазонов IP-адресов, необходимо разрешить диапазоны IP-адресов Студии Chaos Studio. Их можно найти, запросив
ChaosStudio
тег службы с помощью API обнаружения тегов службы или скачиваемых JSON-файлов.
Настройка Сетки Хаоса в кластере AKS
Прежде чем запускать ошибки Сетки Хаоса в Среде Chaos Studio, необходимо установить Сетку Хаоса в кластере AKS.
Выполните следующие команды в окне Azure Cloud Shell , где у вас есть активная подписка, в которой развернут кластер AKS. Замените и
MyResourceGroup
назовитеMyManagedCluster
кластер и группу ресурсов.az aks get-credentials --admin --name MyManagedCluster --resource-group MyResourceGroup
helm repo add chaos-mesh https://charts.chaos-mesh.org helm repo update kubectl create ns chaos-testing helm install chaos-mesh chaos-mesh/chaos-mesh --namespace=chaos-testing --set chaosDaemon.runtime=containerd --set chaosDaemon.socketPath=/run/containerd/containerd.sock
Убедитесь, что модули pod Chaos Mesh установлены, выполнив следующую команду:
kubectl get po -n chaos-testing
Вы должны увидеть выходные данные, аналогичные следующему примеру (диспетчер-хаос-контроллер и один или несколько хаос-daemons):
NAME READY STATUS RESTARTS AGE chaos-controller-manager-69fd5c46c8-xlqpc 1/1 Running 0 2d5h chaos-daemon-jb8xh 1/1 Running 0 2d5h chaos-dashboard-98c4c5f97-tx5ds 1/1 Running 0 2d5h
Инструкции по установке также можно использовать на веб-сайте Chaos Mesh.
Включение Chaos Studio в кластере AKS
Студия Chaos Studio не может вводить ошибки к ресурсу, если только этот ресурс не добавляется в Chaos Studio в первую очередь. Вы добавите ресурс в Chaos Studio, создав целевой объект и возможности ресурса. Кластеры AKS имеют только один целевой тип (service-direct), но другие ресурсы могут иметь до двух целевых типов. Один из целевых типов — для ошибок с прямой службой. Другой целевой тип — для сбоев на основе агента. Каждый тип ошибки "Сетка хаоса" представлен как возможность, например PodChaos, NetworkChaos и IOChaos.
Откройте портал Azure.
Найдите Студию Chaos Studio в строке поиска.
Выберите целевые объекты и перейдите в кластер AKS.
Установите флажок рядом с кластером AKS. Выберите "Включить целевые объекты", а затем выберите "Включить целевые объекты для прямого обслуживания" в раскрывающемся меню.
Убедитесь, что указан нужный ресурс. Выберите "Рецензирование и включение", а затем включите.
Появится уведомление, указывающее, что выбранные ресурсы были успешно включены.
Теперь вы успешно добавили кластер AKS в Chaos Studio. В представлении "Целевые объекты " можно также управлять возможностями, включенными в этом ресурсе. Выберите ссылку "Управление действиями" рядом с ресурсом, чтобы отобразить возможности, включенные для этого ресурса.
Создание эксперимента
Теперь можно создать эксперимент. Эксперимент хаоса определяет действия, которые необходимо предпринять для целевых ресурсов. Действия упорядочены и выполняются последовательно. Эксперимент хаоса также определяет действия, которые необходимо предпринять против ветвей, которые выполняются параллельно.
Перейдите на вкладку "Эксперименты" в Chaos Studio. В этом представлении вы можете просматривать все эксперименты хаоса и управлять ими. Выберите "Создать>эксперимент".
Заполните подписку, группу ресурсов и расположение, где нужно развернуть эксперимент хаоса. Присвойте эксперименту имя. Нажмите кнопку Далее: конструктор экспериментов.
Теперь вы находитесь в конструкторе экспериментов Chaos Studio. Конструктор экспериментов позволяет создавать эксперимент, добавляя шаги, ветви и ошибки. Присвойте понятное имя шагу и ветви и нажмите кнопку "Добавить действие>", чтобы добавить ошибку.
Выберите AKS Chaos Mesh Pod Chaos в раскрывающемся списке. Введите значение "Длительность" с количеством минут, в течение которого требуется, чтобы ошибка длилась и jsonSpec, используя следующие сведения:
Чтобы сформулировать сетку
jsonSpec
Хаоса:См. документацию по Сетке Хаоса для типа сбоя, например типа PodChaos.
Сформулируйте конфигурацию YAML для этого типа сбоя с помощью документации по Сетке Хаоса.
apiVersion: chaos-mesh.org/v1alpha1 kind: PodChaos metadata: name: pod-failure-example namespace: chaos-testing spec: action: pod-failure mode: all duration: '600s' selector: namespaces: - default
Удалите любой YAML за пределами
spec
(включая имя свойства спецификации) и удалите отступ сведений о спецификации. Параметрduration
не нужен, но используется, если он указан. В этом случае удалите его.action: pod-failure mode: all selector: namespaces: - default
Используйте преобразователь YAML-to-JSON, как этот, для преобразования YAML-сетки Хаоса в JSON и свести к минимуму его.
{"action":"pod-failure","mode":"all","selector":{"namespaces":["default"]}}
Вставьте свернутый JSON в поле jsonSpec на портале.
Нажмите кнопку "Далее" — целевые ресурсы.
Выберите кластер AKS и нажмите кнопку "Далее".
Убедитесь, что эксперимент выглядит правильно и выберите "Просмотр и создание".>
Предоставление разрешения эксперимента кластеру AKS
При создании эксперимента хаоса Студия Chaos Studio создает управляемое удостоверение, назначаемое системой, которое выполняет ошибки в целевых ресурсах. Это удостоверение должно быть предоставлено соответствующим разрешениям целевому ресурсу для успешного выполнения эксперимента.
Перейдите в кластер AKS и выберите элемент управления доступом (IAM).
Выберите Добавить>Добавить назначение ролей.
Найдите роль администратора кластера Служба Azure Kubernetes и выберите ее. Выберите Далее.
Выберите элементы и найдите имя эксперимента. Выберите эксперимент и нажмите кнопку "Выбрать". Если в одном клиенте имеется несколько экспериментов с одинаковым именем, имя эксперимента усечено случайными символами.
Выберите "Рецензирование" и "Назначить>проверку" и "Назначить".
Запуск эксперимента
Теперь вы готовы к выполнению эксперимента. Чтобы увидеть эффект, рекомендуется открыть обзор кластера AKS и перейти к аналитике на отдельной вкладке браузера. Динамические данные для активного числа pod показывают эффект выполнения эксперимента.
В представлении "Эксперименты" выберите эксперимент. Нажмите кнопку "Пуск>ОК".
Когда состояние изменяется на "Выполнение", выберите "Сведения" для последнего запуска в разделе "Журнал", чтобы просмотреть сведения о выполняемом эксперименте.
Следующие шаги
Теперь, когда вы выполнили прямой эксперимент службы akS Chaos Mesh, вы готовы: