Morgan Martinet et Marc Khouzam avons discuter la plateforme et infrastructure infonuagique natif de ville de Montréal au Cloud Native Day Montreal 2019.
10. 10
Historique Kubernetes @ Montréal
Mise à jour vers 1.14
Passage de Kismatic à Kubespray
Expansion à 6 workers
Juin 2019
K8s sur VMWare
Migration des 35 VMs de OVM vers VMWare
Version 1.10
2018
Mise en place de k8s
2015
2017
Mise en place de Docker
Version 1.6 avec la suite Kismatic
5 Clusters en HA
3 Masters, 4 Worker Nodes (8CPU, 32GB)
VMs Docker
3 Environnements de 4 VMs chacuns
GUI Rancher
12. 12
Au delà de Kubernetes
12
Kubernetes is a platform for building platforms.
It's a better place to start; not the endgame.
— Kelsey Hightower (@kelseyhightower) November 27, 2017
13. 13
Création d’un PaaS
Pourquoi un développement maison?
● version vanille de kubernetes
● bien comprendre pour un meilleur support
● pouvoir partager avec d’autres organismes publics
● éviter le vendor lock-in
● offrir une solution personnalisée
13
15. 15
● Un ensemble de services bien intégrés (conteneurs, stockage, API,
logs, monitoring...)
● Un pipeline de CI/CD
● Un portail de type libre-service
Qu’est-ce qu’un PaaS?
15
16. 16
● Peu de concurrents il y a 3 ans
● Standard du marché
● Interface utilisateur complète, incluant la gestion des droits d’accès
● branches multiples
● Organisation hiérarchique des projets (folders)
● Infrastructure as code (Jenkinsfile)
Jenkins comme outil de CI/CD
16
17. 17
● simplification, pour susciter l’adhésion
● factorisation, pour faciliter la maintenance et l’évolution
● abstraction
○ pour pouvoir replateformer facilement
○ pour éviter de demander aux devs d’être des experts en tout
● provisioning (des APIs, CRONs, DBs…)
● gestion des secrets
● gestion des environnements multiples
● notre source de vérité pour décrire une application et son déploiement
Création d’un DSL dans Jenkins
17
41. 41
Enjeux
● Gestion des mises à jours
○ de nos librairies partagées
○ des librairies utilisées par les projets
○ des images Docker
○ des plateformes
● Jenkins
○ prolifération des branches et des builds (45k!)
○ les pods pour les agents restent parfois coincés en erreur
○ docker build: ne pas oublier l’option -rm!!!!
● Migration à une nouvelle distribution de Kubernetes (Kubespray)
● Configuration des dashboards
● Configuration des Alertes
● Configuration des quotas de mémoire et CPU, des probes
41