Kubernetests… on a participé à la beta Kubernetes OVH
Le mardi 26 février dernier, OVH a lancé son offre Kubernetes managé (https://www.ovh.com/fr/kubernetes/) après une phase beta privée de plusieurs mois. La presse spécialisée a relayé l’événement : https://www.journaldunet.com/solutions/cloud-computing/1421810-kubernetes-as-a-service-ovh-devoile-son-offre-en-version-finale/ en revenant bien entendu sur cette phase beta. Chose que nous allons faire au cours de cet article.
Mais déjà, pourquoi faire du kube ?
Pour faire les choses de manière carrée !
En effet, la première raison qui nous a poussés à nous y intéresser est le côté « douleur dans le c** » (in english in the text) des mises à jour serveurs. Cela est pénible et prend du temps (beaucoup trop). Du coup, cela est souvent mis de côté et non effectué de manière suffisamment rigoureuse et périodique. Sur un cluster K8s managé, les mises à jour sont gérées par le fournisseur de nuage. Affaire réglée.
Quand on travaille avec des VM, on a tendance à en faire une par service. Ce qui augmente considérablement le nombre de machines (avec les MAJ à faire) qui ne font rien la plupart du temps. Sur un cluster K8s, les ressources des nœuds sont partagées entre tous les services installés sur le cluster. La puissance de calcul est donc bien mieux utilisée et répartie entre les différents services. On peut ainsi optimiser et rationaliser les ressources nécessaires, pour avoir plus de services sur moins de serveurs.
Un dernier point est le passage à l’infra-as-code. Tous les fichiers YAML de Kubernetes peuvent être facilement versionnés, ce qui facilite énormément la reproductibilité des installations. Chose plus compliquée avec une VM (au mieux, il y a les snapshots et les templates), à moins d’utiliser un script cloud-init.
Quand on jouait au kube…
Chez ITK, nous utilisons Docker depuis plusieurs années déjà. Nous en avons déployé pour des applis internes en production aussi bien que des cas clients. Bien entendu, cela reste aussi un outil très présent en développement.
Nous nous sommes intéressés à Kubernetes il y a déjà un peu de temps. D’abord pour découvrir cet outil puissant de gestion de containers, ayant trouvé Docker Swarm trop limité et ayant fait le tour de Docker Compose (qui reste néanmoins un très bon outil pour déployer quelques containers rapidement sur une VM). Nous avons déployé quelques temps, pour des besoins de test sur un projet, un cluster Kube sur le cloud Google. Mais le projet n’est pas allé plus loin.
Vu que nous sommes joueurs et aimons les défis, nous nous sommes intéressés à monter nous même notre Kubernetes. Déjà parce que peu d’acteurs du cloud en fournissent et aussi parce que nous souhaitions héberger nos données chez un fournisseur français (au minima européen). Et nous n’en avions pas trouvé : les principaux acteurs du cloud sont américains (Google / AWS / Azure). Et monter sa propre solution reste un excellent moyen pour en comprendre le fonctionnement.
Nous avons en interne un cloud privé basé sur VMWare. Nous avons essayé d’y déployer Kubernetes avec des outils comme Kubespray ou en suivant la doc. Il est clair que c’est une démarche plutôt complexe semée de nombreux essais infructueux. Installer notre nuage nous a souvent mené dans le brouillard.
Au final, nous sommes arrivés à avoir un cluster :
- fonctionnel où nous avons pu déployer quelques pods de tests
- qui n’avait pas de load balancer
- qui n’avait pas de PV recyclables et auto-provisionnables
Bref, cette solution du Kubernetes auto hébergée ne nous a pas convaincu. Nous avons décidé de basculer sur un service managé.
Le ciel s’éclaircit : un acteur européen du cloud va proposer un service K8s managé…
Nous travaillons avec OVH depuis longtemps et avons un certain nombre de services hébergés chez eux pour notre infrastructure interne. Aussi, quand nous avons vu qu’un service Kubernetes était en préparation et une beta bientôt ouverte, nous nous sommes inscrits en octobre 2018. Mi-novembre, un mail nous propose de nous ouvrir l’accès à la beta. Quelques heures plus tard, ITKube, premier cluster Kubernetes d’ITK, voyait le jour.
Les équipes d’OVH ont mis en place un chat Gitter pour échanger avec les beta testeurs. Ainsi, nous nous sommes joints à la discussion (in english in the text). Beaucoup d’échanges avec les autres beta testeurs et les équipes d’OVH. Cela nous a permis de remonter des problèmes, d’obtenir du support avec des équipes réactives. Enfin d’échanger sur des trucs et astuces K8s.
L’accès à ce service nous a permis de nous perfectionner sur notre usage de K8s et de ses concepts. Nous avons pu commencer à envisager la migration d’un certain nombre de services hébergés sur des VM internes dans K8s.
Enfin, début février 2018, étant en déplacement chez Médria (filiale d’ITK) à Rennes, nous en avons profité pour rencontrer Horacio Gonzalez, dev rel sur la plateforme OVH. Ainsi sous un ciel nuageo-pluvieux typiquement rennais, nous avons parlé cloud et Kubernetes pendant un après-midi. Au menu, nos usages de K8s, les difficultés rencontrées et comment le service pourrait être amélioré. Une discussion riche et intéressante avec un café pas mauvais (le détail a son importance).
Plus un nuage à l’horizon : fin de beta
Il y a quelques jours, la beta touche à sa fin, avec quelques sueurs froides pour OVH ayant quelques clusters en panne juste avant le lancement (sinon ce n’est pas drôle). De notre coté, nous avons entamé la migration d’un certain nombre d’applications de VMs vers le cluster K8s. Nous allons la poursuivre prochainement.
Que retenir de notre participation à cette beta ?
- une occasion pour nous d’améliorer notre maîtrise de cet outil
- l’intérêt d’avoir pu apporter du feedback aux équipes d’OVH, aussi bien via le chat que lors de notre rencontre
- le fait d’avoir pu participer en avant-première au lancement du projet
- enfin d’avoir pu échanger avec d’autres utilisateurs
Au final, ce fut une expérience très intéressante. Que nous n’hésiterons pas à renouveler si l’occasion se présente à nouveau. De là à dire que nous sommes sur un petit nuage pour nos projets cloud avec ce K8s, nous n’en sommes pas loin !
Quelques liens pour aller plus loin
OVH a publié sur son blog quelques liens très intéressants (en anglais) où ils expliquent la mise en place de leur infrastructure :