Kubernetes, de la hype au monde réel
4 décembre 2019
Florian Durano, Expert technique DevOps chez Kaliop, s’est rendu au DevOps D-Day qui a eu lieu à l’Orange Vélodrome à Marseille le mois dernier. A cette occasion, il a pu participer à plusieurs conférences sur des sujets IT, Cloud et DevOps. Aujourd’hui, Florian nous propose un article qui revient sur la conférence « Kubernetes, effet de mode ou réel intérêt », animée lors du DevOPs D-Day par Ivan BEAUTE et Alexis DUCASTEL.
Kubernetes, c’est quoi ?
Kubernetes (K8s) est un système Open Source permettant d’automatiser le déploiement, la mise à l’échelle et la gestion d’applications conteneurisées.
Des conteneurs en production ?
« Gartner predicts that by 2022, more than 75% of global organizations will be running containerized applications in production, which is a significant increase from fewer than 30% today ».
D’après cette information tirée du Gartner (en 2018), il y a actuellement plus de 30% de la production mondiale d’applications dans du conteneur, et il y en aura plus de 75% en 2022.
Si vous n’êtes encore pas passé.e sur cette technologie, vous allez prendre du retard !
Effet de mode ou réel intérêt ?
La réponse serait : les deux. Bien sûr, cela bénéficie d’un effet de buzz, mais il y a un réel intérêt également. C’est ce que nous allons aborder dans cet article.
Passer d’une chaîne de CI/CD « classique » avec du Ansible et du docker vers du Kubernetes est un réel gain de temps. Il y a également beaucoup moins de codes à écrire, ce qui diminue le temps de relecture et accélère la maintenance.
Concernant le Machine Learning, sachez que Kubernetes sait à présent utiliser le GPU et donc CUDA si vous faites du Tensor Flow par exemple.
On peut également faire du Serverless sur Kubernetes grâce à certains outils.
Évolutions sur les 10 dernières années de la virtualisation/conteneurisation
Comme nous pouvons le constater grâce à l’outil Google Trends permettant de voir les intérêts de recherches des utilisateurs Google, Kubernetes est en pleine croissance depuis 2016.
Quelles sont les conséquences de cet effet de buzz ?
Les inconvénients :
- Usage systématique souvent irrationnel
- Information plus ou moins pertinente
- Pas de garantie que la technologie soit bonne
- Perte financière si bad buzz
Les avantages :
- Attire les passionnées
- Facilite le recrutement des talents
- Motive les équipes
- Large écosystème de solutions/projets associés
- Présence dans le catalogue de nombreux fournisseurs
Quels sont les avantages de Kubernetes ?
- Fonctionnalités natives (routage L7, autoscaling, haute-dispo…)
- Adaptatif extensible (CRD, operators, webhooks, etc.)
- Abstraction de l’infra sous-jacente (applications génériques…)
- Facilement reproductible (manifest, helm, infra as code, PRA…)
- Augmentation de la productivité (outillage, cli, écosystème…)
- Excellent support (communauté, 2300+ contributeurs actifs…)
- Force les bonnes pratiques (pet vs cattle, immutable…)
- Open-Source et libre (pas de coût de licence, auditable…)
- Gestion centralisée et observable (api, inventaire automatique…)
- Standard (capitalisation du savoir-faire…)
Quels sont les inconvénients de Kubernetes ?
Désavantages :
- Complexe (nouveaux concepts, vocabulaire technique…)
- Nécessite de former les équipes (devs, ops, testeurs…)
- Consomme des ressources (nœuds de contrôle, réseau, etc.)
- Linux seulement (pas d’Active Directory, pas d’AS400…)
- Impression de ne pas toujours maîtriser (magique…)
- Ne fonctionne qu’avec des conteneurs (ajout du process…)
Changement d’habitudes :
- Mise à jour tous les 3 mois (comme CoreOS, hrome…)
- Développement pour Kubernetes (nouveaux outils, langages…)
Et donc…
Kubernetes, c’est un effet de mode et il y a un réel intérêt !
Recommandations
Recette pour une adoption de Kubernetes réussie :
- Formez vos équipes : formations, meetups, temps dédié à la veille techno…
- Pratiquez : pas de secret, pour connaître l’outil, la pratique est essentielle !
- Commencez simple ! Principe KISS : une première app simple…mais allez du POC à la Prod
- Choisissez une bonne distrib Kubernetes : selon votre choix, la pente sera plus ou moins facile
- Concentrez-vous sur votre métier
Un cluster Kubernetes de production DOIT avoir :
- Du stockage persistant intégré : provisionnement dynamique de volume via Storage Class
- Des load balancers intégrés : implémentation des services de type Load Balancer
- La possibilité de mise à jour de Kubernetes : Kubernetes version 1.15 > Kubernetes version 1.16
Consultant infrastructure et réseaux