一、安装 ceph 扩展¶
1.1 部署ceph dashboard¶
Ceph Dashboard 是一个内置的基于 Web 的管理和监视应用程序,它是开源 Ceph 发行版的一部分。通过Dashboard 可以获取 Ceph 集群的各种基本状态信息。
[root@master01 examples]# kubectl apply -f dashboard-external-https.yaml
创建NodePort类型就可以被外部访问了
[root@master01 examples]# kubectl get svc -n rook-ceph|grep dashboard
rook-ceph-mgr-dashboard ClusterIP 192.168.104.217 <none> 8443/TCP 29m
rook-ceph-mgr-dashboard-external-https NodePort 192.168.110.46 <none> 8443:30554/TCP 21m
浏览器输入https://10.0.0.60:30554进入访问,Rook 创建了一个默认的用户 admin,并在运行 Rook 的命名空间中生成了一个名为 rook-ceph-dashboard-admin-password 的 Secret,要获取密码,可以运行以下命令:
[root@master01 examples]# kubectl -n rook-ceph get secret rook-ceph-dashboard-password -o jsonpath="{['data'] ['password']}"|base64 --decode && echo
~Y6EA{5V_dTF%Z.@M*:v

1.2 部署ceph工具¶
Rook 工具箱是一个包含用于 Rook 调试和测试的常用工具的容器
[root@master01 examples]# kubectl apply -f toolbox.yaml -n rook-ceph
[root@master01 examples]# kg po -n rook-ceph | grep tools
rook-ceph-tools-559f9c6f87-f77w5 1/1 Running 0 96s
待容器Running后,即可执行相关命令:
#进入调试容器
[root@master01 examples]# kubectl exec -it `kubectl get po -n rook-ceph | grep tools | awk '{print $1}'` -n rook-ceph -- bash
#获取Ceph 集群状态的摘要
bash-4.4$ ceph -s
cluster:
id: ff2c6ded-4e1f-4e4b-b338-ee2af5544802
health: HEALTH_OK
services:
mon: 3 daemons, quorum a,b,c (age 111s)
mgr: a(active, since 105s), standbys: b
mds: 1/1 daemons up, 1 hot standby
osd: 3 osds: 3 up (since 102s), 3 in (since 2h)
data:
volumes: 1/1 healthy
pools: 4 pools, 81 pgs
objects: 33 objects, 503 KiB
usage: 25 MiB used, 300 GiB / 300 GiB avail
pgs: 81 active+clean
io:
client: 1.2 KiB/s rd, 2 op/s rd, 0 op/s wr
#获取关于 Ceph OSD 守护进程的详细状态信息
bash-4.4$ ceph osd status
ID HOST USED AVAIL WR OPS WR DATA RD OPS RD DATA STATE
0 node01 11.0M 99.9G 0 0 0 0 exists,up
1 master03 7264k 99.9G 0 0 0 0 exists,up
2 node02 7264k 99.9G 0 0 2 106 exists,up
二、小结¶
至此通过Rook的这种方式成功的在K8S集群中部署了ceph服务,这种方式可以直接在生 产环境使用。同时也可以看到使用Rook安装Ceph还是很简单的,只需要执行对应的 yaml文件即可。
- 线上环境如有公有云不建议自己搭建CEPH集群;
- 部署搭建只是第一步,后续的优化及维护是重点,如没有相关经验不推荐直接线上使用;
- 数据永远是公司最宝贵的资源之一,一定要能扛起敬畏数据的责任;