Créer une expérience de chaos qui utilise une erreur Chaos Mesh pour tuer des pods AKS avec le portail Azure
Vous pouvez utiliser une expérience de chaos pour vérifier que votre application résiste aux défaillances en les provoquant dans un environnement contrôlé. Dans cet article, vous entraînez des échecs périodiques de pod Azure Kubernetes Service (AKS) sur un espace de noms à l’aide d’une expérience de chaos et d’Azure Chaos Studio. L’exécution de cette expérience peut vous aider à vous défendre contre l’indisponibilité du service en cas de défaillances sporadiques.
Chaos Studio utilise Chaos Mesh, une plateforme d’ingénierie de chaos open source gratuite pour Kubernetes, pour injecter des erreurs dans un cluster AKS. Les erreurs Chaos Mesh sont des erreurs de service-direct qui nécessitent l’installation de Chaos Mesh sur le cluster AKS. Vous pouvez utiliser ces mêmes étapes pour configurer et exécuter une expérience pour toute erreur AKS Chaos Mesh.
Prérequis
- Un abonnement Azure. Si vous n’avez pas d’abonnement Azure, créez un compte gratuit Azure avant de commencer.
- Un cluster AKS avec un pool de nœuds Linux. Si vous n’avez pas de cluster AKS, consultez le guide de démarrage rapide AKS qui utilise Azure CLI, Azure PowerShell ou le Portail Azure.
Limites
- Vous pouvez utiliser des erreurs Chaos Mesh avec des clusters privés en configurant l’injection de réseau virtuel dans Chaos Studio. Toutes les commandes émises sur le cluster privé, y compris les étapes décrites dans cet article pour configurer Chaos Mesh, doivent suivre les instructions du cluster privé. Les méthodes recommandées incluent la connexion à partir d’une machine virtuelle dans le même réseau virtuel ou l’utilisation de la fonctionnalité d’appel de commande AKS.
- Les défauts AKS Chaos Mesh sont uniquement pris en charge sur les pools de nœuds Linux.
- Actuellement, les erreurs Chaos Mesh ne fonctionnent pas si le cluster AKS a des comptes locaux désactivés.
- Si votre cluster AKS est configuré pour autoriser uniquement les plages d’adresses IP autorisées, vous devez autoriser les plages d’adresses IP de Chaos Studio. Vous pouvez les trouver en interrogeant l’étiquette de
ChaosStudio
service avec l’API Découverte des balises de service ou les fichiers JSON téléchargeables.
Configurer Chaos Mesh sur votre cluster AKS
Avant de pouvoir exécuter des erreurs Chaos Mesh dans Chaos Studio, vous devez installer Chaos Mesh sur votre cluster AKS.
Exécutez les commandes suivantes dans une fenêtre Azure Cloud Shell dans laquelle l’abonnement actif est défini comme étant l’abonnement dans lequel votre cluster AKS est déployé. Remplacez
$RESOURCE_GROUP
et$CLUSTER_NAME
par le groupe de ressources et le nom de votre ressource de cluster.az aks get-credentials -g $RESOURCE_GROUP -n $CLUSTER_NAME
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
Vérifiez que les pods Chaos Mesh sont installés en exécutant la commande suivante :
kubectl get po -n chaos-testing
Vous devez voir la sortie similaire à l’exemple suivant (un chaos-controller-manager et un ou plusieurs chaos-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
Vous pouvez également utiliser les instructions d’installation sur le site Web de Chaos Mesh.
Activer Chaos Studio sur votre cluster AKS
Chaos Studio ne peut pas injecter d’erreurs sur une ressource, sauf si cette ressource est ajoutée à Chaos Studio en premier. Vous ajoutez une ressource à Chaos Studio en créant une cible et des fonctionnalités sur la ressource. Les clusters AKS n’ont qu’un seul type cible (service direct), mais d’autres ressources peuvent avoir jusqu’à deux types cibles. Un type cible est destiné aux erreurs directes de service. Un autre type cible est destiné aux erreurs basées sur l’agent. Chaque type d’erreur Chaos Mesh est représenté sous la forme d’une fonctionnalité telle que PodChaos, NetworkChaos et IOChaos.
Ouvrez le portail Azure.
Recherchez Chaos Studio dans la barre de recherche.
Sélectionnez Cibles et accédez à votre cluster AKS.
Sélectionnez la case activée box en regard de votre cluster AKS. Sélectionnez Activer les cibles , puis activez les cibles directes du service dans le menu déroulant.
Assurez-vous que la ressource souhaitée est répertoriée. Sélectionnez Vérifier + Activer, puis Activer.
Une notification s’affiche indiquant que les ressources que vous avez sélectionnées ont été correctement activées.
Vous avez maintenant ajouté votre cluster AKS à Chaos Studio. Dans la vue Cibles , vous pouvez également gérer les fonctionnalités activées sur cette ressource. Sélectionnez le lien Gérer les actions en regard d’une ressource pour afficher les fonctionnalités activées pour cette ressource.
Créer une expérience
Vous pouvez maintenant créer votre expérience. Une expérience de chaos définit les actions que vous souhaitez entreprendre sur les ressources cibles. Les actions sont organisées et exécutées en étapes séquentielles. L’expérience chaos définit également les actions que vous souhaitez entreprendre sur les branches, qui s’exécutent en parallèle.
Sélectionnez l’onglet Expériences dans Chaos Studio. Dans cette vue, vous pouvez voir et gérer toutes vos expériences de chaos. Sélectionnez Créer>Nouvelle expérience.
Renseignez les champs Abonnement, Groupe de ressourceset Emplacement, là où vous souhaitez déployer l’expérience de chaos. Donnez un nom à votre expérience. Sélectionnez Suivant : concepteur d’expériences.
Vous êtes maintenant dans le concepteur d’expériences Chaos Studio. Le concepteur d’expérience vous permet de créer votre expérience en ajoutant des étapes, des branches et des erreurs. Attribuez un nom convivial à votre étape et à votre branche, puis sélectionnez Ajouter une erreur d’action >.
Sélectionnez AKS Chaos Mesh Pod Chaos dans la liste déroulante. Renseignez la durée avec le nombre de minutes que vous souhaitez que l’échec soit le dernier et jsonSpec avec les informations suivantes :
Pour formuler votre maillage
jsonSpec
chaos :Consultez la documentation Chaos Mesh pour un type d’erreur, par exemple, le type PodChaos.
Formulez la configuration YAML pour ce type d’erreur à l’aide de la documentation Chaos Mesh.
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
Supprimez n’importe quel YAML en dehors du (y compris le nom de
spec
la propriété de spécification) et supprimez la mise en retrait des détails des spécifications. Leduration
paramètre n’est pas nécessaire, mais est utilisé s’il est fourni. Dans ce cas, supprimez-le.action: pod-failure mode: all selector: namespaces: - default
Utilisez un convertisseur YAML vers JSON comme celui-ci pour convertir la configuration YAML de Chaos Mesh en JSON et la réduire.
{"action":"pod-failure","mode":"all","selector":{"namespaces":["default"]}}
Collez le code JSON réduit dans le champ jsonSpec du portail.
Sélectionnez Suivant : ressources cibles.
Sélectionnez votre cluster AKS, puis sélectionnez Suivant.
Vérifiez que votre expérience semble correcte et sélectionnez Vérifier + créer>.
Accordez l’autorisation d’expérience à votre cluster AKS
Lorsque vous créez une expérience de chaos, Chaos Studio crée une identité managée affectée par le système qui exécute des erreurs sur vos ressources cibles. Cette identité doit avoir les autorisations appropriées sur la ressource cible pour que l’expérience s’exécute correctement.
Accédez à votre cluster AKS et sélectionnez Contrôle d’accès (IAM) .
Sélectionnez Ajouter>Ajouter une attribution de rôle.
Recherchez le rôle Administrateur de cluster Azure Kubernetes Service et sélectionnez le rôle. Cliquez sur Suivant.
Choisissez Sélectionner des membres, puis recherchez le nom de votre expérience. Sélectionnez votre expérience, puis choisissez Sélectionner. S’il existe plusieurs expériences dans le même locataire portant le même nom, votre nom d’expérience est tronqué avec des caractères aléatoires ajoutés.
Sélectionnez Vérifier + affecter la révision + attribuer>.
Exécuter votre expérience
Vous êtes maintenant prêt à exécuter votre expérience. Pour voir l’effet, nous vous recommandons d’ouvrir votre vue d’ensemble du cluster AKS et d’accéder à Recommandations dans un onglet de navigateur distinct. Les données actives pour le nombre de pods actifs affichent l’effet de l’exécution de votre expérience.
Dans la vue Expériences , sélectionnez votre expérience. Sélectionnez Démarrer>OK.
Lorsque l’état passe à l’exécution, sélectionnez Détails de la dernière exécution sous Historique pour afficher les détails de l’expérience en cours d’exécution.
Étapes suivantes
Maintenant que vous avez exécuté une expérience directe de service AKS Chaos Mesh, vous êtes prêt à :