Administration kubernetes

L’équipe de développeurs dans laquelle je suis en mission à l’INRAe a entamé une évolution de ses pratiques pour containeriser ses application et souhaite poursuivre cette évolution en utilisant kubernetes. Les motivations derrière cette évolution son multiples : permettre de définir des pipelines CI/CD de bout en bout, s’abstraire totalement du matériel, profiter de l’écosystème kubernetes (outils de supervision, outils de log, operateurs de base de données, gestion des certificats automatisée, etc.), montée en charge, haute disponibilité, etc.

J’ai eu pour mission de mettre en place un cluster ainsi que les addons essentiels pour ensuite accompagner l’équipe à l’usage de Kubernetes et à son administration.

Ma mission s’est en particulier composée de :

  1. Animation de réunion pour le choix d’une architecture technique (“briques” kubernetes, intégration ou non des bases de données au cluster, système de backup, système de suivi des logs, suivi des métriques, alertes, etc.)
  2. Mise en place d’un cluster à partir de VM “nues” à l’aide de Kubespray. Documentation pour la maintenance.
  3. Choix, installation et paramétrage des briques essentielles : moteur réseau avec Calico, Ingress controller avec nginx, gestion des volumes persistants.
  4. Installation et paramétrage de la suite EFK (Elasticsearch, Fluentd, Kibana). Présentation à l’équipe des possibilités offertes par cet outil et paramétrage d’une application complète (sortie des logs en json coté applicatif, traitement par fluentd, tableaux de bord sur kibana et gestion de la rotation des index sur elasticsearch).
  5. Exploration des solutions de backup de base postgres; installation et paramétrage de la solution “CloudnativePG” : backup sur le S3 institutionnel, mise en place d’une politique de reprise après sinistre et de replicats actifs.
  6. Installation et paramétrage de la stack prométhéus, démonstration auprès de l’équipe.
  7. Installation et paramétrage d’Argocd, intégration au gitlab institutionnel, définition de bonnes pratiques liées à l’usage qu’en aura l’équipe.
  8. Accompagnement de l’équipe à la migration des applications de docker compose vers des helmcharts; création d’un starter correspondant à la majorité des besoins.

J’ai beaucoup apprécié participer à la monté en compétence de l’équipe sur ces sujets, la curiosité de chacun étant particulièrement attisée par les promesses des ces technologies. Kubernetes est une révolution dans la manière d’administrer les applications, et a des implications sur le travail du développeur via les possibilités devops qu’il apporte, et je suis heureux de pouvoir contribuer aux évolutions des pratiques de l’équipe.

Julien Robert
Julien Robert
Indépendant en ingénierie informatique

Docteur en informatique, agrégé de mathématiques, passionné de sciences et d’informatique, j’ai à coeur de mettre en oeuvre et faire évoluer et transmettre mes conpétences sur tout type de projet “stimulant” conceptuellement et / ou techniquement.