概述
本文主要介绍如何通过rook在k8s上部署一套ceph集群。
测试的k8s集群一共三个节点:
1 | [root@kube01 ~]# kubectl get nodes |
Rook部署
clone rook代码
1 | git clone https://github.com/rook/rook.git |
通过kubectl执行rook-ceph的operator
1 | [root@kube01 rook]# kubectl apply -f cluster/examples/kubernetes/ceph/operator.yaml |
等待全部pod都running状态
1 | [root@kube01 rook]# kubectl get pods -n rook-ceph-system -owide |
ceph会使用每个节点的vdb作为osd,所以需要修改cluster/examples/kubernetes/ceph/cluster.yaml的内容
1 | storage: # cluster level storage configuration and selection |
通过kubectl部署ceph集群
1 | [root@kube01 rook]# kubectl apply -f cluster/examples/kubernetes/ceph/cluster.yaml |
等ceph部署完成,可以看到有三个mon,一个mgr和三个osd
1 | [root@kube01 rook]# kubectl get pods -n rook-ceph |
安装ceph-tool,登录到ceph-tools的pod,可以执行ceph相关的命令,查看ceph状态
1 | [root@kube01 rook]# kubectl apply -f cluster/examples/kubernetes/ceph/toolbox.yaml |
登录到ceph-tools Pod
1 | [root@kube01 rook]# kubectl exec -it rook-ceph-tools-544fb656d-tddrx bash -n rook-ceph |
部署好的ceph集群并没有rgw服务,通过下面的方式可以添加rgw服务
1 | [root@kube01 rook]# kubectl apply -f cluster/examples/kubernetes/ceph/object.yaml |
通过下面的方式可以把rgw服务以NodePort的方式对外提供服务
1 | [root@kube01 rook]# kubectl apply -f cluster/examples/kubernetes/ceph/rgw-external.yaml |
下面的部署安装ceph mds
1 | [root@kube01 rook]# kubectl apply -f cluster/examples/kubernetes/ceph/filesystem.yaml |
cluster/examples/kubernetes/ceph/ 目录下还有其他yaml文件,可以对ceph集群进行其他操作,比如启用mgr dashboar,安装prometheus监控等
1 | -rwxr-xr-x 1 root root 8139 Mar 15 15:20 cluster.yaml |