Boostez Kubernetes avec ces outils géniaux

Cet article vous présentera quelques outils impressionnants qui peuvent être couplés à Kubernetes pour lui ajouter plus de puissance.

Lorsque vous travaillez dans un écosystème DevOps, vous réaliserez à quel point il est important de disposer d’outils DevOps incroyables pour faciliter votre charge manuelle. De nombreux outils DevOps sont disponibles pour chaque étape DevOps et différentes fonctionnalités.

Kubernetes est l’un des incontournables si vous travaillez dans le domaine DevOps et exécutez vos applications dans des conteneurs. Il existe des centaines d’outils qui fonctionnent en conjonction avec Kubernetes pour ajouter plus de fonctionnalités. Je parle d’outils pour une meilleure gestion, sécurité, tableau de bord, surveillance du cluster Kubernetes.

Voici une liste de ces outils incroyables qui ajoutent plus de puissance à votre Kubernetes.

Commençons!

Barre

Barre est un gestionnaire de packages pour Kubernetes qui facilite l’utilisation d’applications et de services hautement reproductibles ou utilisés dans de nombreux scénarios différents, ce qui facilite leur déploiement sur un cluster Kubernetes typique. À l’aide de Helm, vous pouvez rechercher, partager et utiliser le logiciel conçu pour Kubernetes.

Il utilise des graphiques, appelés Helm Charts, pour définir, installer et mettre à niveau des applications Kubernetes complexes.

Caractéristiques de la barre :

  • Prend en charge toute la complexité des applications Kubernetes à l’aide de graphiques
  • Utilise des mises à niveau et des crochets personnalisés pour mettre à jour les choses facilement.
  • Les graphiques peuvent être partagés facilement sur des serveurs publics ou privés.
  • Restauration facile avec une seule commande
  • Améliore la productivité des développeurs et améliore la préparation opérationnelle

Signaleur

Signaleur est un opérateur de livraison progressive pour Kubernetes.

Il automatise la promotion des déploiements Canary à l’aide d’Istio, App Mesh, Nginx, Linkerd, Contour, Gloo, le routage Skipper pour le déplacement du trafic et Prometheus pour l’analyse Canary. Dans le déploiement Canary, vous déployez les versions à un petit groupe d’utilisateurs, testez-le, si cela fonctionne correctement, vous déployez la version à tout le monde.

Il utilise le service mesh qui s’exécute dans votre cluster pour gérer le trafic entre un déploiement et un autre. Pour transférer le trafic vers Canary, il mesure des indicateurs de performance tels que la durée moyenne des requêtes, le taux de réussite des requêtes HTTP, la santé des pods, etc.

Flagger peut exécuter une analyse, une promotion et une restauration automatisées des applications pour plusieurs stratégies de déploiement telles que Canary, les tests A/B, le déploiement bleu/vert.

Kubewatch

Kubewatch est un observateur Kubernetes open-source qui envoie une notification via le canal slack.

Il est écrit sur la programmation Go et développé par Bitnami Labs. Il est utilisé pour surveiller les ressources Kubernetes et avertit en cas de changement.

Vous pouvez installer Kubewatch via kubectl ou en utilisant des graphiques Helm. Il est simple à comprendre et possède une interface très facile à utiliser. Outre le mou, il prend également en charge HipChat, Mattermost, Flock, webhook et SMTP.

Selon les Kubernetes que vous souhaitez surveiller, vous pouvez définir true ou false pour ces ressources dans le fichier ConfigMap. Une fois que vous avez défini la configuration de kubewatch et exécuté un pod, vous commencerez à recevoir des notifications sur l’événement Kubernetes, comme indiqué ci-dessous.

Gitkube

Gitkube est un outil qui utilise git push pour créer et déployer des images Docker sur Kubernetes. Il comporte trois composants – Remote, gitkube-controller, gitkubed. Remote se compose de ressources personnalisées gérées par gitkube-controller. gitkube-controller envoie les modifications à gitkubed, qui construit ensuite l’image docker et la déploie.

Fonctionnalités de Gitkube :

  • Facile à installer, branchez et jouez
  • Fournit un contrôle d’accès basé sur les rôles pour la sécurité
  • Simple à authentifier à l’aide d’une clé publique
  • Un espace de noms pour la multilocation est pris en charge
  • Pas de dépendances supplémentaires à part kubectl et git

kube-state-metrics

kube-state-metrics est un service qui génère des métriques d’objet d’état en écoutant le serveur d’API Kubernetes. Il est utilisé pour vérifier la santé de divers objets tels que les nœuds, les pods, les espaces de noms et les déploiements. Il vous fournit des données brutes non modifiées à partir de l’API Kubernetes.

Vous trouverez ci-dessous les informations fournies par kube-state-metrics :

  • Tâches Cron et statut des tâches
  • Statut des pods (prêt, en cours d’exécution, etc.)
  • Demandes de ressources et leur gamme
  • Capacité du nœud et son état
  • Spécification des jeux de répliques

Kamus

Kamus est un outil GitOps open-source qui est utilisé pour le chiffrement et le déchiffrement des secrets pour les applications Kubernetes. Les secrets chiffrés que fait Kamus ne peuvent être déchiffrés que par des applications s’exécutant sur le cluster Kubernetes. Il utilise AES, Google Cloud KMS, Azure KeyVault pour le chiffrement des secrets. Vous pouvez commencer avec Kamus en utilisant le tableau de bord.

Kamus est livré avec deux utilitaires – Kamus CLI et Kamus init container. Kamus CLI est utilisé pour l’intégration avec l’API de cryptage, et le conteneur d’initialisation Kamus est utilisé pour l’intégration avec le décryptage de l’API.

Les secrets simples de Kubernetes ne sont pas chiffrés ; ils sont encodés en base64. Vous ne pouvez pas le garder tel quel sur Git ; ce n’est pas sécurisé. Toute personne ayant accès au dépôt pourra utiliser ces secrets. Par conséquent, une solution de cryptage/décryptage appropriée est nécessaire, comme Kamus. Il fournit également un modèle de menace qui prend en charge les menaces et sécurise les secrets.

Détraquer

Détraquer est un outil open source utilisé dans Kubernetes pour trouver des recours non suivis et les ramasser. Il vous aide à trouver et à supprimer ces fichiers du cluster, qui ne sont pas suivis.

Après avoir injecté les manifestes dans votre pipeline CI/CD à l’aide de kubectl apply ou du modèle helm, Kubernetes ne sait pas quand l’objet sera supprimé du référentiel. Une fois les objets supprimés, ils ne sont pas suivis dans le processus de livraison et résident toujours sur le cluster Kubernetes.

Il exécute la commande en interne à l’aide d’un simple fichier de configuration untrak.yaml pour découvrir les ressources qui ne font plus partie de la gestion de votre code source.

Portée

Portée du tissage sert à visualiser, surveiller et dépanner Docker et Kubernetes.

Il vous montre une vue descendante de votre application conteneurisée et de l’infrastructure complète à l’aide de laquelle vous pouvez facilement identifier les problèmes et les diagnostiquer.

Exécuter des applications d’architecture de microservices dans des conteneurs Docker n’est pas si simple. Les composants ici sont très dynamiques et difficiles à contrôler. Avec weave scope, vous pouvez facilement dépanner les fuites de mémoire et contrôler la consommation du processeur, visualiser les goulots d’étranglement du réseau.

Caractéristiques de la portée :

  • Vous aide à surveiller vos conteneurs Docker en temps réel
  • Fournit une navigation facile entre les processus exécutés dans les conteneurs
  • Affiche l’utilisation du processeur et de la mémoire par l’hôte ou le service
  • Redémarrez, arrêtez ou suspendez les conteneurs à l’aide de la CLI sans quitter la fenêtre du navigateur de portée.
  • Prend en charge les plugins personnalisés pour obtenir plus de détails sur les conteneurs, les processus et les hôtes

Tableau de bord Kubernetes

Tableau de bord Kubernetes est une interface Web fournie par Kubernetes. Il est utilisé pour déployer, dépanner et gérer l’application conteneurisée sur un cluster Kubernetes. Il donne toutes les informations sur un cluster, telles que les détails sur les nœuds, les espaces de noms, les rôles, les charges de travail, etc.

Vous pouvez utiliser des graphiques Helm pour déployer le tableau de bord Kubernetes ou utiliser une simple commande kubectl mentionnée ci-dessous :

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.4/aio/deploy/recommended.yaml

Cops

Cops signifie opérations Kubernetes, un projet open source utilisé pour configurer très facilement et rapidement des clusters Kubernetes prêts pour la production. Kops peut être utilisé pour déployer des clusters Kubernetes sur AWS et GCE principalement.

Un cluster Kubernetes de petite taille est facile à créer et à gérer, mais lorsque vous faites évoluer votre cluster, de nombreuses configurations sont ajoutées et il devient difficile à gérer de manière opérationnelle. Kops est un outil qui vous aide à résoudre de tels problèmes. Il suit une approche basée sur la configuration où il maintient le cluster toujours à jour et sûr.

Kops dispose également de nombreux backends de mise en réseau, et le choix de l’un d’entre eux, en fonction du cas d’utilisation, vous permet de configurer facilement différents types de clusters.

cConseiller

cConseiller est un outil open source pour surveiller un conteneur. Il est utilisé pour comprendre les caractéristiques de performance et l’utilisation des ressources des conteneurs exécutés sur le cluster.

Il fonctionne au niveau du nœud et peut découvrir automatiquement tous les conteneurs exécutés sur un nœud particulier et collecte des statistiques sur la mémoire, le système de fichiers, le processeur et le réseau. Il fournit une interface Web qui affiche les données en direct de tous les conteneurs du cluster.

Pour démarrer avec cAdvisor, vous devez exécuter son image docker google/cadvisor, puis vous pouvez y accéder à l’adresse http://localhost:8080 dans un navigateur Web.

Kubespray

Kubespray est un outil gratuit qui a été créé en combinant les playbooks Ansible et Kubernetes. Il est utilisé pour la gestion du cycle de vie du cluster Kubernetes.

En utilisant Kubespray, vous pouvez déployer un cluster rapidement et personnaliser tous les paramètres d’une implémentation de cluster comme les modes de déploiement, les plugins réseau, la configuration DNS, les versions des composants, les méthodes de génération de certificats, etc.

En exécutant simplement un simple ansible-playbook, votre cluster est opérationnel. Vous pouvez facilement faire évoluer ou mettre à niveau votre cluster Kubernetes.

K9

K9 est un outil open source basé sur un terminal, et son utilitaire de tableau de bord peut faire tout ce qu’une interface utilisateur Web Kubernetes fait. Il est utilisé pour naviguer, observer et gérer l’application déployée sur le cluster Kubernetes.

Caractéristiques du K9 :

  • Suivez votre cluster en temps réel
  • Personnalisez l’affichage par ressource
  • Zoom sur les problèmes de ressources de cluster
  • Prend en charge le contrôle d’accès basé sur les rôles
  • Benchmarks intégrés pour valider les performances des ressources

KubetailName

KubetailName est un simple script bash utilisé pour agréger les journaux de plusieurs pods dans un seul flux.

Très utile!

Il vous aide à déboguer facilement.

La dernière version de Kubetail dispose également de fonctionnalités de mise en surbrillance et de filtrage. Cette fonction vous permet d’effectuer une coloration du journal. En utilisant homebrew, vous pouvez installer Kubetail avec une seule commande. Vous pouvez ajouter des valeurs par défaut dans les variables d’environnement que Kubetail peut lire comme KUBETAIL_NAMESPACE, KUBETAIL_TAIL, KUBETAIL_SKIP_COLORS etc.

Sceau puissant

Sceau puissant est un puissant outil d’ingénierie du chaos open source écrit en python pour les clusters Kubernetes.

L’ingénierie du chaos est utilisée pour obtenir la confiance du système afin de vérifier sa capacité à faire face à des situations problématiques en production. Il injecte l’échec dans le cluster Kubernetes pour identifier les problèmes le plus tôt possible.

Il est inspiré de Netflix Chaos Monkey et est utilisé pour améliorer la résilience de Kubernetes. À l’aide de PowerfulSeal, les ingénieurs essaient sciemment de casser des choses sur le cluster pour vérifier la réaction du système.

PowerfulSeal fonctionne en trois modes – Autonome, Interactif, Label.

En mode autonome, il exécute des scénarios en lisant un fichier de stratégie que vous fournissez. En mode interactif, il vous informe sur les composants du cluster que vous essayez manuellement de casser. En mode étiquette, vous tuez des objets ciblés sur le cluster comme des pods à l’aide d’étiquettes.

Popeye

Popeye est un utilitaire de nettoyage qui agit comme un désinfectant 🧼 pour les clusters Kubernetes.

Il analysera le cluster complet et signalera les problèmes liés aux configurations et aux ressources. Il vous aide à appliquer les meilleures pratiques sur le cluster Kubernetes pour éviter les problèmes courants.

Cet utilitaire est disponible pour Windows, Linux et macOS. Actuellement, cela ne fonctionne qu’avec des nœuds, des pods, des espaces de noms et des services. À l’aide de Popeye, vous pouvez facilement identifier les ressources mortes et inutilisées, les incompatibilités de ports, les règles RBAC, l’utilisation des métriques et bien plus encore.

Conclusion

Les outils DevOps jouent un rôle essentiel dans le succès, et j’espère que ce qui précède vous aidera à mieux gérer Kubernetes.