118 lines
2.5 KiB
Plaintext
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 |