Remarque
L’accès à cette page requiert une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page requiert une autorisation. Vous pouvez essayer de modifier des répertoires.
Vue d’ensemble
Azure Chaos Studio s’intègre à Chaos Mesh pour exécuter des erreurs sur des clusters Azure Kubernetes Service (AKS), telles que la suppression de pods, la contrainte de processeur, l’interruption du réseau et bien plus encore. Vous pouvez utiliser deux types d’authentification différents pour exécuter ces erreurs, en fonction de votre configuration et de vos préférences, qu’il s’agisse de comptes locaux ou de l’authentification Microsoft Entra managée par AKS :
- Les comptes Kubernetes locaux sont stockés dans le serveur d’API Kubernetes et peuvent être utilisés pour authentifier et autoriser des requêtes au cluster. Découvrez d’autres informations sur les comptes locaux sur cette page : Gérer des comptes locaux.
- L’authentification Microsoft Entra managée par AKS vous permet de vous connecter et de gérer les autorisations pour votre cluster en utilisant les informations d’identification Microsoft Entra et Azure RBAC. Découvrez comment Activer l’authentification Microsoft Entra managée par AKS.
Remarque
Les autorisations de compte local octroient l’accès aussi longtemps que les informations d’identification se trouvent sur la machine du client, tandis que l’authentification Microsoft Entra managée par AKS permet une attribution plus étendue et une gestion des autorisations. Découvrez plus d’informations sur cette meilleure pratique : consultez Meilleures pratiques relatives à la sécurité et aux mises à niveau du cluster.
Chaos Studio prenait auparavant en charge uniquement l'utilisation de Chaos Mesh avec des comptes locaux, mais la version 2.2 de toutes les pannes AKS prend désormais en charge à la fois les comptes locaux et l'authentification Microsoft Entra.
Mettre à jour les cibles
Les cibles (Microsoft.Chaos/targets) représentent une autre ressource Azure dans le modèle de ressource de Chaos Studio. Vous pouvez donc facilement contrôler si une certaine ressource est activée ou non pour l’injection d’erreur et les erreurs qui peuvent s’y exécuter. Dans ce cas, la cible représente un cluster AKS que vous souhaitez affecter.
Si vous intégrez un cluster AKS comme nouvelle cible Chaos Studio dans Azure Portal, les nouvelles versions de pannes sont automatiquement disponibles.
Si vous souhaitez utiliser la nouvelle version d’erreur sur une cible AKS existante, vous devez mettre à jour la cible. Vous pouvez le faire de deux façons :
- Désactivez et réactivez la ressource cible.
- Pour l’effectuer dans le Portail Azure, visitez le volet Cibles dans l’interface du portail Chaos Studio, sélectionnez le ou les clusters AKS pertinents et Désactiver les cibles. Attendez une ou deux minutes ou la réception d’une notification de confirmation, puis sélectionnez Activer les cibles>Activer les cibles directes de service et suivez Vérifier et créer.
- Mettez à jour les fonctionnalités activées.
- Pour l’effectuer dans le Portail Azure, visitez le volet Cibles dans Chaos Studio, recherchez le ou les clusters AKS, sélectionnez Gérer les actions et veillez à ce que les capacités soient activées. Sélectionnez Enregistrer pour finaliser la mise à jour.
Si vous utilisez l’API ou la ligne de commande, suivez les instructions sur Créer une expérience de chaos qui utilise une erreur Chaos Mesh avec Azure CLI pour veiller à ce que les capacités les plus récentes soient activées.
Création d'une expérience
Lorsque vous créez un nouvel essai qui utilise des défauts AKS Chaos Mesh dans le portail Azure, vous pouvez voir deux versions de chaque défaut, comme « AKS Chaos Mesh DNS Chaos » et « AKS Chaos Mesh DNS Chaos (déconseillé) ». Sélectionnez la première option, et non l’option déconseillée.
Si vous ne voyez pas votre cluster AKS comme cible possible après avoir sélectionné la défaillance, vous devrez peut-être activer la nouvelle version de la défaillance sur le cluster. Visitez la page Cibles, recherchez votre cluster AKS, puis sélectionnez Gérer les actions, enfin veillez à ce que toutes les capacités soient sélectionnées avant de choisir Enregistrer.
Suivez le tutoriel Créer une expérience de chaos qui utilise une erreur Chaos Mesh pour tuer des pods AKS avec le Portail Azure pour créer une expérience.
Mettre à jour une expérience existante
Suivez l’une de ces deux méthodes pour mettre à jour votre expérience existante.
- Ouvrez l’expérience qui contient au moins une erreur AKS Chaos Mesh.
- Sélectionnez Modifier sur l’erreur et copiez la valeur de paramètre
jsonSpecsur votre Presse-papiers. - Ouvrez la liste déroulante de sélection d’erreur et sélectionnez la version de votre erreur souhaitée sans le marquage
(deprecated). - Collez le
jsonSpecdepuis votre presse-papiers dans le champ de paramètre. - Enregistrez l’erreur et l’expérience.
autorisations
Chaos Studio a besoin d’une autorisation pour exécuter des erreurs sur vos ressources.
Lors de la création d’une expérience dans le Portail Azure, vous pouvez éventuellement sélectionner Activer la création et l’attribution de rôles personnalisés pour permettre à Chaos Studio de tenter d’attribuer les autorisations nécessaires à l’identité managée de l’expérience.
Si vous choisissez de ne pas utiliser la création de rôle personnalisé ou si vous n’utilisez pas le Portail Azure, vous devez effectuer l’une des opérations suivantes après la création de votre expérience :
- Attribuez manuellement les rôles Administrateur RBAC Azure Kubernetes Service et Utilisateur de cluster Azure Kubernetes Service à l’identité managée d’expérience (affectée par le système ou affectée par l’utilisateur).
- Créez manuellement un rôle personnalisé autorisant la liste complète des opérations nécessaires dans des opérations RBAC.
- Créez manuellement un rôle personnalisé autorisant une liste partielle des opérations nécessaires et déployez un fichier YAML personnalisé. Ce processus est détaillé dans Principe des privilèges minimum facultatif.
Opérations RBAC
Les opérations RBAC suivantes sont utilisées pour les défaillances AKS Chaos Mesh :
- Actions :
- Microsoft.ContainerService/managedClusters/read
- Actions de données :
- 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
Accès facultatif avec les moindres privilèges
Si vous préférez ne pas octroyer l’accès en écriture/lecture complet ClusterRole et ClusterRoleBinding à l’identité d’expérience Chaos Studio, vous pouvez créer manuellement le rôle nécessaire et la liaison pour Chaos Mesh. Cette opération est nécessaire pour Chaos Mesh afin de veiller à ce que l’expérience soit autorisée à cibler l’espace de noms du tenant spécifié.
Il existe deux étapes pour cette configuration facultative.
Lors de l’attribution d’autorisations à l’identité gérée de l’expérience, utilisez un rôle personnalisé avec un ensemble limité d'autorisations. Les autorisations nécessaires sont les suivantes :
- Actions :
- Microsoft.ContainerService/managedClusters/read
- Actions de données :
- 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
- Actions :
Déployez la configuration YAML suivante pour créer le rôle et la liaison. Découvrez plus d’informations sur les déploiements dans la documentation AKS : Déployer un cluster Azure Kubernetes Service (AKS) à l’aide du Portail 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