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 :
- 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.
- Solutions Appliquées
- 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).
-
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.
- 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
- 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
- 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
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.