Flagger – Monitorer vos déploiements Canary avec Grafana
Fabian Piau | dimanche 28 juin 2020 - 18:0717 Octobre 2020 : Utilisation de versions plus récentes (Helm 3, Kube 18, Istio 1.7, Flagger 1.2).
Cet article est le troisième de la série consacrée à Flagger. En bref, Flagger est un outil de livraison progressive qui automatise le processus de livraison des applications s’exécutant sur Kubernetes. Il réduit le risque d’introduire une nouvelle version logicielle en production en augmentant progressivement le trafic vers la nouvelle version tout en mesurant les métriques et en exécutant des tests de conformité.
Assurez-vous d’avoir un cluster Kubernetes avec le service mesh Istio qui tourne sur votre machine en local. Sinon, lisez le premier article: Flagger – Premiers pas avec Istio et Kubernetes. Vous devez également vous familiariser avec Flagger et MHS, vous trouverez tous les détails dans le second article: Flagger – Déploiements Canary sur Kubernetes.
Dans ce troisième tutoriel, nous nous concentrerons sur l’installation de Grafana pour Flagger et sur la façon dont vous pouvez surveiller vos déploiements Canary sans avoir à utiliser Kubernetes (c’est-à-dire en vous passant du Kube dashboard ou l’outil de ligne de commande kubectl
).
Ce guide est un « hands-on » et peut être suivi pas à pas par les utilisateurs sous MacOS. Il nécessitera quelques ajustements si vous utilisez un PC sous Windows ou Linux. Il est important de signaler que cet article ne s’attardera pas sur les concepts et technologies en détail donc si vous n’êtes pas familier avec Docker, Kubernetes, Helm ou Istio, je vous conseille fortement de vous documenter avant de poursuivre votre lecture.
Installation de Grafana
Flagger fournit un tableau de bord Grafana prêt à l’emploi pour monitorer tous les déploiements Canary dans votre cluster.
Installons Grafana en exécutant cette commande. Nous installons Grafana dans le namespace istio-system
.
--namespace=istio-system \
--set url=http://prometheus:9090 \
--set user=admin \
--set password=changeme
Référence: Monitorer Flagger
Flagger dépend des métriques fournies par Istio et de Prometheus (dans notre cas, nous supposons qu’Istio est installé dans le namespaceistio-system
).
Après quelques secondes, vous devriez recevoir une confirmation que Grafana pour Flagger a bien été installé. Depuis le Kube dashboard, vérifiez que le pod Flagger Grafana est présent et a démarré dans istio-system
.
Pour exposer Grafana, exécutez:
Vous pouvez ainsi y accéder avec votre navigateur à l’adresse http://localhost:3000/d/flagger-istio/istio-canary. Utilisez l’identifiant et le mot de passe que vous avez spécifiés auparavant (admin
/ changeme
).
Notez que, lorsque nous utilisons Istio, nous utilisons le tableau de bord Istio Canary. Il existe d’autres tableaux de bord disponibles car Flagger est compatible avec d’autres service mesh.
Exécution de déploiements Canary
Si vous avez suivi l’article précédent, assurez-vous de sélectionner application
pour Namespace et d’associer mhs-primary
à Primary et mhs
à Canary.
Ensuite, réessayez les différentes expériences que nous avions réalisées dans l’article précédent et surveiller le tableau de bord Grafana en même temps, en particulier:
- Expérience 1 – Déploiement réussi de MHS v1.1.2
- Expérience 2 – Déploiement en échec de MHS version v1.1.3
Résultats
Jetez un oeil à cette capture d’écran que j’ai prise lors de l’expérience 1 lorsque le déploiement Canary s’est bien déroulé et que la nouvelle version a été déployée. J’ai annoté et ajouté des explications à la capture, il est donc plus facile de comprendre les graphiques.
Et voici une capture d’écran similaire pour l’expérience 2 lorsque le déploiement Canary n’a pas réussi et que la nouvelle version n’a pas été déployée.
Félicitations, vous êtes arrivé à la fin de ce troisième tutoriel!
Nettoyage des ressources
Vous pouvez supprimer l’application MHS et son namespace. Nous pouvons aussi supprimer Istio et Flagger car c’est le dernier article de cette série.
Vous pouvez aussi arrêter le cluster Kubernetes en décochant la case et redémarrant Docker Desktop.
Commentaires récents