导入镜像 1 2 /app/rook-ceph/images ls |awk '{print "docker load -i"$0}' |bash
上传harbor 修改镜像名称 1 2 3 4 5 6 7 8 9 docker tag quay.io/ceph/ceph:v17.2.5 dockerhub.kubekey.local/rook/ceph/ceph:v17.2.5 docker tag quay.io/cephcsi/cephcsi:v3.7.2 dockerhub.kubekey.local/rook/cephcsi/cephcsi:v3.7.2 docker tag quay.io/csiaddons/k8s-sidecar:v0.5.0 dockerhub.kubekey.local/rook/csiaddons/k8s-sidecar:v0.5.0 docker tag registry.k8s.io/sig-storage/csi-attacher:v4.1.0 dockerhub.kubekey.local/rook/sig-storage/csi-attacher:v4.1.0 docker tag registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.7.0 dockerhub.kubekey.local/rook/sig-storage/csi-node-driver-registrar:v2.7.0 docker tag registry.k8s.io/sig-storage/csi-provisioner:v3.4.0 dockerhub.kubekey.local/rook/sig-storage/csi-provisioner:v3.4.0 docker tag registry.k8s.io/sig-storage/csi-resizer:v1.7.0 dockerhub.kubekey.local/rook/sig-storage/csi-resizer:v1.7.0 docker tag registry.k8s.io/sig-storage/csi-snapshotter:v6.2.1 dockerhub.kubekey.local/rook/sig-storage/csi-snapshotter:v6.2.1 docker tag rook/ceph:v1.10.10 dockerhub.kubekey.local/rook/ceph:v1.10.10
推送镜像 1 2 3 4 5 6 7 8 9 docker push dockerhub.kubekey.local/rook/ceph/ceph:v17.2.5 docker push dockerhub.kubekey.local/rook/cephcsi/cephcsi:v3.7.2 docker push dockerhub.kubekey.local/rook/csiaddons/k8s-sidecar:v0.5.0 docker push dockerhub.kubekey.local/rook/sig-storage/csi-attacher:v4.1.0 docker push dockerhub.kubekey.local/rook/sig-storage/csi-node-driver-registrar:v2.7.0 docker push dockerhub.kubekey.local/rook/sig-storage/csi-provisioner:v3.4.0 docker push dockerhub.kubekey.local/rook/sig-storage/csi-resizer:v1.7.0 docker push dockerhub.kubekey.local/rook/sig-storage/csi-snapshotter:v6.2.1 docker push dockerhub.kubekey.local/rook/ceph:v1.10.10
清理本地镜像 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 docker rmi dockerhub.kubekey.local/rook/cephcsi/cephcsi:v3.7.2 docker rmi dockerhub.kubekey.local/rook/csiaddons/k8s-sidecar:v0.5.0 docker rmi dockerhub.kubekey.local/rook/sig-storage/csi-attacher:v4.1.0 docker rmi dockerhub.kubekey.local/rook/sig-storage/csi-node-driver-registrar:v2.7.0 docker rmi dockerhub.kubekey.local/rook/sig-storage/csi-provisioner:v3.4.0 docker rmi dockerhub.kubekey.local/rook/sig-storage/csi-resizer:v1.7.0 docker rmi dockerhub.kubekey.local/rook/sig-storage/csi-snapshotter:v6.2.1 docker rmi dockerhub.kubekey.local/rook/ceph/ceph:v17.2.5 docker rmi dockerhub.kubekey.local/rook/ceph:v1.10.10 docker rmi quay.io/ceph/ceph:v17.2.5 docker rmi quay.io/cephcsi/cephcsi:v3.7.2 docker rmi quay.io/csiaddons/k8s-sidecar:v0.5.0 docker rmi registry.k8s.io/sig-storage/csi-attacher:v4.1.0 docker rmi registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.7.0 docker rmi registry.k8s.io/sig-storage/csi-provisioner:v3.4.0 docker rmi registry.k8s.io/sig-storage/csi-resizer:v1.7.0 docker rmi registry.k8s.io/sig-storage/csi-snapshotter:v6.2.1 docker rmi rook/ceph:v1.10.10
安装 kubectl label node k8s-master app=ceph kubectl label node k8s-master1 app=ceph
kubectl taint node k8s-master node-role.kubernetes.io/master:NoSchedule- kubectl taint node k8s-master1 node-role.kubernetes.io/master:NoSchedule-
修改 operator.yaml 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 # 120 行 ROOK_CSI_CEPH_IMAGE: "dockerhub.kubekey.local/rook/cephcsi/cephcsi:v3.7.2" ROOK_CSI_REGISTRAR_IMAGE: "dockerhub.kubekey.local/rook/sig-storage/csi-node-driver-registrar:v2.7.0" ROOK_CSI_RESIZER_IMAGE: "dockerhub.kubekey.local/rook/sig-storage/csi-resizer:v1.7.0" ROOK_CSI_PROVISIONER_IMAGE: "dockerhub.kubekey.local/rook/sig-storage/csi-provisioner:v3.4.0" ROOK_CSI_SNAPSHOTTER_IMAGE: "dockerhub.kubekey.local/rook/sig-storage/csi-snapshotter:v6.2.1" ROOK_CSI_ATTACHER_IMAGE: "dockerhub.kubekey.local/rook/sig-storage/csi-attacher:v4.1.0" # 502 行 ROOK_CSIADDONS_IMAGE: "dockerhub.kubekey.local/rook/csiaddons/k8s-sidecar:v0.5.0" # 543 行 nodeSelector: app: ceph # 548 行 image: dockerhub.kubekey.local/rook/ceph:v1.10.10
修改 cluster.yaml 1 2 3 4 5 6 7 8 9 10 11 12 13 # 24 image: dockerhub.kubekey.local/rook/ceph/ceph:v17.2.5 nodes: - name: "k8s-master" devices: - name: "vdd" - name: "k8s-master1" devices: - name: "vdd" - name: "k8s-node1" devices: - name: "vdb"
启动资源 1 2 3 4 kubectl create -f crds.yaml -f common.yaml -f operator.yaml kubectl logs deploy/rook-ceph-operator -n rook-ceph kubectl get pods -n rook-ceph -o wide
启动集群 1 kubectl create -f cluster.yaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 # 21 image: dockerhub.kubekey.local/rook/ceph/ceph:v17.2.5 kubectl create -f toolbox.yaml # 登录 kubectl exec -it deploy/rook-ceph-tools -n rook-ceph -- /bin/bash # 查看集群状态 ceph -s # 查看osd状态 ceph osd df ceph osd utilization ceph osd pool stats ceph osd tree # crash ceph crash ls ceph crash info [id] # 查看ceph容量 ceph df # 查看rados容量 rados df # 查看pg状态 ceph pg stat
开启 dashboard 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 # cluster.yaml默认为开启状态 # spec: # dashboard: # enable : true port:8080 ssl: false # 查看 dashboard 网络状态 kubectl get svc -n rook-ceph # 修改配置 不建议使用 # type 为 NodePort# nodePort: 30330 kubectl edit svc -n rook-ceph rook-ceph-mgr-dashboard # 或者使用 dashboard-external-https.yaml kubectl create -f dashboard-external-http.yaml kubectl delete svc/rook-ceph-mgr-dashboard -n rook-ceph
dashboard账号密码 1 kubectl get secret rook-ceph-dashboard-password -n rook-ceph -o jsonpath="{['data']['password']}"|base64 --decode&&>echo
创建RBD 1 kubectl create -f csi/rbd/storageclass.yaml
创建 filesystem 1 2 kubectl create -f filesystem.yaml kubectl create -f csi/cephfs/storageclass.yaml
创建 RGW 1 2 3 4 kubectl create -f object.yaml kubectl create -f rgw-external.yaml kubectl -n rook-ceph get cephobjectstore
卸载 清理osd 1 2 3 4 5 6 7 8 lsblk vgs lvs rm -rf /var/lib/rook sgdisk --zap-all /dev/vdb dd if=/dev/zero of="/dev/vdb" bs=1M count=100 oflag=direct,dsync