Est-ce la fin d’Istio?
Un service mesh sans sidecars
Introduction
Istio a toujours été dans la discussion quand il s’agit de service mesh. Il a ensuite été rejoint par Linkerd qui a beaucoup gagné en popularité, comme on peut le voir dans cet article publié par Linkerd
eux-mêmes en 2022. Ceci a été validé par les chiffres publiés lors du sondage effectué par la CNCF pour l’année 2023 qui montre une utilisation ou une évaluation de Linkerd
en production de 56%
vs 34%
pour Istio
.
Ces deux solutions se basent sur le principe de sidecar pour fournir les fonctionnalités du service mesh. Pourtant, ce n’est pas la seule façon de faire. D’ailleurs, l’utilisation de eBPF qui est une autre approche possible a été un des sujets les plus discutés lors de la KubeCon2024.
Sommaire
Dans cet article, on va explorer les sujets :
- Qu’est-ce qu’un
service mesh
? - Comment fonctionnent les services mesh
sidecar
? - Qu’est-ce que
eBPF
? - Que propose
Cillium
?
Service mesh
Qu’est-ce qu’un service mesh
Un service mesh est un ensemble de composants visant à faciliter la communication entre les services d'une application. Il assure des fonctionnalités qui incluent la découverte de services, le routage du trafic, la sécurité et la visibilité, sans nécessiter de modifications du code de l'application elle-même.
L’implémentation sidecar
Qu’on prenne l’exemple de Linkerd ou d’Istio, l’architecture reste la même. On injecte des conteneurs dans les pods des services qui vont communiquer avec le control plane du service mesh afin d’assurer les différentes fonctionnalités précisées dans le paragraphe précédent.
eBPF and Cilium
eBPF
Comme le dit Liz Rice dans son livre “What is eBPF?”
, extended Berkeley Packet Filtering (eBPF) a évolué d’un simple filtre de paquet réseau à un terme qui désigne un concept plus global.
Ce concept consiste à charger et à exécuter des programmes personnalisés au sein du noyau du système d’exploitation en réponse à un événement déclencheur.
Bien évidemment, eBPF embarque un scanneur permettant de vérifier les programmes fournis afin de s’assurer qu’ils sont sécurisés et qu’ils ne risquent pas d’introduire une vulnérabilité ou d’accéder des données non nécessaires.
Cilium
Cilium est apparu en 2015 en tant que container network interface (CNI). Initialement, Cilium était utilisé pour faire du filtrage au niveau 3 en utilisant les Network Policies.
Le produit a depuis évolué en utilisant eBPF pour proposer plusieurs fonctionnalités qui le font basculer plutôt dans la partie service mesh
qu’un simple CNI
.
En effet, Cilium propose aujourd’hui des fonctionnalités liées au réseau, par Cilium lui-même, des fonctionnalités d’observabilité à travers hubble mais aussi des fonctionnalités autour de la sécurité via tetragon.
L’ensemble de ces 3 domaines est listé sur le site officiel de Cilium, par exemple pour l’aspect réseaux :
Il est à noter que chaque fonctionnalité est expliquée plus en détail au travers d’une page qui lui est dédiée, comme pour la gateway-api par exemple, avec, à chaque fois, des descriptions et des vidéos d’introduction.
Conclusion
Cilium se propose comme une alternative de service mesh, moins complexe et plus légère que les solutions à base de sidecar comme Istio ou Linkerd. Pour y arriver, eBPF est exploitée pour interagir directement au niveau du noyau du système d’exploitation.
Cilium en tant que CNI est déjà présent sur la plupart des clusters Kubernetes chez les fournisseurs de solution Cloud comme Google Cloud, Microsoft Azure ou AWS. Cette popularité, combiné à l’ensemble des fonctionnalités grandissantes que le projet propose, pourrait lui permettre de devenir une des options viables pour un service mesh au même titre qu’Istio et LinkerD.
Enfin, il est intéressant de noter qu’en préparation à cette certification, Cilium a lancé un ensemble de parcours et d’ateliers gratuits qui sont disponibles ici.
Article issu de notre participation à KubeCon + CloudNativeCon
Merci pour votre lecture. Cet article vous a plu, partagez sur vos réseaux 😉
Tahar Jegham - 05/2024
VOUS AVEZ UN PROJET ?
Audit, migration, infogérance ?
Skale-5 vous écoute : contact@skale-5.com
Nous suivre :