在 k8s 中使用 rook-ceph

相关链接

rook-ceph 官方指导:

https://rook.io/docs/rook/v1.1/ceph-examples.html

github 项目地址:

https://github.com/rook/rook/tree/master/cluster/examples/kubernetes/ceph

rook-ceph-tools 使用

  1. 执行 toolbox.yaml,生成 rook-ceph-tools-xxxx pod

  2. 使用如下命令进入 ceph 的管理中:

    $ kubectl -n rook-ceph exec -it $(kubectl -n rook-ceph get pod -l "app=rook-ceph-tools" -o jsonpath='{.items[0].metadata.name}') bash
    $ kubectl exec -it rook-ceph-tools-9c9d7744b-2tpwn bash -n rook-ceph
  3. ceph 常用命令

    ceph -s 查看集群状态
    ceph osd status 查看osd状态
    ceph pg stat 查看pg状态
    ceph osd pool set pool pg_num 64 设置pg数量
    ceph osd pool set pool pgp_num 64 设置pgp数量,在集群规模较小,pg数量过少会导致监控警告,此两条命令需一起使用

在宿主机使用 ceph 命令行

  1. 安装 ceph-commonapt-get install ceph-common
  2. 进入 rook-ceph-tools-9c9d7744b-2tpwn 容器,将 /etc/ceph/ceph.conf/etc/ceph/keyring 拷贝到宿主机的 /etc/ceph/ 文件夹下即可。

获取 dashboard 密码

kubectl -n rook-ceph get secret rook-ceph-dashboard-password -o jsonpath="{['data']['password']}" | base64 --decode && echo

问题处理

(combined from similar events): MountVolume.SetUp failed for volume "mysqldata" : CephFS: mount failed: mount failed: exit status 32

https://pkgs.org/download/ceph-common

https://blog.51cto.com/leejia/2501080