Rook Ceph Cluster
Add Rook Helm repo
helm repo add rook-release https://charts.rook.io/release
Install Rook Ceph
https://rook.io/docs/rook/latest-release/Helm-Charts/operator-chart/#installing
Install rook-ceph operator
helm upgrade --install rook-ceph rook-release/rook-ceph \
--version v1.16.6 \
--namespace rook-ceph --create-namespace \
--values k8s/rook-ceph/rook-ceph-operator-values.yaml
Install ceph cluster
It takes a while for the ceph cluster to stabilize. 5-6 minutes from my experience. Don't continue with the later commands until the cluster is ready.
kubectl --namespace rook-ceph get cephcluster
PHASE should be Ready.
helm upgrade --install rook-ceph-cluster rook-release/rook-ceph-cluster \
--version v1.16.6 \
--namespace rook-ceph --create-namespace \
--values k8s/rook-ceph/rook-ceph-cluster-values.yaml
Enable rook orchestrator
kubectl -n rook-ceph exec -it deploy/rook-ceph-tools -- bash
Inside the pod shell, run:
ceph orch set backend rook
ceph orch status
Output should be
Backend: rook
Available: Yes
Expose RGW ingress
Optional: If you want to expose the S3 compatible RGW endpoint via ingress, run the following command:
envsubst < k8s/rook-ceph/rgw-ingress.yaml | kubectl apply --wait -f -
Ceph Dashboard Setup
Skip certificate verification for Ceph Dashboard
This is required if you are using Traefik as ingress controller and want to access the Ceph Dashboard via HTTPS.
Apply service annotations to skip certificate verification. This is because the service uses a self-signed certificate.
kubectl apply -f k8s/rook-ceph/skip-verify.yaml
Execute the following command to edit the existing service:
kubectl -n rook-ceph annotate svc rook-ceph-mgr-dashboard \
traefik.ingress.kubernetes.io/service.serversscheme=https \
traefik.ingress.kubernetes.io/service.serverstransport=rook-ceph-skip-verify@kubernetescrd \
--overwrite
Enable Ceph Dashboard ingress
envsubst < k8s/rook-ceph/ceph-dashboard-ingress.yaml | kubectl apply --wait -f -
Access Ceph Dashboard
Run the following command to get the dashboard URL
echo "Access the dashboard at https://ceph-dashboard.${CLUSTER_DOMAIN}"
echo "Username: admin"
echo "Password: $(kubectl -n rook-ceph get secret rook-ceph-dashboard-password -o jsonpath="{['data']['password']}" | base64 --decode)"