Nous étions à la KubeCon Europe (1/2)

The Kubernetes Community conference

Nous y voyons plus clair, Kubernetes est pour le moment la solution de Container as a Service que nous recommandons. Nous l'avons déjà déployé en production, packagé avec Openshift Origin pour proposer une Platform as a Service du meilleur effet. C'est fort de notre expérience que nous avons voulu voir ce qui se fait ailleurs, dans le monde des containers. Et quoi de mieux que la Kubecon Europe pour satisfaire notre soif d'apprentissage...

La Kubecon Europe a eu lieu cette année à Londres et s’est déroulée les 10 et 11 mars 2016.

C'est l’occasion de découvrir :

  • La vision et les nouveautés de Kubernetes 1.2 et 1.3
  • L’ensemble des solutions gravitant autour de l’écosystème Kubernetes
  • Les retours d’expériences et différents cas d’usages

Les grands thèmes abordés lors de cet événement ont été nombreux, nous avons pris le parti de nous concentrer sur deux sujets :

  • La Roadmap et la vision de Kubernetes
  • Kubernetes en production (qui fera l'objet d'un second article)

Dans cet article, nous traiterons le premier point sur la vision et les nouveautés de Kubernetes qui nous ont été présentées. Il s'adresse aux amateurs confirmés de Kubernetes.

La vision et la roadmap et de Kubernetes

“Le entrypoint.sh dans docker c’est pour les hipsters” Kelsey Hightower

Get started quicker, get big faster. C’est de cette manière que Kelsey Hightower a introduit la première keynote de la KubeCon 2016. Avant de lister les nouveautés à venir de Kubernetes, il convient de rappeler ce qu’est Kubernetes : un framework permettant de construire un système distribué. Il s’appuie sur les technologies de container qu’il sait orchestrer. Kubernetes est un CaaS (Container as a Service) et non un PaaS (Platform as a Service).

https://twitter.com/mpaluchowski/status/707866052911374337

Comme beaucoup de technologies avec le vent en poupe, ces dernières soulèvent de nouvelles problématiques, et de nouveaux usages apparaissent. Il n’est toutefois pas obligatoire de mettre son SI en chantier sous prétexte que Kubernetes va TOUT révolutionner.

Kelsey Hightower rappelle ainsi quelques bonnes pratiques émergentes, parmi lesquelles :

  • Il n’est pas obligatoire d’intégrer votre SI entier dans Kubernetes. Cela s’applique notamment aux bases de données relationnelles qui ne scalent pas simplement
  • Kubernetes permet le versionnement des composants via les tags Docker, mais attention : le tag latest n’est pas une version ;)
  • L’architecture de Kubernetes permet de scaler by design. Attention à ne pas en faire trop : si vous n’avez pas d’utilisateurs sur votre plateforme, vous n’êtes pas obligé de scaler tout de suite

Les nouveautées de Kubernetes 1.2 et 1.3

La version 1.2 est désormais disponible

https://twitter.com/kubernetesio/status/714517066036826113?lang=fr

Elle embarque les nouvelles fonctionnalités suivantes:

  • Une nouvelle interface
  • La simplification des flux entrants (Ingress), facilitant le routage vers les PODs depuis Internet
  • La gestion des secrets pour simplifier la configuration ssl des frontend
  • Une meilleure scalabilité
  • L’ajout des ReplicasSet qui facilite entre autres les déploiements en rolling update et permet d’affiner la selection des objets à travers du CLI (exemple : je veux scaler tous mes frontaux de production)
  • L’apparition d’une ConfigMap qui est un descripteur clé / valeur consommé par les pods au démarrage pour une configuration plus fine (l’équivalent d’un cloud init)
  • La gestion automatique des clusters (génération de namespace; management des secret et export des ressources)
  • L’intégration simplifiée des extensions (Third Party)
  • Et bien d’autres features que vous retrouverez ici

La version 1.3 annoncée dans quelques semaines (où quelques semaines = O(16)) est en cours de développement et apportera :

  • Le support des applications legacy (cattle vs pets)
  • La fédération des clusters (Ubernetes)
  • Une meilleur scalabilité, et l’autoscaling non plus des pods, mais des clusters
  • La gestion des identités et le contrôle d’accès
  • La gestion des jobs (Cron)
  • Un Public Cloud Dashboard qui permettra de lancer des nightly builds et mesurer les performances du cluster
  • And lots, lots more!

Ce que nous en pensons:

Si nous faisons le focus sur nos besoins en production, les nouveautés les plus intéressantes sont la simplicité de configuration concernant la sécurité (les secrets), la gestion de la mise en production sans interruption (rolling update), et l’exposition des pods (via ingress). Ajoutons à cela la gestion des clusters simplifiées avec la gestion des identités, la facilité de scaler (autant les pods que les clusters), nous avons une solution de CaaS de plus en plus robuste et sécurisante pour un usage en production.

Le fait de mettre l’effort sur l’intégration des Third Party est dans la continuité. Cela nous permettra de rendre nos clusters multitenants, à défaut d’être proposé par Kubernetes.

En regardant de plus près, nous constatons que ces fonctionnalités sont déjà présentes pour la plupart dans Openshift Origin (La solution de PaaS de RedHat basée sur Kubernetes), l’ajout des ConfigMap est un autre exemple.

Kubernetes new features vs Openshift Origin

Capture d’écran 2016-03-29 à 16.41.56

La convergence des deux solutions est frappante, Openshift v3 ayant pour lui sa capacité de Builder des projets. Il restera à voir l’évolution des solutions au dessus de Kubernetes, qui devront choisir de s’adapter, ou non, aux évolutions apportées par la communauté Kubernetes.

Rappelons-le, Kubernetes est un framework, plus spécifiquement un CaaS. C’est aussi un écosystème en pleine expansion sur lequel s’appuie de nombreux acteurs. Ces derniers s’appuient sur cette solution pour fabriquer leur PaaS, ou cherchent à le rendre robuste et scalable, pour une utilisation de plus en plus demandée par les entreprises en production. Nous aborderons l'ensemble de ces pratiques et uses cases de Kubernetes en production dans le prochain article.