一、环境信息
主机名 | IP | k8s角色 | rook角色 | 磁盘20G |
---|---|---|---|---|
rook01 | 192.168.86.36 | master,slave | mon,mgr,osd,csi | /dev/sdb-sdd |
rook02 | 192.168.86.37 | master,slave | mon,mgr,osd,csi | /dev/sdb-sdd |
rook03 | 192.168.86.38 | master,slave | mon,mgr,osd,csi | /dev/sdb-sdd |
rook04 | 192.168.86.39 | slave | osd,csi | /dev/sdb-sdd |
二、部署和卸载
1、获取安装源码(使用写博客时最新的版本)
git clone --single-branch --branch v1.7.2 https://github.com/rook/rook.git
2、安装rook-ceph
cd rook/cluster/examples/kubernetes/ceph
kubectl apply -f common.yaml
kubectl apply -f crds.yaml
kubectl apply -f operator.yaml
kubectl apply -f cluster.yaml
#部署客户端,提供ceph集群命令操作入口
kubectl apply -f toolbox.yaml
3、k8s集群节点内访问
通过toolbox工具获取到ceph.conf和keyring拷贝到/etc/ceph中,安装对应版本的ceph-common
4、卸载
#k8s资源清理
cd rook/cluster/examples/kubernetes/ceph
kubectl delete -f toolbox.yaml
kubectl delete -f operator.yaml
kubectl delete -f cluster.yaml
kubectl delete -f crds.yaml
kubectl delete -f common.yaml
kubectl -n rook-ceph get job|tail -n +2|awk '{print $1}'|xargs kubectl -n rook-ceph delete job --force --grace-period=0
kubectl -n rook-ceph get deploy|tail -n +2|awk '{print $1}'|xargs kubectl -n rook-ceph delete deployments.apps --force --grace-period=0
kubectl -n rook-ceph get svc|tail -n +2|awk '{print $1}'|xargs kubectl -n rook-ceph delete svc --force --grace-period=0
kubectl -n rook-ceph get sa|tail -n +2|awk '{print $1}'|grep rook|xargs kubectl -n rook-ceph delete sa --force --grace-period=0
kubectl proxy &
NAMESPACE=rook-ceph
kubectl get namespace $NAMESPACE -o json |jq '.spec = {"finalizers":[]}' >temp.json
curl -k -H "Content-Type: application/json" -X PUT --data-binary @temp.json 127.0.0.1:8001/api/v1/namespaces/$NAMESPACE/finalize
ps -ef |grep "kubectl proxy"|awk '{print $2}'|xargs kill -9
#各个节点硬盘和配置文件清理
yum -y install gdisk
rpm -qa|grep -E 'ceph|librbd|librados'|xargs yum -y remove
vgs|grep ceph|awk '{print $1}'|xargs -n 1 vgremove --yes
for i in {b..d}; do pvremove /dev/sd$i; done
for i in {b..d}; do sgdisk --zap-all sd$i; done
rm -rf /var/lib/rook/