Un service mesh sans sidecars
🛠️

Un service mesh sans sidecars

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.

Linkerd & Istio usage
Linkerd & Istio usage

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. 

Architecture Linkerd
Architecture Linkerd
Architecture Istio
Architecture Istio

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 :

Fonctionnalités réseaux de Cilium.
Fonctionnalités réseaux de Cilium.

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

image