STEP 1 — Préparer Ceph (sur INFRA-CEPH-01) 1.1 Créer un pool RBD dédié K8s

Créer le pool

ceph osd pool create kubernetes 64 64

Initialiser pour RBD

rbd pool init kubernetes

Vérifier

ceph osd pool ls

1.2 Créer un utilisateur Ceph pour K8s

ceph auth get-or-create client.kubernetes \ mon 'profile rbd' \ osd 'profile rbd pool=kubernetes' \ mgr 'profile rbd pool=kubernetes'

1.3 Récupérer les infos nécessaires

Clé du user kubernetes (à copier)

ceph auth get-key client.kubernetes

Clé admin (pour les secrets K8s)

ceph auth get-key client.admin

Récupérer le cluster ID (fsid)

ceph fsid

→ d08e3e42-115e-11f0-a5ad-005056b31542 (déjà connu)

IPs des monitors

ceph mon dump | grep "^[0-9]"

Format attendu : 192.168.1.231:6789, 192.168.1.232:6789, 192.168.1.233:6789

STEP 2 — Installer le driver Ceph-CSI sur K8s

2.1 Ajouter le repo Helm helm repo add ceph-csi https://ceph.github.io/csi-charts

helm repo update

2.2 Créer le namespace kubectl create namespace ceph-csi-rbd

2.3 Créer le fichier values-ceph-csi.yaml

values-ceph-csi.yaml

values-ceph-csi.yaml

csiConfig: - clusterID: "d08e3e42-115e-11f0-a5ad-005056b31542" monitors: - "192.168.1.231:6789" - "192.168.1.232:6789" - "192.168.1.233:6789"

provisioner: replicaCount: 2

storageClass: create: false

secret: create: false

2.4 Installer via Helm

helm install ceph-csi-rbd ceph-csi/ceph-csi-rbd \ --namespace ceph-csi-rbd \ --values values-ceph-csi.yaml

Vérifier les pods

kubectl get pods -n ceph-csi-rbd

STEP 3 — Créer les Secrets K8s

ceph-secret.yaml

apiVersion: v1 kind: Secret metadata: name: csi-rbd-secret-prd namespace: ceph-csi-rbd stringData: userID: prd-k8S userKey: AQBc8a5pqH70DhAAysOtN/D1WV0bF48uhl2nNw==

kubectl apply -f ceph-secret.yaml

Vérifier

kubectl get secret -n ceph-csi-rbd

STEP 4 — Créer la StorageClass

storageclass-ceph-rbd.yaml

apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: ceph-rbd-prd annotations: storageclass.kubernetes.io/is-default-class: "false" provisioner: rbd.csi.ceph.com parameters: clusterID: "d08e3e42-115e-11f0-a5ad-005056b31542" pool: prd-k8S imageFormat: "2" imageFeatures: layering csi.storage.k8s.io/provisioner-secret-name: csi-rbd-secret-prd csi.storage.k8s.io/provisioner-secret-namespace: ceph-csi-rbd csi.storage.k8s.io/controller-expand-secret-name: csi-rbd-secret-prd csi.storage.k8s.io/controller-expand-secret-namespace: ceph-csi-rbd csi.storage.k8s.io/node-stage-secret-name: csi-rbd-secret-prd csi.storage.k8s.io/node-stage-secret-namespace: ceph-csi-rbd reclaimPolicy: Delete allowVolumeExpansion: true mountOptions: - discard

kubectl apply -f storageclass-ceph-rbd.yaml

Vérifier

kubectl get storageclass

Retour à la liste