Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Обзор
Azure Chaos Studio интегрируется с Chaos Mesh для проведения сбоев в кластерах службы Azure Kubernetes (AKS), таких как удаление подов, нагрузка на процессор, сбои в сети и многое другое. Для управления этими сбоями можно использовать два разных типа аутентификации в зависимости от конфигурации и настроек: либо локальные учетные записи, либо аутентификацию Microsoft Entra, управляемую через AKS.
- Локальные учетные записи Kubernetes хранятся на сервере API Kubernetes и могут использоваться для проверки подлинности и авторизации запросов к кластеру. Дополнительные сведения о локальных учетных записях на этой странице: управление локальными учетными записями.
- Проверка подлинности Microsoft Entra, управляемой AKS, позволяет выполнять вход и управлять разрешениями для кластера с помощью учетных данных Microsoft Entra и Azure RBAC. Узнайте, как включить проверку подлинности Microsoft Entra, управляемую AKS.
Примечание.
Разрешения локальной учетной записи предоставляют доступ при условии, что учетные данные находятся на клиентском компьютере, в то время как проверка подлинности AKS-Managed Microsoft Entra позволяет более точное назначение и управление разрешениями. Дополнительные сведения об этой рекомендации: рекомендации по обеспечению безопасности кластера и обновлений.
Chaos Studio ранее поддерживал использование Chaos Mesh с локальными учетными записями, но версия 2.2 всех неполадок AKS теперь поддерживает как локальные учетные записи, так и аутентификацию Microsoft Entra.
Цели обновления
Целевые объекты (Microsoft.Chaos/targets) представляют другой ресурс Azure в модели ресурсов Chaos Studio, поэтому вы можете легко контролировать, включен ли определенный ресурс для внедрения ошибок и какие ошибки могут выполняться с ним. В этом случае целевой объект представляет кластер AKS, на который вы хотите повлиять.
Если вы подключаете кластер AKS как новую целевую группу Chaos Studio в портале Azure, новые версии отказов будут автоматически доступны.
Если вы хотите использовать новую версию сбоя в существующем целевом объекте AKS, необходимо обновить целевой объект. Это можно сделать одним из двух способов.
- Отключите и повторно включите целевой ресурс.
- Чтобы сделать это в портал Azure, перейдите в область "Целевые объекты" в интерфейсе портала Chaos Studio, выберите соответствующие кластеры AKS и выберите "Отключить целевые объекты". Подождите 1–2 минуты или до получения уведомления о подтверждении, затем выберите Включить целевые объекты> и Включить целевые объекты для прямого обслуживания, и перейдите к экрану "Проверка и создание".
- Обновите включенные возможности.
- Для этого в портал Azure перейдите в область "Цели" в Chaos Studio, найдите кластеры AKS, выберите "Управление действиями" и убедитесь, что все возможности включены. Нажмите кнопку "Сохранить", чтобы завершить обновление.
Если вы используете API или командную строку, следуйте инструкциям из создания эксперимента хаоса, использующего сбой Chaos Mesh с помощью Azure CLI, чтобы обеспечить доступность последних возможностей.
Создание нового эксперимента
При создании нового эксперимента, использующего ошибки AKS Chaos Mesh в портале Azure, могут появиться две версии каждой ошибки, такие как "AKS Chaos Mesh DNS Chaos" и "AKS Chaos Mesh DNS Chaos" (устаревший). Выберите первый вариант, а не устаревший параметр.
Если кластер AKS не отображается в качестве возможного целевого объекта после выбора сбоя, может потребоваться включить новую версию сбоя в кластере. Перейдите на страницу "Целевые объекты", найдите кластер AKS и выберите " Управление действиями", а затем убедитесь, что все возможности выбраны перед нажатием кнопки "Сохранить".
Следуйте инструкциям по созданию эксперимента хаоса, использующего сбой Chaos Mesh для уничтожения подсистем AKS (pods) с помощью руководства портала Azure, чтобы создать эксперимент.
Обновление существующего эксперимента
Выполните один из этих двух методов, чтобы обновить существующий эксперимент.
- Откройте эксперимент, содержащий по крайней мере одну ошибку сетки хаоса AKS.
- Выберите Изменить на неисправности и скопируйте
jsonSpecзначение параметра в буфер обмена. - Откройте раскрывающийся список выбора сбоя и выберите версию требуемого сбоя без маркировки
(deprecated). - Вставьте
jsonSpecиз буфера обмена в поле параметра. - Сохраните ошибки и экспериментальные результаты.
Разрешения
Студии Chaos Studio требуется разрешение на внедрение ошибок в ваших ресурсах.
При создании эксперимента в портале Azure вы можете также выбрать параметр «Включить создание и назначение настраиваемых ролей», чтобы позволить Chaos Studio попытаться назначить необходимые разрешения управляемому удостоверению эксперимента.
Если вы решили не использовать создание пользовательской роли или не используете портал Azure, необходимо выполнить одно из следующих действий после создания эксперимента:
- Вручную назначьте роли Администратора RBAC службы Azure Kubernetes и Пользователя кластера службы Azure Kubernetes управляемому удостоверению эксперимента (системное или назначенное пользователем).
- Вручную создайте пользовательскую роль, разрешающую полный список операций, необходимых для операций RBAC.
- Вручную создайте пользовательскую роль, разрешающую частичный список необходимых операций и разверните пользовательский файл YAML. Этот процесс подробно описан в необязательном доступе к наименьшим привилегиям.
Операции RBAC
Для сбоев сетки хаоса AKS используются следующие операции RBAC:
- Действия:
- Microsoft.ContainerService/управляемыеКластеры/чтение
- Действия с данными:
- Microsoft.ContainerService/managedClusters/namespaces/read
- Microsoft.ContainerService/managedClusters/pods/read
- Microsoft.ContainerService/managedClusters/apiextensions.k8s.io/customresourcedefinitions/write
- Microsoft.ContainerService/managedClusters/apiextensions.k8s.io/customresourcedefinitions/read
- Microsoft.ContainerService/managedClusters/authorization.k8s.io/subjectaccessreviews/write
- Microsoft.ContainerService/managedClusters/rbac.authorization.k8s.io/clusterroles/read
- Microsoft.ContainerService/managedClusters/rbac.authorization.k8s.io/clusterroles/write
- Microsoft.ContainerService/managedClusters/rbac.authorization.k8s.io/clusterroles/delete
- Microsoft.ContainerService/managedClusters/rbac.authorization.k8s.io/clusterroles/bind/action
- Microsoft.ContainerService/managedClusters/rbac.authorization.k8s.io/clusterroles/escalate/action
- Microsoft.ContainerService/managedClusters/rbac.authorization.k8s.io/clusterrolebindings/read
- Microsoft.ContainerService/managedClusters/rbac.authorization.k8s.io/clusterrolebindings/write
- Microsoft.ContainerService/managedClusters/rbac.authorization.k8s.io/clusterrolebindings/delete
Необязательный доступ с минимальными привилегиями
Если вы предпочитаете не предоставлять полный доступ ClusterRole и ClusterRoleBinding для Chaos Studio, можно вручную создать необходимую роль и привязку для Chaos Mesh. Это необходимо для Chaos Mesh, чтобы убедиться, что эксперимент имеет разрешение на указанное целевое пространство имен арендатора.
Для этой необязательной конфигурации необходимо выполнить два шага.
При назначении разрешений управляемому удостоверению эксперимента используйте пользовательскую роль с ограниченным набором разрешений. Необходимые разрешения:
- Действия:
- Microsoft.ContainerService/управляемыеКластеры/чтение
- Действия с данными:
- Microsoft.ContainerService/managedClusters/namespaces/read
- Microsoft.ContainerService/managedClusters/pods/read
- Microsoft.ContainerService/managedClusters/apiextensions.k8s.io/customresourcedefinitions/write
- Microsoft.ContainerService/managedClusters/apiextensions.k8s.io/customresourcedefinitions/read
- Microsoft.ContainerService/managedClusters/authorization.k8s.io/subjectaccessreviews/write
- Действия:
Разверните следующую конфигурацию YAML, чтобы создать роль и привязку. Узнайте больше о развертываниях в документации AKS: Развертывание кластера Azure Kubernetes Service (AKS) с помощью портала Azure.
kind: ClusterRole apiVersion: rbac.authorization.k8s.io/v1 metadata: name: role-cluster-manager-pdmas rules: - apiGroups: - chaos-mesh.org resources: [ "*" ] verbs: ["get", "list", "watch", "create", "delete", "patch", "update"] --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: cluster-manager-binding namespace: {Namespace targeted by experiment} subjects: - kind: User name: {CHAOS-STUDIO-EXPERIMENT-MSI-OBJECT-ID} roleRef: kind: ClusterRole name: role-cluster-manager-pdmas apiGroup: rbac.authorization.k8s.io