一、安装 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

Day02-持久化存储NFS和CEPH-图10

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集群;
  • 部署搭建只是第一步,后续的优化及维护是重点,如没有相关经验不推荐直接线上使用;
  • 数据永远是公司最宝贵的资源之一,一定要能扛起敬畏数据的责任;