EN
en direct

Rook 1.21 impose le protocole msgrv2 de Ceph par défaut

Le 6 octobre 2026, Rook 1.21.0 rend le protocole msgrv2 obligatoire par défaut pour Ceph, ce qui exige un noyau Linux 5.11 ou plus récent. Avant de mettre à niveau, vérifiez la version du noyau de vos nœuds, sinon désactivez explicitement msgrv2 dans le CephCluster.

Une rangée de câbles fibre optique identiques dans une baie, un câble doté d’un connecteur incompatible qui ne s’insère pas dans son port, ce connecteur brillant en jaune ambre.

6 octobre 2026. La version 1.21.0 de Rook est publiée par travisn, l’un des mainteneurs, avec une rupture de compatibilité majeure : le protocole msgrv2 de Ceph devient obligatoire par défaut. 6 octobre 2026. Les tags des charts Helm OCI abandonnent le préfixe v (1.21.0 au lieu de v1.21.0). 6 octobre 2026. Le support de Ceph Umbrella (v21) est annoncé, en attendant la sortie de Ceph 21.2.0. Pourquoi c’est important : msgrv2 exige un noyau Linux 5.11 ou plus récent — un cluster qui tourne sur des nœuds plus anciens peut se retrouver en échec après l’upgrade.

Une rupture de compatibilité au cœur du plan de données

Rook est l’opérateur Kubernetes qui orchestre Ceph : il déploie les moniteurs, les OSD et les services, et réconcilie en continu l’état du cluster avec les ressources CephCluster. Une bonne partie de sa valeur tient à ce qu’il masque la complexité de Ceph — jusqu’au jour où une rupture de compatibilité remonte à la surface.

msgrv2 est le protocole de messagerie moderne de Ceph, celui qui chiffre et authentifie les échanges entre les démons du cluster. Il est le défaut de Ceph depuis plusieurs versions, mais Rook laissait encore la porte ouverte à l’ancien protocole msgrv1. La 1.21.0 referme cette porte : msgrv2 est requis par défaut, et cette exigence dépend d’un prérequis système précis — le noyau Linux 5.11, introduit en février 2021.

Pour mémoire, msgrv2 est arrivé avec Ceph Nautilus (v14, 2019) et s’est imposé comme le protocole par défaut des nouveaux clusters à partir d’Octopus (v15). Sa valeur tient à deux choses : le chiffrement des échanges entre démons et une authentification renforcée via l’entité cephx, là où l’ancien msgrv1 laissait circuler une partie du trafic en clair. Abandonner msgrv1, c’est donc fermer une surface d’exposition réseau sur le plan de données — mais au prix d’une exigence de noyau que tous les parcs n’ont pas encore.

Pourquoi le noyau 5.11 est le point de bascule

La contrainte ne vient pas de Rook lui-même mais de la manière dont le client Ceph dans le noyau (krbd, le pilote RBD) négocie la connexion. msgrv2 repose sur des fonctionnalités du noyau qui n’existent qu’à partir de la 5.11. En dessous, un nœud ne peut pas établir la connexion chiffrée qu’exige le protocole — et les volumes RBD montés sur ces nœuds échouent.

C’est précisément le genre de détail qui se paie au moment le plus inopportun. Une distribution Ubuntu 20.04 embarque un noyau 5.4, RHEL 8 un noyau 4.18, CentOS 7 un 3.10 : autant de socles encore présents dans les parcs qui n’ont pas été rafraîchis. Un opérateur qui met à niveau Rook vers 1.21 sur ces nœuds sans vérifier le noyau peut transformer un simple changement de version en panne de stockage.

La parade est documentée dans les notes de version : pour rester sur l’ancien protocole, il faut désactiver explicitement msgrv2 via le champ network.connections.requireMsgr2: false dans la ressource CephCluster — ou, si l’on passe par le chart Helm, sous la clé cephClusterSpec des valeurs.

yaml
# CephCluster : conserver msgrv1 sur des nœuds dont le noyau est < 5.11
apiVersion: ceph.rook.io/v1
kind: CephCluster
metadata:
  name: rook-ceph
  namespace: rook-ceph
spec:
  network:
    connections:
      requireMsgr2: false

Le piège est que cette désactivation n’est pas un état « neutre » : elle revient à conserver un protocole que Ceph lui-même considère comme hérité. Sur un parc mixte, où certains nœuds sont à jour et d’autres non, la vérification doit se faire nœud par nœud — un seul nœud sous 5.11 suffit à faire échouer les volumes RBD qui y sont montés, même si le reste du cluster est sain.

Les deux autres ruptures de compatibilité

La 1.21.0 en compte deux autres, moins dangereuses mais à connaître avant de mettre à jour :

  • Les tags des charts Helm OCI perdent le préfixe v : un script ou un pipeline qui référence le chart par son tag (v1.21.0) doit passer à 1.21.0. Les outils de mise à jour automatique qui parsent les versions sont les premiers concernés.
  • Les nouvelles installations NFS doivent définir elles-mêmes un CephBlockPool pour le pool .nfs : Rook ne crée plus ce pool automatiquement. Les clusters déjà en place ne sont pas impactés, car le pool existe déjà.

Ce que la 1.21 apporte en contrepartie

La version ne se résume pas à des ruptures. Le gros morceau est l’annonce du support de Ceph Umbrella (v21), la prochaine version majeure de Ceph, qui deviendra utilisable dès la sortie de 21.2.0. À cela s’ajoutent trois nouveautés concrètes pour l’exploitation :

  • QoS RBD : la qualité de service sur les volumes se configure via VolumeAttributesClass, avec une application io.max portée par cgroup v2 et le mounter krbd.
  • Remplacement automatisé des OSD : on peut annoter un déploiement OSD pour le marquer à remplacer ; Rook le draine et le détruit en préservant sa position CRUSH, pour la réutiliser quand un nouveau disque arrive sur le nœud.
  • Certificats TLS du dashboard : ils peuvent désormais venir d’un Secret Kubernetes du même namespace via spec.dashboard.sslCertificateRef.

Enfin, les images des conteneurs du pilote CSI ne sont plus figées par Rook : la configmap rook-csi-operator-image-set-configmap passe à des valeurs vides, laissant ceph-csi-operator utiliser ses défauts intégrés — un point à vérifier pour ceux qui surchargeaient ces images.

Le remplacement automatisé des OSD mérite une attention particulière pour les équipes qui gèrent des disques vieillissants à grande échelle. Plutôt que de supprimer un OSD et de le recréer à la main — en perdant sa place dans la hiérarchie CRUSH et en déclenchant un rebalancing complet — l’opérateur annote le déploiement OSD, et Rook se charge de le drainer puis de le détruire en préservant sa position. Quand un nouveau disque arrive sur le même nœud, la place est déjà réservée. La limite à connaître : ce mécanisme couvre les OSD host-based, pas les OSD adossés à des PVC.

Ce qu’il faut faire avant l’upgrade

La marche à suivre tient en quatre vérifications :

  • Vérifier le noyau de chaque nœud : uname -r, puis comparer à la 5.11. Tout nœud en dessous impose soit une mise à niveau du noyau, soit network.connections.requireMsgr2: false.
  • Auditer les scripts Helm qui référencent le chart Rook par tag et retirer le préfixe v.
  • Vérifier la configmap CSI si vous surchargiez les images des pilotes.
  • Lire le guide d’upgrade officiel avant toute montée de version sur un cluster en production.

La vérification elle-même tient en une commande : uname -r sur chaque nœud, puis une comparaison à la 5.11. Mais méfiez-vous des backports de distribution : un noyau affiché 4.18 sur RHEL 8 peut embarquer des correctifs qui ne changent rien au support de msgrv2 — la version du noyau reste le critère, pas l’étiquette de la distribution. En cas de doute, le test le plus fiable reste de monter un volume RBD de test sur le nœud avant de généraliser l’upgrade.

Verdict

Si tous vos nœuds tournent sous un noyau Linux 5.11 ou plus récent, la 1.21.0 passe sans précaution particulière côté msgrv2 — mais corrigez quand même vos références de tags Helm. Si une partie de votre parc est sous 5.11, deux options s’offrent à vous : mettre à niveau les noyaux (la bonne solution à terme) ou désactiver msgrv2 via requireMsgr2: false pour décaler la migration — en sachant que vous repoussez alors une exigence qui finira par devenir incontournable.

Références

Le brief cyber, chaque mardi

Les failles qui comptent, les correctifs à appliquer, en dix minutes de lecture.

Pas de spam. Désinscription en un clic.
à lire ensuite

Sur le même sujet

Kueue sépare l’admission du scheduling et rend le Job en attente enfin lisible

Le 14 octobre 2026, les mainteneurs de Kueue publient un guide Headlamp-first pour tracer l’admission d’un Job Kubernetes, désormais lisible dans l’UI via un plugin alpha. Avant de chercher pourquoi vos Pods sont en attente, la première question devient : Kueue a-t-il admis le Workload ?

Cloudflare ouvre le code de Void, une plateforme auto-hébergée pour encadrer les apps « vibe-codées » des employés

Le 16 octobre 2026, quatre mois après le rachat de VoidZero, Cloudflare publie en open source Void, une plateforme que les entreprises peuvent auto-héberger pour déployer et gouverner les applications internes construites par l’IA. Si vos employés « vibe-codent » déjà leurs outils, Void donne un toit aux applications — mais pas encore de revue de sécurité obligatoire.

← Retour au fil

Tapez au moins deux caractères.

↑ ↓ naviguer ↵ ouvrir esc fermer