Quoi de neuf chez K8s 1.25 ?

La version 1.25 est disponible depuis le 22 août 2022.

Il y a pas mal d’éléments qui ont évolué. Du coup, je vous propose de faire une petite revue de ce qui a été modifié !

Tout d’abord le nom de cette version est “Combiner”. Le logo est plutôt sympa je trouve :

Pourquoi ce nom ? Kubernetes est le fruit de nombreux composants individuels, qui combinés prennent la forme du projet actuel. “Combiner” a été choisi pour rendre hommage à la collaboration et à l’ouverture d’esprit que les nombreux développeurs et utilisateurs à travers le monde ont su faire. J’avoue que je trouve cela plutôt jolie comme raison. Pas vous ?

Au niveau des modifications majeures, LA principale est la suppression des “PodSecurityPolicy”, remplacés par les “Pod Security Admission” !

Attention, il s’agit d’un “Breaking Change” ! Il faudra vous assurer d’effectuer les migrations !

Un guide a été produit et est disponible à l’adresse suivante : “https://kubernetes.io/docs/tasks/configure-pod-container/migrate-from-psp/” Je vous conseille fortement de le lire !

Un ajout qui m’aurait bien aidé dans une de mes précédentes missions d’ailleurs : les Containers Ephémère (Ephemeral Containers). L’idée est de pouvoir monter un container éphémère (donc à durée de vie limitée) dans un pod existant.

Un cas d’usage : le container A à l’intérieur du pod est crashé, le “kubectl exec” ne fonctionne pas. On crée un container éphémère B à l’intérieur du pod et hop on peut debugger plus facilement! ;-)

Les CGroupsV2 du kernel Linux sont maintenant supportés par kube. Cela fait maintenant 2 ans que ceux-ci sont dans une version stable dans le noyau. Kube est maintenant opérationnel avec eux et peuvent être utilisés. K8S est donc prêt au cas où les V1 seraient dépréciés et remplacés. La V2 permet notamment une amélioration des OOMs Killer en gérant la dépendance entre les processus (qui était impossible à faire avec la V1)  

Au niveau des Network Security, le mot clé endPort est enfin passé en stable. Concrètement, maintenant nous pouvons appliquer une NS sur un ensemble de port. Attention, le Network Policy Provider doit supporter endPort.

Le registre des images a été migré. Désormais les images sont stockées sur “registry.k8s.io”. N’oubliez pas de mettre à jour cela si vous utilisez un Nexus par exemple…

D’autres features ont été travaillées, notamment sur Windows. Les “Local Ephemeral Storage Capacity” en beta (depuis la 1.10 !) sont enfin passés en GA !

D’autres sont passées en beta, notamment le CRD Validation Language etc…

Ceci n’était pas un article exhaustif.

Pour savoir tout ce que contient cette version rendez vous au changelog qui se trouvent à l’adresse suivante : https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.25.md

Je serais curieux de savoir dans les commentaires quelles fonctionnalités vous ont le plus marqué dans cette version ! N’hésitez pas à commenter ! ;)

A oui, j’oubliais, le petit truc qui va peut être faire plaisir au stockage : l’image pour le kube-proxy est passé d’une base Debian à une base Distroless, réduisant ainsi de 50% sa taille. ;)

K8s évolue vite, peut être trop vite même ! Ce n’est pas facile d’être constamment à jour sur ce genre d’outil ! Cette 1.25 est plutôt conséquente, amenant même une breaking change, quelque chose qui va falloir prendre en compte (en plus) dans nos upgrades de cluster.  Il ne reste plus qu’à la déployer pour voir ce qu’elle a dans le ventre !

Au plaisir de se revoir pour la 1.26 ! ;)