Après la sortie de la version Kubernetes v1.24 en avril 2022, Kubernetes revient avec une version v1.25 qui sera disponible le mardi 23 août 2022, une version très attendue avec comme principale nouvelle, le remplacement de PodSecurityPolicy par PodSecurityAdmission.
Les changements majeurs pour Kubernetes v1.25
Suppression et obsolescence de l’API Kubernetes
Politique obsolescence
Kubernetes a une politique d’obsolescence des fonctionnalités bien fournie.
Pour savoir concrètement de quoi on parle voici quelques règles de cette politique, elle stipule que :
- Les API stables ne peuvent être obsolètes que lorsqu’une nouvelle version stable de la même API est disponible
- Les API ont une durée de vie minimale pour chaque niveau de stabilité.
- Une API obsolète est une API qui sera supprimée dans une future version de Kubernetes. Il fonctionnera jusqu’à ce qu’il soit supprimé (au moins un an après son retrait), mais un rappel sera précisé. La migration vers l’API de remplacement sera alors de vigueur
- Les versions d’API généralement disponibles (GA) ou stables peuvent être obsolètes, mais ne doivent pas être supprimées dans une version majeure de Kubernetes.
- Les versions bêta ou préliminaires de l’API doivent être prises en charge après 3 versions obsolètes.
- Les versions alpha ou expérimentales de l’API peuvent être supprimées dans n’importe quelle version sans préavis d’obsolescence.
- Les suppressions sont également soumises à cette politique obsolescence, que l’API ait été supprimée parce que la fonctionnalité est passée de la version bêta à stable, ou simplement parce que l’API n’a pas réussi.
- Chaque fois qu’une API est supprimée, la documentation vous informera de vos options de migration.
Les obsolescences sur la nouvelle version
Les API qui seront obsoletes dans cette version sont les suivantes :
CronJob batch/v1beta1
EndpointSlice discovery.k8s.io/v1beta1
Event events.k8s.io/v1beta1
HorizontalPodAutoscaler autoscaling/v2beta1
PodDisruptionBudget policy/v1beta1
PodSecurityPolicy policy/v1beta1
RuntimeClass node.k8s.io/v1beta1
Suppresion de PodSecurityPolicy
Kubernetes v1.25 supprime PodSecurityPolicy, qui était déjà obsolète dans la v1.21. PodSecurityPolicy a été très utile, mais son utilisation reste compliquée ce qui a créé la nécessité d’un changement radical. Pour résoudre ce problème, PodSecurityPolicy a été supprimé et a été remplacé par PodSecurityAdmission. Il a également été déplacé vers Stable dans cette version. Passer de PodSecurityPolicy à Pod Security Admission est accessible en suivant les instructions de migration .
Migration CSI
Déplacer les plugins de volume dans l’arborescence vers des pilotes CSI hors arborescence est en cours, grâce à la fonctionnalité de migration CSI de base passant en GA dans la v1.25. Il s’agit d’une étape importante vers la suppression complète des plugins de volume dans l’arborescence.
Plusieurs plugins de volume sont obsolètes ou supprimés.
GlusterFS va devenir obsolète dans la v1.25 . Malgré la possibilité d’une migration vers un pilote CSI compatible et la construction d’un pilote CSI la décision de l’obsolescence du plugin GlusterFS à partir des pilotes in-tree a été prise. Dans cette version, il y aura également un plug-in de volume Portworx dans l’arborescence qui deviendra obsolète. Dans le cadre de la migration CSI, Les plugins de volume Flocker, Quobyte et StorageOS dans l’arborescence seront supprimés dans cette version.
Passer à la prise en charge de la version de vSphere
Dans la version Kubernetes v1.25, le pilote de volume vSphere dans l’arborescence ne prendra en charge aucune version de vSphere antérieure à la version v7.0u2.
Nettoyer la propriété de la chaîne IPTables
Sous Linux, Kubernetes crée des chaînes iptables afin d »assurer que les paquets réseau fonctionnent. Bien que ces chaînes et leurs noms aient été un détail d’implémentation interne, certains outils se sont appuyés sur ce comportement. ne prendra en charge que les cas d’utilisation internes de Kubernetes. À partir de la v1.25, le Kubelet s’orientera au fur et à mesure vers la non-création des chaînes iptables suivantes dans la nat table :
KUBE-MARK-DROP
KUBE-MARK-MASQ
KUBE-POSTROUTING
Ce changement sera introduit progressivement via la porte des fonctionnalités IPTablesCleanup . Bien qu’il ne s’agisse pas formellement d’une obsolescence, certains utilisateurs finaux en sont venus à s’appuyer sur un comportement interne spécifique de kube-proxy.
Pour plus d’informations, retrouvez le Mardi 23 août l’équipe de mise à jour Kubernetes sur la chaîne Rancher labs ⬇️
Conclusion
Pour résumé, la nouvelle version Kubernetes v1.25 nous offre des changements majeurs, notamment avec la suppression de PodSecurityPolicy, le nettoyage des plugins de volume ou encore les modifications des chaines iptables.
Nous vous invitons à lire notre article sur la version suivante de k8s : Kubernetes 1.26.