Images d'Anthony Smith / Shutterstock.comNous créons Kubernetes en tant que service cloud et surveillons de près les derniers outils des développeurs d'applications de conteneurs. Dans cet article, nous parlerons des outils qui facilitent considérablement le travail avec les déploiements de Kubernetes et aident à créer des CI / CD.
Déploiement du cluster Kubernetes
Jeu de rôles Ansible pour le déploiement et la configuration de Kubernetes. Kubespray fonctionne sur AWS, GCE, Azure, Mail.Ru Cloud Solutions, OpenStack et IaaS bare metal. Kubespray est un projet open source et open source avec kubeadm sous son capot.
Grâce à Kubespray, pour créer des ressources (machines virtuelles, réseaux, équilibreurs, etc.) et l'orchestration suffit pour connaître Ansible, d'autres outils ne sont pas nécessaires. Si vous connaissez Ansible, cela peut vous aider beaucoup.
Coût : gratuit
Outil de distribution Kubernetes depuis la version 1.4. Aide à initialiser les clusters Kubernetes dans leurs meilleures configurations sur leur infrastructure existante.
Kubeadm n'est pas en mesure de créer dynamiquement l'infrastructure nécessaire dans le cloud. Son principal avantage est qu'il peut exécuter des clusters Kubernetes peu viables dans n'importe quel environnement. Cependant, les modules complémentaires et les paramètres réseau ne sont pas inclus avec Kubeadm, vous devez donc tout configurer manuellement ou utiliser d'autres outils.
Coût : gratuit
Vous aide à créer, supprimer, mettre à niveau et maintenir des clusters de basculement industriels Kubernetes à partir de la ligne de commande. Cet outil prend officiellement en charge Amazon Web Services (AWS). La prise en charge de GCE est en version bêta et VMware vSphere est en version alpha. Il prévoit également de prendre en charge d'autres plates-formes, notamment OpenStack. Kops vous permet de contrôler le cycle de vie complet d'un cluster Kubernetes - du provisionnement de l'infrastructure à la suppression du cluster.
Coût : gratuit.
Clusters Kubernetes en tant que service cloud. Avec lui, vous pouvez préparer un cluster pour le travail en quelques minutes sans le configurer, ainsi que le mettre à jour vers la version souhaitée. Les clusters sont facilement évolutifs et fonctionnent sur l'infrastructure de Mail.Ru, qui est affinée pour les services très chargés.
Le coût dépend de la configuration. Par exemple, un environnement de test de deux nœuds et d'un maître coûte 3200 roubles par mois. Vous pouvez tester gratuitement.
Suivi
La console de terminal pour le cluster Kubernetes, avec laquelle vous pouvez gérer le cluster et surveiller son état en temps réel via la bonne vieille interface. Kubebox montre comment les ressources du foyer sont impliquées, surveille le cluster, affiche les journaux des conteneurs, etc. Même dans celui-ci, vous pouvez facilement accéder à l'espace de noms souhaité et exécuter la commande dans le bon conteneur pour dépanner ou restaurer rapidement le travail.
Coût : gratuit.
Fournit une interface utilisateur pour l'analyse des performances. Agrège et résume les mesures de diverses sources, montre aux administrateurs des données analytiques de haut niveau. Kubedash utilise Heapster comme source de données, qui s'exécute comme service par défaut sur tous les clusters Kubernetes et collecte des métriques et des analyses dans chaque conteneur.
Coût : gratuit.
Interface utilisateur open source pour Kubernetes, qui peut être utilisée à la place de la console native kubectl. L'outil est intéressant non seulement pour les développeurs, mais aussi pour les chefs de projet, car il permet de surveiller les projets en cours d'exécution dans le cluster Kubernetes dans une interface intuitive. L'outil vous permet de gérer les applications en cours d'exécution, s'intègre aux pipelines CI / CD. L'interface utilisateur de Containerum sera particulièrement utile pour ceux qui maîtrisent simplement Kubernetes.
Coût : gratuit.
Un petit script bash pour agréger les journaux de nombreux foyers en un seul thread. La version originale de Kubetail ne sait pas filtrer ou sélectionner, mais sur Github il y a une fourchette distincte qui peut coloriser les journaux en utilisant MultiTail.
Coût : gratuit.
Un outil de dépannage et de surveillance des clusters Docker Swarm et Kubernetes. Weave Scope génère automatiquement des topologies et des architectures d'application, ce qui aide à trouver les goulots d'étranglement des applications. Vous pouvez déployer Weave Scope en tant qu'application autonome sur un serveur local ou un ordinateur portable, ou l'utiliser comme SaaS dans Weave Cloud. Avec l'aide de Weave Scope, il est facile de regrouper, filtrer et rechercher des conteneurs par nom, étiquette, consommation de ressources. Fonctionnalité inattendue utile: vous pouvez vous connecter aux nœuds Kubernetes en tant qu'utilisateur root à partir de la console Web sans accès via ssh.
Coût : mode hors ligne - gratuit; version standard SaaS - 30 $ / mois. par nœud (essai de 30 jours); version entreprise - 150 $ / mois. par nœud.
Un outil de surveillance et de notification open source inspiré de Google Borg Monitor. Prometheus vous permet de créer vos propres métriques (il existe une intégration avec tous les langages de programmation populaires), et contient également un grand nombre d'intégrations prêtes à l'emploi (exportateurs) avec diverses technologies: PostgreSQL, MySQL, AWS Cloudwatch, ETCD et Kubernetes.
Prometheus est devenu la norme de surveillance de facto pour Kubernetes. Il existe un
opérateur Prometheus spécial qui vous permet de créer des instances Prometheus dans des clusters Kubernetes, y compris une intégration étroite avec Grafana et Alertmanager.
Coût : gratuit
Opérateur Kubernetes pour
Icinga . Searchlight exécute régulièrement des vérifications sur les clusters Kubernetes et, en cas de problème, vous envoie un e-mail, un SMS ou un chat. Searchlight comprend une suite de tests par défaut spécifiquement pour Kubernetes.
Searchlight étend les capacités de surveillance de Prometheus en tant que service de surveillance de boîte noire externe et sert de système de sauvegarde en cas de défaillance complète des systèmes internes.
Coût : gratuit.
Tableau de bord système en lecture seule qui peut fonctionner avec de nombreux clusters Kubernetes. En utilisant Kube-ops-view, vous pouvez facilement naviguer entre les clusters, suivre les nœuds et l'état des foyers. Kube-ops-view anime certains processus, tels que la création et la destruction de foyers. L'outil utilise également Heapster comme source de données.
Coût : gratuit.
La sécurité
Aquasec protège les installations de Kubernetes tout au long de son cycle de vie. Sur chaque conteneur, la solution déploie un agent dédié qui agit comme un pare-feu et bouche les trous dans la sécurité du conteneur. L'agent interagit avec la console de gestion centrale Aquasec, qui gère les restrictions de sécurité. Aquasec aide également à mettre en place un pipeline flexible pour implémenter des mécanismes de sécurité dans les environnements cloud et locaux.
Un autre outil open source est associé à Aquasec - Kube-Bench, qui vérifie l'environnement Kubernetes par rapport à une longue liste de tests du document CIS Kubernetes Benchmark.
Coût : 0,29 $ par numérisation.
Un autre outil qui agit comme un pare-feu basé sur le cloud pour les applications (Cloud Native Application Firewall) et analyse le trafic réseau entre les conteneurs et les services. Twistlock analyse le comportement standard des conteneurs et génère des règles basées sur ce comportement, afin que les administrateurs n'aient pas à créer de règles manuellement. Twistlock prend également en charge CIS Benchmark pour Kubernetes à partir de la version 2.2.
Coût : à partir de 1700 $ pour une licence annuelle, il y a une période d'essai.
Un composant de la plate-forme Sysdig Container Intelligence est une solution autonome. Fournit une visibilité des conteneurs et s'intègre aux instruments d'orchestration, notamment Kubernetes, Docker, AWS ECS et Apache Mesos. Grâce à Sysdig Secure, un utilisateur peut mettre en œuvre des politiques orientées services, bloquer les attaques, analyser l'historique et surveiller les performances du cluster. Sysdig Secure est disponible en tant qu'application cloud et sur site.
Coût : gratuit pour une utilisation hors ligne. Le prix de la version Pro pour le cloud et sous forme de logiciel dépend de la configuration.
Un service qui évalue comment les ressources Kubernetes exploitent les capacités de sécurité. Kubesec.io vérifie les configurations de ressources pour les meilleures pratiques. L'utilisateur reçoit un contrôle total et des recommandations pour améliorer la sécurité globale du système. Le site Web du projet contient de nombreux liens vers des sources externes sur la sécurité des conteneurs et Kubernetes.
Coût : gratuit
Utilitaires utiles
Générateur d'alias très simple mais incroyablement puissant pour kubectl. Vous permet d'écrire des commandes beaucoup plus rapidement pour l'administration quotidienne de Kubernetes, fournissant plus de 800 courts alias pour toutes les occasions.
Coût: gratuit.
Panneau de gestion à distance des clusters Kubernetes à partir d'un appareil mobile (Android et iOS). Avec Cabin, vous pouvez gérer les applications, faire évoluer le déploiement et dépanner un cluster. Aide les opérateurs de cluster Kubernetes à répondre rapidement aux incidents de n'importe où.
Coût : gratuit.
Un petit utilitaire open source qui complète les fonctionnalités de Kubectl, ce qui facilite le changement de contexte et la connexion à plusieurs clusters Kubernetes simultanément. Kubens vous permet de naviguer entre les espaces de noms Kubernetes. Les deux outils prennent en charge le remplissage automatique dans les coquilles bash / zsh / fish.
Coût : gratuit.
Aide à travailler plus rapidement avec kubectl. Fournit l'auto-complétion des équipes et offre des options. Il peut même rechercher et corriger des commandes entrées incorrectement. Kube-shell affiche une aide en ligne sur les commandes qui sont exécutées.
Coût : gratuit.
Kail est l'abréviation de Kubernetes Tail. Cet outil fonctionne avec les clusters Kubernetes et permet de suivre les journaux Docker pour les bons foyers. Kail vous permet de filtrer les modules par service, déploiement, étiquette et autres paramètres. Les pods seront automatiquement ajoutés au journal (ou supprimés de celui-ci) après le lancement s'il répond aux critères de filtrage.
Coût : gratuit.
Outils CI / CD
Le serveur CI / CD open source le plus populaire au monde. Pour lui, il existe un
plug-in gratuit qui vous permet de déployer des applications dans Kubernetes, d'effectuer leurs mises à jour continues (mises à jour consécutives avec minimisation des temps d'arrêt), ainsi que d'implémenter le déploiement vert / bleu des mises à jour.
Ce billet fournit un scénario détaillé de cette configuration.
Coût : gratuit.
Service CI / CD populaire de l'équipe JetBrains. Avec
ce plugin, vous pouvez utiliser l'infrastructure de cluster Kubernetes pour exécuter les agents de génération TeamCity. Le plugin prend en charge TeamCity version 2017.1.x et versions ultérieures.
Coût : jusqu'à trois agents de construction et 100 configurations de construction gratuitement. 299 $ pour une licence qui vous permet d'utiliser un agent de build supplémentaire et 10 configurations de build supplémentaires.
Visualisation et contrôle
Interface Web générique pour les clusters Kubernetes. L'utilisation de ce panneau de configuration natif est beaucoup plus facile à dépanner et à surveiller les clusters. Pour accéder au panneau, vous devez créer un canal proxy sécurisé entre votre machine et le serveur API Kubernetes. Le tableau de bord natif de Kubernetes repose sur l'outil de collecte de données Heapster, il doit donc être installé sur le système. Malgré le fait que Heapster n'est pas officiellement recommandé pour une utilisation (obsolète), une alternative à part entière n'existe pas encore.
Coût : gratuit.
Interface Web pour le répertoire d'application dans les clusters Kubernetes. Vous permet d'installer, de mettre à jour et de supprimer des graphiques Helm d'un simple clic, sans utiliser la ligne de commande.
Coût : gratuit.
Dans le prochain article, nous parlerons d'outils avancés pour les développeurs.