Aperçu
Kubernetes est devenu la plateforme de conteneurisation cloud-native d’élection pour les applications IT d’affaires. En effet, utilisé de la bonne façon, Kubernetes présente des avantages appréciables pour l’entreprise :
- les applications en conteneur ne sont pas asservies à un nuage privé ou public particulier;
- les flux de tâches normalisés et reproductibles, définis par un code, promeuvent de saines pratiques de DevOps ou de SecOps;
- les opérations comme la mise à l’échelle, le déploiement, l’application de correctifs et la reprise au point de contrôle sont automatisées;
- les couches sont surveillées et il y a déclenchement d’alertes ce qui permet une rétroaction et des améliorations continues;
- l’infrastructure est mieux exploitée et il y a contrôle granulaire des coûts;
- les tâches manuelles et les erreurs humaines sont moins nombreuses au niveau de l’infotechnologie et des opérations.
Installer ou acquérir une grappe Kubernetes n’a pas automatiquement de valeur commerciale. Bien qu’une organisation puisse installer Kubernetes de diverses manières dans un nuage public ou privé, voire sur un simple ordinateur, les développeurs et les responsables des opérations IT éprouvent souvent du mal à situer leur application et leurs processus dans Kubernetes.
Un flux de tâches de développement et de production Kubernetes qui ne fonctionne pas de façon optimale peut avoir un très lourd coût de renonciation pour l’entreprise, car le cycle de production s’en trouvera prolongé, des défaillances surgiront, la facture des services d’infonuagique s’en trouvera gonflée et on gaspillera des heures de travail onéreuses, l’équipe technique devant tout recommencer en essayant de comprendre comment déployer correctement le logiciel dans Kubernetes.
Malheureusement, maintes tentatives de conteneurisation échouent pour une seule et même raison : Kubernetes est complexe et maîtriser ce système de déploiement automatique peut s’avérer difficile. La Solution type du Propulseur aplanira une grande partie des difficultés liées à l’apprentissage et à l’usage de Kubernetes, ce qui permettra d’atteindre rapidement l’étape de la production.
La Solution type aborde les questions que voici.
- Installation et configuration d’une grappe Kubernetes à un nœud sur AWS ou Azure (à partir de la plateforme de l’ATIR) pour le développement et des essais
- Déploiement d’une application Web de type « liste de choses à faire » comprenant un composant frontal (Vue.js), un composant dorsal (cadriciel Restful de Django) et une base de données (PostgreSQL) sur Kubernetes
- Usage de formules Helm (Charts) rédigées par la communauté ou sur mesure afin de faciliter l’élaboration, l’installation et la mise à niveau des applications Kubernetes même les plus complexes et ainsi permettre le déploiement de logiciels et de composants dans la grappe
- Gestion du déploiement du logiciel dans la grappe Kubernetes, y compris gestion des images des conteneurs avec Skaffold.
- Activation du tableau de bord Kubernetes permettant de naviguer dans la grappe
- Ajout du système de surveillance de l’infrastructure avec la pile Prometheus qui comprend les tableaux de bord Grafana
- Configuration du composant d’entrée NGINX afin de rendre le service de la grappe accessible de l’extérieur
- Illustration de la gestion des secrets et de la configuration de l’application
- Fonctionnalités évoluées comme la limitation des ressources, la mise à l’échelle automatique et les espaces de nommage
- Discussion de quelques écueils et remèdes aux problèmes les plus courants avec Kubernetes
L’illustration qui suite montre l’application (en rouge) et les principaux composants de Kubernetes ainsi que les principes cloud-native que le Propulseur KAT met en relief.