Feedback : ma 1ère KubeCon 2019 à Barcelone

Gaëlle Acas
iAdvize Engineering
8 min readJun 12, 2019

La KubeCon-CloudNativeCon

C’est quoi ?

La CNCF (Cloud Native Computing Foundation) organise cette conférence de 3 jours avec un sujet central : Kubernetes (ou K8s pour les intimes)
Elle a lieu dans plusieurs zones (US / EU / Asie), et cette année elle a posé ses valises en Europe à Barcelone du 20 au 23 mai 2019 au grand parc d’expo Fira Gran Via Barcelona.

Cette fondation (née en 2015) fait partie de la Linux Foundation et soutient des projets Open-Sources “Cloud Native” comme K8s, Prometheus, Envoy et bien d’autres.

Mes Premières impressions

Génial ! Je vais quand même développer un peu ;) mais voici quelques chiffres pour vous donner une idée :

Près de 8000 participants, autant vous dire que quand on y va à plusieurs, c’est peine perdue de vouloir rester “groupir”. Surtout quand on choisit parmi plus de 400 sessions de talks!

Keynotes

Il y en a eu 4, celle d’ouverture, une pour clôturer la 1ère journée, et les 2 jours suivants pour démarrer chaque journée.

Dan Kohn, Executive Director de la CNCF ouvre les festivités de ces 3 jours avec un historique de K8s depuis sa v1 jusqu’à sa maturité aujourd’hui: un orchestrateur de conteneur de référence.

Cheryl Hung, directrice de cet écosystème nous le confirme justement avec plusieurs chiffres sur la communauté :

  • 2,66 millions de contributions
  • 56 214 de contributeurs

Et plus de 400 entreprises membres actifs au sein de cette communauté.

Plusieurs keynotes de sponsors se sont ensuite enchainées : LinkerD, CRI-O, Helm …

Puis Nikhita Raghunath et Lucas Käldström, nous font un retour sur le programme de bourse d’étude de la CNCF : “Diversity Scholarships” offre un soutien aux personnes issues de groupes traditionnellement sous-représentés et/ou marginalisés dans la tech (LGBTQ, femmes, personnes de couleur et/ou personnes handicapées …) qui n’ont pas la possibilité financière d’assister aux événements de la CNCF.

Diversité, Communauté et inclusion sont des sujets largement représentés durant ces 3 jours.

Communauté, diversité et inclusion

  • Talks

J’ai assisté à quelques sessions sur le sujet.
Une table ronde a réuni James Munelly, Cyrine Jabri, Nikhita Raghunath, Kris Nova & Jason Murray , tous contributeurs actifs sur Kubernetes. Ils nous content chacun leur tour leurs premières contributions et leurs motivations.
Ce fût un moment très intéractif, avec une 1ère question
— “Qui est contributeur ?”
Evidemment peu de mains se lèvent. Puis au fur et à mesure de leurs témoignages, cette question évolue :
— “Qui a répondu sur un Slack ou aidé quelqu’un ou même posé une question ?”
Et là, surprenant, je me retrouve la main levée avec la globalité de la salle. Bon ce n’est qu’un début, mais c’est encourageant non ?
L’idée est que toute contribution est importante quelque soit le niveau et le type ou plutôt SIG (Special Interest Group). Les SIGs sont des centres d’interêt dans lesquels on peut venir contribuer : Kubernetes dispose par exemple de sig-network, sig-cli (kubectl), sig-doc et bien d’autres. Il y a donc forcément un sig dans lequel on peut y mettre son petit coup de pinceau.

J’ai surtout retenu le conseil de Jason : “Si tu vois une issue mais que tu ne sais pas comment faire, dis simplement que tu veux travailler dessus ! il y aura toujours quelqu’un pour t’aider.

  • Lunch

Le 2ème jour avait lieu le Diversity Lunch.
Le principe : s’installer à une table ronde et échanger avec des personnes (expert.s.es, novices …) de la communauté et ouvert à tout le monde bien sûr.
Je me suis préalablement inscrite à la table Pair-Programing, un moment idéal pour se lancer dans la contribution non ? Hippie Hacker s’est tout de suite proposé de se mettre en binôme avec moi. Et Hop ! Ma 1ère PR proposée et approved par Nikhita Raghunath ✌️. Et tout cela en mangeant un bon repas.
J’ai passé un super moment avec eux !
Maintenant il faut poursuivre dans cette lancée !

Table Pair-Programing Diversity Lunch
  • Room pour nos Gnomes

Un espace dédié aux enfants est également prévu. Je suis maman de 2 enfants et j’avoue que cela m’a beaucoup touchée. Imaginez une conférence à l’autre bout du monde, y emmenez ses enfants pour profiter du voyage et pouvoir y assister tout en sachant que vos enfants peuvent être gardés gratuitement ?
J’ai manqué de temps pour avoir plus de détails sur ce service, mais c’est encourageant pour les papas & mamans dans la tech !

Ma sélection de Talks

Pas facile de choisir parmi toutes les sessions proposées sur un même créneau. (Heureusement elles sont disponibles en replay ici)

Ahmet Alp Balkan, Developer Advocate chez Google nous fait une démonstration de Krew, qui est un gestionnaire de packages pour les plugins Kubectl (CLI qui permet d’interagir avec l’API de Kubernetes). L’objectif est de rendre le partage de ces plugins beaucoup plus simple et également d’inciter les développeurs.euses à soumettre. Un SIG est maintenant disponible depuis avril 2019.

C’est toujours un plaisir de voir Ahmet partager avec beaucoup de simplicité et de facilité. Il apporte beaucoup dans cette communauté. Si vous vous intéressez à Kubernetes c’est un mentor à suivre !

Karol Golab and Beata Skiba font partie du SIG Kubernetes autoscaling et travaillent actuellement sur le VPA (Vertical Pod Autoscaling)
Ils abordent ici la limitation actuelle de Kubernetes : les Pods ne peuvent pas être redimensionnés (CPU/ Mémoire) sans être redémarrés. Et dans la Vraie vie, les besoins en ressources durant la vie d’un Pod peuvent varier en fonction de plusieurs facteurs.
Le VPA permet une mise à l’échelle verticale des pods et peut être exécuté en trois modes :
* Off : proposition de valeurs mais ne fait pas de changement.
* Initial : mise à jour des demandes de ressources (request) uniquement pour les pods nouvellement créés.
* Auto, mise à jour des demandes de ressources pour les pods courants.

Les valeurs de demande de resource sont immuables dans kubernetes, c’est pour cette raison que les Pods doivent être redémarrés. Pour pouvoir mettre à jour ces ressources sans restart il faut modifier un certain nombre de concepts clés de Kubernetes : Scheduler, Kubelet et Quota.
Autant vous dire que rendre un champs variable n’est pas simple dans Kubernetes ! Cela implique la coordination de plusieurs SIGs. Une KEP (Kubernetes enhancement proposal) ou demande d’amélioration est en cours …
To be continued!

On explore avec Amy Chen et Eryn Muetzel (VMWare) les Namespace dans Kubernetes. Ce talk nous permet de voir les différentes manières d’organiser ses clusters en fonction de la structure et la taille de son/ses équipes Tech.
Un namespace est un cluster virtuel. L’organisation de ces namespaces a un impact sur l’identité, les limites des ressources et la sécurité des clusters. Ils peuvent être gérés soit par team, par environnement, par branche (git) …

Différentes organisations de Namespaces

Amy et Eryn encouragent l’utilisation des namespaces afin d’optimiser et regrouper les charges de Travail des clusters. Cela rend plus efficace la gestion de la sécurité (RBAC, Pod security policies, Network policies, Image policies, Label policies) et des quotas. Ce qui augmente la productivité des développeurs puisqu’ils n’ont plus à se soucier de la gestion du cycle de vie du cluster.

Organisation plus complexe

Mais quand on se retrouve à gérer plusieurs clusters avec plusieurs namespaces partagés cela devient vite très complexe. Les admissions contrôleur (contrôleurs d’accès) peuvent également être utilisées pour appliquer des politiques individuelles. C’est là que OPA (Open Policy Agent) entre en jeu: un framework de gouvernance et de validation des règles pour les clusters.
Ce talk permet de comprendre l’importance des namespaces et le partage de ressources.

Le chaos testing (ou engineering) c’est quand on a le droit de tout casser en production afin de voir comment toute la stack se comporte — concept popularisé par Netflix avec Chaos Monkey. Cela donne envie non ?
Nous, les Devs, il nous arrive de faire du Chaos mais sans le vouloir !
Thomas Graf nous montre dans ce talk comment faire de l’injection d’erreur (mais volontairement cette fois-ci 😉).

La recette se base sur les ingrédients suivants :

Envoy & ses extensions Go : proxy qui gère parfaitement le trafic réseau dans k8s.
eBPF : un traceur du noyaux Linux permettant de manipuler les paquets réseau (si j’ai bien compris!)
Cilium (CNI): un firewall qui se sert de eBPF.

Les entêtes des requêtes sont ainsi modifiées afin d’injecter une erreur (504 par exemple) dans la réponse. Comment ?
A coup de yaml :

Fault injection with Cilium

Lors de cette KubeCon il y a eu pas mal de sessions autour du Chaos engineering mais aussi beaucoup de REX sur les failures : la suppression accidentelle d’un cluster Kubernetes (David Xia de chez Spotify) par exemple.
Le chaos, j’avoue m’attire beaucoup mais ça doit être l’envie de destruction qui sommeille en moi depuis le plus jeune âge …

Pour résumer

Voilà mon petit partage de ma 1ère KubeCon. J’appréhendais un peu cette conf “de barbus” et bien je me suis complètement fourvoyée. La diversité et l’inclusion étant tellement présentes, la bienveillance qui règne , je m’y suis sentie sereine. Je n’ai qu’une envie: y retourner l’année prochaine !

Les keynotes, les sessions sont top. J’aurai pu vous parler du sujet Buzz de cette année : SMI (Service Mesh Interface) mais il y a déjà pas mal d’articles sur le sujet. J’ai donc opté pour mon expérience plutôt personnelle :)
D’ailleurs, sur ce plan, c’était l’opportunité pour moi de rencontrer des contributeurs de projets Open-Source comme la team Jetstack (Cert-Manager — SSL auto gen) ou encore VMWare Contour (reverse proxy). J’utilise ces outils et j’avais envie de partager avec eux mon utilisation et mes feedbacks.
Les talks sont en replay mais pas les rencontres ! et en plus ça fait travailler son anglais (oui … j’en ai bien besoin 😅).

Pour finir, le challenge de réunir la french community pour une photo (une partie car compliqué de réunir tout le monde et au même endroit) — Merci Alexis Chotard pour cette super idée :)

French community at KubeCon Barcelona (photo — Aymeric Weinbach)

Merci iAdvize & GTH de m’avoir offert cette opportunité !
Merci à Arthur VARENNES & Pierre Larboulette pour votre aide ! 😃🙏

--

--