11 outils qui améliorent Kubernetes

11 outils qui améliorent Kubernetes

Toutes les plates-formes de serveurs, même les plus puissantes et les plus évolutives, ne répondent pas telles quelles à tous les besoins. Bien que Kubernetes fonctionne très bien seul, il lui manque peut-être les éléments adéquats pour être complet. Vous trouverez toujours un cas particulier qui ignore votre besoin ou dans lequel Kubernetes ne fonctionnera pas dans l'installation par défaut - par exemple, la prise en charge de la base de données ou le fonctionnement du CD.

C’est ici qu’apparaissent les ajouts, extensions et autres goodies pour cet orchestrateur de conteneurs, soutenus par une large communauté. Cet article présentera les 11 meilleures choses que nous avons trouvées. À nous-mêmes dans Southbridge ils sont très intéressants et nous prévoyons de les traiter de manière pratique - démontez-les en vis et en écrous et voyez ce qu'il y a à l'intérieur. Certains d'entre eux compléteront parfaitement n'importe quel cluster Kubernetes, tandis que d'autres aideront à résoudre des problèmes spécifiques qui ne sont pas implémentés dans le package Kubernetes standard.

Gardien d’accès : gestion des politiques

Projet Ouvrir l'agent de stratégie (OPA) offre la possibilité de créer des politiques au-dessus des piles d'applications cloud dans Kubernetes, de l'entrée au maillage de services. Gatekeeper donne à Kubernetes la possibilité d'appliquer automatiquement des politiques sur l'ensemble du cluster et permet également d'inspecter tous les événements ou ressources qui violent une politique. Tout cela est géré par un mécanisme relativement nouveau dans Kubernetes, le gestionnaire d'admission Webhooks, qui se déclenche lorsque les ressources changent. Avec Gatekeeper, les politiques OPA deviennent un autre élément de la santé de votre cluster Kubernetes sans nécessiter une surveillance constante.

Gravité : clusters Kubernetes portables

Si vous souhaitez déployer une application sur Kubernetes, de nombreuses applications disposent d'une charte Helm qui guide et automatise ce processus. Mais que se passe-t-il si vous souhaitez conserver votre cluster Kubernetes tel quel et le déployer ailleurs ?

Gravity Prend des instantanés de l'état des clusters Kubernetes, de leurs registres pour les images de conteneurs et des applications en cours d'exécution appelées « packages d'application ». Un tel paquet, qui est un fichier normal .tar, peut répliquer le cluster partout où Kubernetes peut s'exécuter.

Gravity vérifie également que l'infrastructure cible se comporte de la même manière que la source et que l'environnement Kubernetes sur la cible est disponible. La version payante de Gravity ajoute également des fonctionnalités de sécurité, notamment RBAC et la possibilité de synchroniser les paramètres de sécurité sur différents déploiements de cluster.

La dernière version majeure, Gravity 7, peut déployer une image Gravity sur un cluster Kubernetes existant, au lieu de créer un tout nouveau cluster à partir de l'image. Gravity 7 peut également fonctionner avec des clusters installés sans image Gravity. Gravity prend également en charge SELinux et fonctionne nativement avec la passerelle Teleport SSH.

Kaniko : Construire des conteneurs dans un cluster Kubernetes

La plupart des images de conteneurs sont créées sur des systèmes extérieurs à la pile de conteneurs. Cependant, vous devez parfois créer une image dans une pile de conteneurs, par exemple quelque part dans un conteneur en cours d'exécution ou dans un cluster Kubernetes.

Kaniko construit des conteneurs dans un environnement de conteneurs, mais sans dépendre d'un service de conteneurisation, tel que Docker. Au lieu de cela, Kaniko extrait le système de fichiers de l'image de base, exécute toutes les commandes de construction dans l'espace utilisateur au-dessus du système de fichiers extrait, prenant un instantané du système de fichiers après chaque commande.

Remarque : Kaniko est actuellement (mai 2020, environ. traducteur) ne peut pas créer de conteneurs Windows.

Kubecost : paramètres de coût de démarrage de Kubernetes

La plupart des outils d'administration Kubernetes se concentrent sur la facilité d'utilisation, la surveillance, la compréhension du comportement au sein d'un pod, etc. Mais qu’en est-il du coût – en dollars et en centimes – associé à l’exploitation de Kubernetes ?

Kubécost Traite les paramètres Kubernetes en temps réel, ce qui entraîne des informations à jour sur les coûts des clusters en cours d'exécution chez les principaux fournisseurs de cloud, affichées dans un tableau de bord affichant le coût mensuel de chaque cluster. Les prix de la RAM, du temps CPU, du GPU et du sous-système de disque sont ventilés par composant Kubernetes (conteneur, pod, service, etc.)

Kubecost suit également le coût des ressources hors cluster telles que les compartiments Amazon S3, bien que cela soit limité à AWS. Les données de coût peuvent être envoyées à Prometheus afin que vous puissiez les utiliser pour modifier par programmation le comportement du cluster.

Kubecost est gratuit à utiliser tant que 15 jours de données de journal vous suffisent. Pour des fonctionnalités supplémentaires, les prix commencent à 199 $ par mois pour la surveillance de 50 nœuds.

KubeDB : exécuter des bases de données de combat sur Kubernetes

Les bases de données sont également assez difficiles à exécuter efficacement sur Kubernetes. Vous trouverez des opérateurs Kubernetes pour MySQL, PostgreSQL, MongoDB et Redis, mais ils présentent tous des inconvénients. De plus, l’ensemble des fonctionnalités typiques de Kubernetes ne résout pas directement la plupart des problèmes de base de données spécifiques.

KubeDB vous aide à créer vos instructions Kubernetes pour gérer les bases de données. L'exécution de sauvegardes, le clonage, la surveillance, les instantanés et la création de bases de données déclaratives sont ses composants. Veuillez noter que la prise en charge des fonctionnalités peut varier selon la base de données. Par exemple, la création d'un cluster fonctionne pour PostgreSQL, mais pas pour MySQL (déjà il y a, comme indiqué à juste titre dnbstd, environ. traducteur).

Kube-monkey : Chaos Monkey pour Kubernetes

La méthode de test de résistance la plus exempte d'erreurs est considérée comme celle des pannes aléatoires. C'est la théorie derrière Chaos Monkey de Netflix, un outil d'ingénierie chaotique qui arrête de manière aléatoire les machines virtuelles et les conteneurs de production pour « inciter » les développeurs à construire des systèmes plus résilients. Kube-singe — mise en œuvre de la même théorie de base des tests de résistance pour les clusters Kubernetes. Il fonctionne en tuant de manière aléatoire les pods du cluster que vous désignez et peut également être configuré pour s'exécuter à un intervalle de temps spécifique.

Contrôleur d'entrée Kubernetes pour AWS

Kubernetes fournit un équilibreur de charge externe et des services de mise en réseau de cluster via un service appelé Entrée AWS fournit une fonctionnalité d'équilibrage de charge, mais ne la relie pas automatiquement aux mêmes fonctionnalités de Kubernetes. Contrôleur d'entrée Kubernetes pour AWS comble cet écart.

Il gère automatiquement les ressources AWS pour chaque objet d'entrée du cluster, créant des équilibreurs de charge pour les nouvelles ressources d'entrée et supprimant les équilibreurs de charge lorsque les ressources sont supprimées. Il utilise CloudFormation pour garantir que l'état du cluster reste cohérent. Il prend également en charge les paramètres CloudWatch Alarm et gère automatiquement d'autres éléments utilisés dans le cluster, tels que les certificats SSL et les groupes EC2 Auto Scaling.

Kubespray : Installation automatique de Kubernetes

Kubespray automatise l'installation d'un cluster Kubernetes prêt pour la production, de l'installation sur des serveurs matériels jusqu'aux principaux cloud publics. Il utilise Ansible (Vagrant - facultatif) pour exécuter le déploiement et créer un cluster hautement disponible à partir de zéro avec votre choix de module complémentaire réseau (tel que Flannel, Calico et autres) sur la distribution Linux populaire de votre choix lorsqu'il est installé sur des serveurs matériels.

Skaffold : développement itératif pour Kubernetes

Skaffold - l'un des outils Google utilisés pour organiser les applications CD dans Kubernetes. Dès que vous apportez des modifications au code source, skaffold le détecte automatiquement, commence la création et le déploiement et vous avertit en cas d'erreurs. Skaffold fonctionne entièrement côté client, il peut donc y avoir des problèmes mineurs d'installation ou de mise à jour. Il peut être utilisé avec les pipelines CICD existants et peut également s'interfacer avec certains outils de construction externes, principalement Bazel de Google.

Teresa : Le PaaS le plus simple sur Kubernetes

Teresa est un système de déploiement d'applications qui exécute un simple PaaS sur Kubernetes. Les utilisateurs organisés en équipes peuvent déployer et gérer les applications qu'ils possèdent. Cela rend les choses un peu plus faciles pour les personnes qui font confiance à l'application et ne veulent pas s'occuper de Kubernetes et de toutes ses complexités.

Tilt : diffusion en continu des mises à jour des conteneurs vers les clusters Kubernetes

Tilt, développé par Windmill Engineering, surveille les modifications apportées aux différents Dockerfiles puis déploie progressivement les conteneurs correspondants sur un cluster Kubernetes. Essentiellement, il vous permet de mettre à jour votre cluster de production en temps réel simplement en mettant à jour les Dockerfiles. Tilt est construit au sein du cluster, le code source est tout ce qui doit être modifié. Vous pouvez également prendre un instantané de l'état du cluster et capturer les conditions d'erreur directement depuis Tilt pour le partager avec les membres de l'équipe pour le débogage.

PS Nous avons utilisé à plusieurs reprises tous ces outils Southbridge sondé par nos mains curieuses. Présenter déjà (espérons-le !) de vraies pratiques lors de cours intensifs hors ligne en février. Base Kubernetes Du 8 au 10 février 2021. Et Méga Kubernetes Du 12 au 14 février. Honnêtement, l’atmosphère chaleureuse et chargée d’énergie de l’apprentissage hors ligne nous manque également. Aussi avancées que soient les technologies, elles ne peuvent pas remplacer la communication humaine en direct et une atmosphère particulière lorsque des personnes partageant les mêmes idées se réunissent.

Source: habr.com

Ajouter un commentaire