
Toutes les plateformes serveur, même les plus puissantes et évolutives, ne répondent pas à tous les besoins tels quels. Bien que Kubernetes fonctionne très bien par lui-même, il peut lui manquer certains éléments nécessaires pour une intégration complète. Vous rencontrerez toujours un cas particulier qui ignore votre besoin ou pour lequel Kubernetes ne fonctionnera pas avec l'installation par défaut — par exemple, le support des bases de données ou le fonctionnement de CD.
C'est ici que viennent les add-ons, extensions et autres outils pour cet orchestrateur de conteneurs, soutenus par une large communauté. Dans cet article, nous avons sélectionné les 11 meilleures choses que nous avons trouvées. Nous-mêmes, elles sont tout à fait intéressantes, et nous prévoyons de les examiner de manière pratique — en les démontant et en voyant ce qu'il y a à l'intérieur. Certaines d'entre elles viendront compléter parfaitement n'importe quel cluster Kubernetes, d'autres aideront à résoudre des problèmes spécifiques non réalisés dans la livraison standard de Kubernetes.
Gatekeeper : gestion des politiques
Projet (OPA) permet de créer des politiques au-dessus des piles d'applications cloud dans Kubernetes, allant de l'ingress au service mesh. offre une capacité native à Kubernetes pour appliquer automatiquement les politiques au sein du cluster, et fournit également une vérification de tout événement ou ressource violant la politique. Tout cela est géré par un mécanisme relativement nouveau de Kubernetes, le gestionnaire d'accès Webhooks, qui s'active lors des modifications de ressources. Grâce à Gatekeeper, les politiques OPA deviennent une partie intégrante de l'état de votre cluster Kubernetes, sans nécessiter de surveillance constante.
Gravity : Clusters Kubernetes portables
Si vous souhaitez déployer une application dans Kubernetes, de nombreuses applications disposent de chartes Helm qui guident et automatisent ce processus. Mais que faire si vous voulez prendre votre cluster Kubernetes « tel quel » et le déployer ailleurs ?
prend des instantanés de l'état des clusters Kubernetes, de leur registre d'images de conteneurs, ainsi que des applications en cours d'exécution, appelées « paquetages d'applications ». Un tel paquet, qui est un fichier ordinaire .tar, peut répliquer un cluster partout où Kubernetes peut fonctionner.
Gravity vérifie également que l'infrastructure cible se comporte comme l'original et que l'environnement Kubernetes sur la cible est accessible. La version payante de Gravity ajoute également des fonctionnalités de sécurité, y compris RBAC et la possibilité de synchroniser les paramètres de sécurité entre différents déploiements de clusters.
La dernière version majeure, Gravity 7, peut déployer une image de Gravity dans un cluster Kubernetes existant, au lieu de déployer un tout nouveau cluster à partir de l'image. Gravity 7 peut également fonctionner avec des clusters installés sans utiliser l'image Gravity. De plus, Gravity prend en charge SELinux et fonctionne nativement avec le passerelle Teleport SSH.
Kaniko : Construction de conteneurs dans un cluster Kubernetes
La plupart des images de conteneurs sont construites sur des systèmes en dehors de la pile de conteneurs. Cependant, il arrive que vous deviez construire une image à l'intérieur de la pile de conteneurs, par exemple quelque part dans un conteneur en cours d'exécution ou dans un cluster Kubernetes.
effectue la construction de conteneurs à l'intérieur d'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 sur le système de fichiers extrait, en prenant un instantané du système de fichiers après chaque commande.
Remarque : Kaniko à l'heure actuelle (mai 2020, note du traducteur) ne peut pas construire des conteneurs Windows.
Kubecost : Options de coût pour le lancement de Kubernetes
La plupart des outils d'administration de Kubernetes visent la facilité d'utilisation, la surveillance, la compréhension du comportement au sein des pods, etc. Mais qu'en est-il de la surveillance des coûts - en euros et centimes - associés au lancement de Kubernetes ?
traite les paramètres Kubernetes en temps réel, ce qui entraîne l'arrivée d'informations sur le coût actuel des clusters en cours d'exécution chez les principaux fournisseurs de services cloud, affichés sur un tableau avec le coût mensuel de chaque cluster. Les tarifs pour la mémoire vive, le temps CPU, le GPU et le sous-système de stockage sont détaillés par les composants Kubernetes (conteneur, pod, service, etc.)
Kubecost suit également le coût des ressources hors-cluster, telles que les buckets Amazon S3, bien que cela soit limité à AWS. Les données de coût peuvent être envoyées à Prometheus, de sorte que vous pouvez les utiliser pour modifier le comportement du cluster par programmation.
Kubecost est gratuit à utiliser si vous vous contentez des données des journaux pour 15 jours. Pour des fonctionnalités supplémentaires, les prix commencent à 199 $ par mois pour la surveillance de 50 nœuds.
KubeDB : Lancer des bases de données en production sur Kubernetes
Il est également assez difficile de lancer des bases de données de manière efficace dans Kubernetes. Vous trouverez des opérateurs Kubernetes pour MySQL, PostgreSQL, MongoDB et Redis, mais tous ont des inconvénients. De plus, l'ensemble standard des fonctionnalités de Kubernetes ne résout pas directement la plupart des problèmes spécifiques aux bases de données.
vous aide à créer vos opérateurs Kubernetes pour gérer vos bases de données. Lancer des sauvegardes, cloner, surveiller, créer des snapshots et la création déclarative de bases sont ses composants. Notez que le support des fonctionnalités dépend de la base de données. Par exemple, la création de clusters fonctionne pour PostgreSQL, mais pas pour MySQL ( il y a, comme l'a juste remarqué , note du traducteur).
Kube-monkey : Chaos Monkey pour Kubernetes
La façon la plus fiable de tester la résistance est de provoquer des pannes aléatoires. Cette théorie est la base de Chaos Monkey de Netflix, un outil d'ingénierie chaotique qui coupe aléatoirement des machines virtuelles et des containers dans l'environnement de production pour "stimuler" les développeurs à créer des systèmes plus résilients. — une implémentation de la même théorie de base pour les clusters Kubernetes. Il fonctionne en tuant aléatoirement les modules dans le cluster que vous indiquez, et peut également être configuré pour fonctionner à des intervalles de temps spécifiques.
Contrôleur Ingress Kubernetes pour AWS
Kubernetes fournit un équilibreur de charge externe et des services réseau de cluster via un service appelé AWS offre des fonctionnalités d'équilibrage de charge, mais ne les lie pas automatiquement aux fonctionnalités similaires de Kubernetes. comble ce vide.
Il gère automatiquement les ressources AWS pour chaque objet ingress dans le cluster, créant des équilibreurs de charge pour les nouvelles ressources ingress, et supprimant les équilibreurs lors de la suppression des ressources. Il utilise CloudFormation pour s'assurer que l'état du cluster reste intact. Il prend également en charge les paramètres d'alarme CloudWatch et gère automatiquement d'autres éléments utilisés dans le cluster, tels que les certificats SSL et les groupes de mise à l'échelle automatique EC2.
Kubespray : Installation automatique de Kubernetes
automatisation de l'installation d'un cluster Kubernetes prêt à l'emploi, commençant par l'installation sur des serveurs physiques et se terminant par les principaux clouds publics. Il utilise Ansible (Vagrant en option) pour lancer le déploiement et créer un cluster hautement disponible à partir de zéro avec l'extension réseau de votre choix (comme Flannel, Calico, et autres) sur la distribution Linux populaire de votre choix lors de l'installation sur des serveurs physiques.
Skaffold : Développement itératif pour Kubernetes
– est un des outils de Google utilisé pour organiser le déploiement continu des applications dans Kubernetes. Dès que vous apportez des modifications au code source, Skaffold le détecte automatiquement, lance la compilation et le déploiement, et vous avertit s'il y a des erreurs. Skaffold s'exécute entièrement côté client, donc il peut y avoir quelques subtilités lors de l'installation ou de la mise à jour. Il peut être utilisé avec des pipelines CI/CD existants et interagir avec certains outils de compilation externes, principalement Bazel de Google.
Teresa : Le PaaS le plus simple sur Kubernetes
est un système de déploiement d'applications qui lance un PaaS simple sur Kubernetes. Les utilisateurs, répartis par équipes, peuvent déployer et gérer leurs applications. Cela simplifie un peu le travail des personnes qui font confiance à cette application et qui ne souhaitent pas s'occuper de Kubernetes et de toutes ses complexités.
Tilt : Diffusion continue des mises à jour des conteneurs dans les clusters Kubernetes
, développé par Windmill Engineering, surveille les changements des différents fichiers Dockerfile, puis déploie progressivement les conteneurs correspondants dans le cluster Kubernetes. En gros, il permet de mettre à jour le cluster de production en temps réel simplement en modifiant les fichiers Dockerfile. Tilt effectue la compilation à l'intérieur du cluster, le code source étant tout ce qu'il faut modifier. Vous pouvez également faire un instantané de l'état du cluster et enregistrer les conditions d'erreur directement depuis Tilt, afin de les partager avec les membres de l'équipe pour le débogage.
P.S. Nous avons tous ces outils testés à plusieurs reprises par nos mains curieuses. Pour présenter les pratiques réelles déjà (espérons-le !) lors d'intensifs en présentiel en février. 8–10 février 2021. Et 8-10 février 2021. Et 12-14 février. Honnêtement, notre nostalgie pour l'atmosphère chaleureuse et énergisante de l'apprentissage en présentiel se fait aussi sentir. Peu importe à quel point les technologies sont avancées, elles ne remplaceront jamais les interactions humaines et cette atmosphère spéciale qui se crée lorsque des personnes partageant les mêmes idées se réunissent.
Source : habr.com
