Sortie de Cilium 1.14

Joseph Ligier
3 min readAug 3, 2023

--

La version 1.14 de Cilium est sortie le 27 juillet 2023. Nous allons voir ce qui me semble intéressant. Si vous voulez en savoir plus n’hésitez pas à aller sur l’article du blog officiel.

Les principales fonctionnalités

  • mTLS : authentification mutuel entre pods en utilisant SPIRE et SPIFFE, fonctionnalité très prisée pour les services mesh. Pour comprendre la mise en œuvre et son fonctionnement, vous pouvez effectuer le lab.
Une fois activée, il suffit d’ajouter les deux lignes entourées en jaune dans les cilium network policies
  • L2 announcement : permet de remplacer un loadbalancer comme MetalLB dans les kubernetes on premises. Pour comprendre la mise en œuvre et son fonctionnement, vous pouvez effectuer le lab.
  • Multi-pool IPAM : possibilité de placer des pods dans des CIDRs spécifiques
  • Cilium on Nomad : installation de Cilium sur l’orchestrateur de container de Hashicorp

Les principales améliorations

  • Envoy Daemonset : par défaut, le processus Envoy est “caché” dans le pod de l’agent cilium. Il est maintenant possible qu’il soit indépendant dans son propre daemonset. Cela a beaucoup d’avantages, notamment pour la gestion. Si par exemple on a besoin de redémarrer l’agent cilium, Envoy continuera à fonctionner.
  • Wireguard : les règles des network policies du niveau 7 du modèle OSI sont maintenant fonctionnelles et on peut chiffrer de nœuds vers un autre nœuds (avant on ne pouvait le faire que de pod en pod d’un autre nœuds). Je ne vois plus de limitations de préférer wireguard par rapport à ipsec.
  • Gateway API : Mise à jour vers la version 0.7 et ajout de la ressource TLS route
  • Big TCP en IPv4 : possibilité d’utiliser le protocole Big TCP en IPv4 avec Cilium (déjà disponible dans la version précédente en IPv6)
  • Les règles “deny” des networks policies sont maintenant considérés comme stable
Exemple de règles “Deny”

Les petites modifications

Comme j’ai créé une série de blog intitulé Mon été avec Cilium et EKS, il y a quelques modifications à apporter avec cette nouvelle version. Je n’ai pas remarqué de grandes nouveautés spécifiques à EKS telles que la délégation de préfixe (sortie lors de la version 1.12).

L’installation en mode eni est un peu modifiée :

helm install cilium cilium/cilium --version 1.14.0 \
--namespace kube-system \
--set eni.enabled=true \
--set ipam.mode=eni \
--set egressMasqueradeInterfaces=eth0 \
--set routingMode=native

La documentation indiquait avant :

helm install cilium cilium/cilium --version 1.13.4 \
--namespace kube-system \
--set eni.enabled=true \
--set ipam.mode=eni \
--set egressMasqueradeInterfaces=eth0 \
--set tunnel=disabled

La différence est le remplacement de l’option tunnel par l’option routingMode. J’aime bien ce petit changement car je trouvais un peu négatif de désactiver le tunnel (Mais pourquoi je dois désactiver ça ?) alors que “le mode de routage est natif” me semble beaucoup plus positif et plus proche de la réalité : si possible, il vaut mieux installer Cilium en mode natif qu’en overlay.

Autre modification : Cilium 1.14 prend en charge officiellement de la version 1.27 de kubernetes. Dans la série de blog et dans mon cookbook sur EKS et Cilium, j’installais déjà Cilium 1.13 sur la dernière version de kubernetes d’EKS : 1.27. Je n’ai pas constaté de problème majeure avec la 1.13. Ça sera intéressant de voir comment Cilium 1.14 se comporte avec EKS 1.27.

Dernière modification : la ligne de commande cilium (cilium cli) utilise maintenant par défaut helm pour l’installation de Cilium (il faut mettre à jour en 0.15 pour cela). Avant cilium cli utilisait déjà helm mais uniquement pour générer un yaml (avec helm template) et l’installait avec kubectl. Ainsi si on a commencé à installer cilium avec la cli, on peut continuer à mettre à jour avec helm.

--

--