Aller au contenu principal
Version : 2.6.7

Chaosctl

Traduction Bêta Non Officielle

Cette page a été traduite par PageTurner AI (bêta). Non approuvée officiellement par le projet. Vous avez trouvé une erreur ? Signaler un problème →

Chaosctl est un outil conçu pour faciliter le débogage de Chaos Mesh. Grâce à Chaosctl, vous pouvez simplifier le développement et le débogage de nouveaux types de chaos, et fournir des références utiles aux autres développeurs lors de la création d'une issue.

Obtenir Chaosctl

Pour les utilisateurs Linux, vous pouvez télécharger directement le fichier exécutable de Chaosctl.

curl -sSL https://mirrors.chaos-mesh.org/latest/chaosctl -O

Pour les utilisateurs Windows ou macOS, vous devez le compiler à partir du code source. Go v1.15 ou supérieur est recommandé pour la compilation. Procédez comme suit :

  1. Clonez le dépôt Chaos Mesh sur votre machine locale.

    git clone https://github.com/chaos-mesh/chaos-mesh.git
  2. Placez-vous dans le répertoire Chaos Mesh.

  3. Exécutez la commande suivante :

    make chaosctl

    Le fichier exécutable compilé se trouve dans bin/chaosctl.

Fonctionnalités

Actuellement, Chaosctl permet d'afficher les logs et les informations de débogage pour les expériences Chaos.

Affichage des logs

Pour afficher les logs de tous les composants Chaos Mesh, utilisez la commande chaosctl logs. Pour consulter l'aide et des exemples de cette fonctionnalité, utilisez chaosctl logs -h. Exemple de commande :

chaosctl logs -t 100 # Print the last 100 lines of logs from all components

Affichage des informations de débogage

Pour afficher les informations de débogage, utilisez la commande chaosctl debug. Pour consulter l'aide et des exemples, utilisez chaosctl debug -h. Lors du débogage, assurez-vous que Chaosctl est connecté au chaos-daemon correspondant. Si vous avez désactivé TLS (activé par défaut) lors du déploiement de Chaos Mesh, ajoutez l'option -i pour indiquer à Chaosctl que TLS n'est pas utilisé. Exemple de commande :

./chaosctl debug -i networkchaos web-show-network-delay

Actuellement, Chaosctl ne prend en charge que le débogage des types IOChaos, NetworkChaos et StressChaos.

Génération de certificats TLS pour Chaosd

Lorsqu'une requête est initiée entre Chaosd et Chaos Mesh, pour garantir la sécurité des communications entre les services Chaosd et Chaos-controller-manager, Chaos Mesh recommande d'activer le mode mTLS (Mutual Transport Layer Security).

Pour activer le mode mTLS, les paramètres de certificat TLS doivent être configurés dans Chaosd et Chaos Mesh. Assurez-vous donc que Chaosd et Chaos Mesh ont généré des certificats TLS, puis démarrez-les avec ces certificats comme paramètres.

  • Chaosd : Vous pouvez démarrer Chaosd avant ou après la configuration des paramètres de certificat TLS. Pour la sécurité des clusters, il est recommandé de configurer d'abord les paramètres TLS avant de démarrer Chaosd. Pour plus de détails, consultez Déployer le serveur Chaosd.

  • Chaos Mesh : Si vous avez déployé Chaos Mesh avec Helm, les paramètres de certificat TLS sont configurés par défaut.

Si votre Chaosd n'a pas généré de certificat TLS, vous pouvez utiliser Chaosctl pour le générer facilement via la ligne de commande. Dans les cas d'utilisation suivants, Chaosctl exécute les commandes selon différents scénarios.

Cas 1 : Les nœuds exécutant Chaosctl peuvent accéder aux clusters Kubernetes et se connecter à une machine physique via SSH.

Exécutez les commandes suivantes pour effectuer les opérations :

  • Commande : Utilisez chaosctl pm init :

    ./chaosctl pm init pm-name --ip=123.123.123.123 -l arch=amd64,anotherkey=value
  • Opération : La commande effectue les actions suivantes.

    • Génère simplement le certificat nécessaire pour Chaosd et l'enregistre sur la machine physique correspondante.
    • Crée la ressource PhysicalMachine correspondante dans les clusters Kubernetes.

Pour plus d'informations et des exemples, consultez chaosctl pm init -h.

Cas 2 : Les nœuds exécutant Chaosctl peuvent accéder aux clusters Kubernetes, mais ne peuvent pas se connecter à une machine physique via SSH.

Exécutez les commandes suivantes pour effectuer les opérations :

  1. Avant d'exécuter la commande, vous devez récupérer manuellement un certificat d'autorité de certification (CA) à partir des clusters Kubernetes à l'aide de commandes. Par exemple :

    kubectl get secret chaos-mesh-chaosd-client-certs -n chaos-mesh -o "jsonpath={.data['ca\.crt']}" | base64 -d > ca.crt

    kubectl get secret chaos-mesh-chaosd-client-certs -n chaos-mesh -o "jsonpath={.data['ca\.key']}" | base64 -d> ca.key
  2. Copiez les fichiers ca.crt et ca.key sur la machine physique correspondante. Par exemple, copiez les fichiers dans le répertoire /etc/chaosd/pki.

  3. Utilisez la commande chaosctl pm generate pour générer les certificats TLS (enregistrés par défaut dans /etc/chaosd/pki) sur la machine physique. Par exemple :

    ./chaosctl pm generate --cacert=/etc/chaosd/pki/ca.crt --cakey=/etc/chaosd/pki/ca.key

    Pour plus d'informations et des exemples sur cette fonctionnalité, consultez chaosctl pm generate -h.

  4. Utilisez la commande chaosctl pm create pour créer une ressource PhysicalMachine dans les clusters Kubernetes sur la machine ayant accès aux clusters Kubernetes. Par exemple :

    ./chaosctl pm create pm-name --ip=123.123.123.123 -l arch=amd64

    Pour plus d'informations et des exemples sur cette fonctionnalité, consultez chaosctl pm create -h.

Questions et retours

Le code de Chaosctl est actuellement hébergé dans le projet Chaos Mesh. Pour plus de détails, consultez chaos-mesh/pkg/chaosctl.

Si vous rencontrez des problèmes lors de l'exécution des opérations, ou si vous souhaitez nous aider à améliorer cet outil, vous pouvez contacter l'équipe Chaos Mesh via CNCF Slack ou créer un problème GitHub.

Lorsque vous décrivez vos problèmes, il est utile de joindre les journaux et les informations Chaos associés. Pour fournir des éléments de référence aux développeurs, il est recommandé d'inclure les résultats de chaosctl logs à vos questions. De plus, si votre question concerne iochaos, networkchaos ou stresschaos, les informations relatives à chaosctl debug peuvent également aider à diagnostiquer le problème.