SC

kubectl get sc rook-cephfs-pro -o yaml
allowVolumeExpansion: true
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: |
      {"allowVolumeExpansion":true,"apiVersion":"storage.k8s.io/v1","kind":"StorageClass","metadata":{"annotations":{},"name":"rook-cephfs-pro","resourceVersion":"4471852","uid":"85edbccc-ec24-49b3-89b5-cffe6428be32"},"mountOptions":["discard"],"parameters":{"clusterID":"d08e3e42-115e-11f0-a5ad-005056b31542","csi.storage.k8s.io/node-stage-secret-name":"rook-csi-cephfs-node","csi.storage.k8s.io/node-stage-secret-namespace":"rook-ceph","csi.storage.k8s.io/provisioner-secret-name":"rook-csi-cephfs-provisioner","csi.storage.k8s.io/provisioner-secret-namespace":"rook-ceph","fsName":"myfs","pool":"cephfs.myfs.data"},"provisioner":"rook-ceph.cephfs.csi.ceph.com","reclaimPolicy":"Delete","volumeBindingMode":"Immediate"}
  creationTimestamp: "2025-04-19T12:48:19Z"
  name: rook-cephfs-pro
  resourceVersion: "4514706"
  uid: 43a10b3f-e3e7-48bb-aac1-a2e0b561aa1d
mountOptions:
- discard
parameters:
  clusterID: XXXXX
  csi.storage.k8s.io/node-stage-secret-name: rook-csi-cephfs-node
  csi.storage.k8s.io/node-stage-secret-namespace: rook-ceph
  csi.storage.k8s.io/provisioner-secret-name: rook-csi-cephfs-provisioner
  csi.storage.k8s.io/provisioner-secret-namespace: rook-ceph
  fsName: myfs
  pool: cephfs.myfs.data
provisioner: rook-ceph.cephfs.csi.ceph.com
reclaimPolicy: Delete
volumeBindingMode: Immediate

Récapitulatif des Correctifs Appliqués Voici un résumé des étapes que nous avons suivies pour résoudre les problèmes de provisionnement CephFS avec Rook-Ceph :

  1. Problèmes Rencontrés Erreur 1 : missing configuration for cluster ID → Cluster Ceph non trouvé.

Erreur 2 : rados: ret=-13, Permission denied → Problème d'authentification.

Erreur 3 : missing ID field 'adminID' in secrets → Mauvais format des secrets Kubernetes.

  1. Solutions Appliquées
  2. Correction du clusterID Vérification du ConfigMap rook-ceph-csi-config pour s'assurer qu'il contient le bon clusterID et les bonnes adresses de moniteurs Ceph.

Mise à jour des StorageClasses pour utiliser le bon clusterID (celui du cluster externe).

  1. Création des Secrets Corrects Ancien format (incorrect) :

    bash kubectl create secret ... --from-literal=userID=admin --from-literal=userKey=XXX Nouveau format (correct)

:

bash

Secret pour le provisioner

kubectl -n rook-ceph create secret generic rook-csi-cephfs-provisioner \
  --from-literal=adminID=admin \
  --from-literal=adminKey=AQAJ6e9nOPc0NRAAJ1fw+KheU/jSxY5s58jy4Q==

Secret pour les nœuds (node-stage)

kubectl -n rook-ceph create secret generic rook-csi-cephfs-node \
  --from-literal=adminID=admin \
  --from-literal=adminKey=AQAJ6e9nOPc0NRAAJ1fw+KheU/jSxY5s58jy4Q==

Clé admin : Récupérée via ceph auth get-key client.admin sur le cluster Ceph.

  1. Mise à Jour de la StorageClass Avant : Référence à des secrets incorrects (userID/userKey).

Après : Configuration corrigée pour utiliser adminID/adminKey :

yaml
parameters:
  csi.storage.k8s.io/provisioner-secret-name: rook-csi-cephfs-provisioner
  csi.storage.k8s.io/provisioner-secret-namespace: rook-ceph
  csi.storage.k8s.io/node-stage-secret-name: rook-csi-cephfs-node
  csi.storage.k8s.io/node-stage-secret-namespace: rook-ceph
  1. Redémarrage des Pods CSI Suppression des pods CSI pour recharger la configuration :

bash

kubectl -n rook-ceph delete pod -l app=csi-cephfsplugin
kubectl -n rook-ceph delete pod -l app=csi-cephfsplugin-provisioner
  1. Vérification Finale PVC en statut "Bound" :

bash kubectl get pvc Logs CSI propres :

bash

kubectl -n rook-ceph logs -l app=csi-cephfsplugin-provisioner -c csi-provisioner

Connexion Ceph fonctionnelle :

bash ceph -s # Depuis un nœud Ceph 4. Résumé des Commandes Clés Action Commande Obtenir la clé admin Ceph ceph auth get-key client.admin Créer les secrets Voir section 2.2 Vérifier les secrets kubectl -n rook-ceph get secret -o yaml Mettre à jour la StorageClass kubectl edit sc Redémarrer les pods CSI kubectl -n rook-ceph delete pod -l app=csi-cephfsplugin ✅ Résultat : Les PVC CephFS se provisionnent maintenant correctement sans erreurs de permission ou de configuration.

Si d'autres problèmes surviennent, vérifiez :

La santé du cluster Ceph (ceph -s).

La connectivité réseau entre Kubernetes et les moniteurs Ceph.

Les logs CSI en cas de nouvel échec.

🚀 C'est bon ! Votre stockage CephFS est maintenant opérationnel avec Rook.

Retour à la liste