Files
italiadatacenter/add-on/CephCsi.txt
alessandro 20d506407a primo
2026-07-17 09:42:52 +02:00

118 lines
2.5 KiB
Plaintext

kubectl create namespace ceph-csi
git clone https://github.com/ceph/ceph-csi.git
cd ceph-csi
git checkout v3.15.0
# move to rbd chart.
cd charts/ceph-csi-rbd
cat <<EOF > ceph-csi-rbd-values.yaml
csiConfig:
- clusterID: "004ee854-86cc-4ddc-b7d6-75e4fe962296"
monitors:
- "172.20.1.33:6789"
- "172.20.1.34:6789"
- "172.20.1.35:6789"
provisioner:
name: provisioner
replicaCount: 2
EOF
helm install --namespace ceph-csi ceph-csi --values ceph-csi-rbd-values.yaml ./
Examples on how to configure a storage class and start using the driver are here:
https://github.com/ceph/ceph-csi/tree/devel/examples/rbd
echo "kubernetes" | tr -d '\n' | base64
a3ViZXJuZXRlcw==
cat > ceph-admin-secret.yaml << EOF
apiVersion: v1
kind: Secret
metadata:
name: csi-rbd-secret
namespace: default
stringData:
userID: kubernetes
userKey: AQD2zo5pm8aZIRAAPzWS+dROeX7iJtv5EukfKA==
EOF
# create a secret for admin user.
kubectl apply -f ceph-admin-secret.yaml
----- Create StorageClass ------
cat > ceph-rbd-sc.yaml <<EOF
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: ceph-rbd-sc
annotations:
storageclass.kubernetes.io/is-default-class: "true"
provisioner: rbd.csi.ceph.com
parameters:
clusterID: 004ee854-86cc-4ddc-b7d6-75e4fe962296
pool: k8s-rbd
imageFeatures: layering
csi.storage.k8s.io/provisioner-secret-name: csi-rbd-secret
csi.storage.k8s.io/provisioner-secret-namespace: default
csi.storage.k8s.io/controller-expand-secret-name: csi-rbd-secret
csi.storage.k8s.io/controller-expand-secret-namespace: default
csi.storage.k8s.io/node-stage-secret-name: csi-rbd-secret
csi.storage.k8s.io/node-stage-secret-namespace: default
reclaimPolicy: Delete
allowVolumeExpansion: true
mountOptions:
- discard
EOF
# create a storage class
kubectl apply -f ceph-rbd-sc.yaml;
--- test
cat <<EOF > create-ceph-pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: raw-block-pvc
spec:
accessModes:
- ReadWriteOnce
volumeMode: Block
resources:
requests:
storage: 1Gi
storageClassName: csi-rbd-sc
EOF
# create pvc
kubectl apply -f create-ceph-pvc.yaml
cat <<EOF > create-pod-with-pvc.yaml
apiVersion: v1
kind: Pod
metadata:
name: ceph-pod-pvc
spec:
containers:
- name: ceph-pod-pvc
image: busybox
command: ["sleep", "infinity"]
volumeMounts:
- mountPath: /mnt/ceph_rbd
name: volume
volumes:
- name: volume
persistentVolumeClaim:
claimName: raw-block-pvc
EOF
# create pod
kubectl apply -f create-pod-with-pvc.yaml