本文永久链接: https://www.xtplayer.cn/kubernetes/storage/k8s-storage-ceph/

  1. 本文编写的前提是已有正常工作的 ceph 存储服务,并且 Rancher 集群能正常访问 ceph 存储服务,另外这里我们对接的是 Rancher 持久化存储的存储类。\
  1. 随着 UI 翻译的更新,可能有些参数名称与实际名称不相同。

配置 ceph secret

Rancher 连接 ceph 集群需要 ceph secret,在 ceph 服务器中执行以下命令生成 ceph secret:

ceph auth get-key client.admin |base64

创建 secret 对象

key 替换为实际 ceph 的 secret,然后 import yaml 到 rancher 集群。

apiVersion: v1
kind: Secret
metadata:
type: "kubernetes.io/rbd"
data:
key: QVFEMDJ1VmE0L1pxSEJBQUtTUnFwS3JFVjErRjFNM1kwQ2lyWmc9PQ==

UI 配置存储类

  1. 进入集群视图,在存储菜单下选择存储类

  2. 设置存储名称,并选择 ceph-rbd

  3. 配置 ceph-rbd 参数,填写对应的 ceph-monitor 地址和管理员 ID(),还有 secret-name

    • 监控:ceph-monitor 地址
    • 管理员 ID:ceph-monitor 登录账户
    • 管理密文命名空间:管理密文导入的命名空间,根据实际导入的命名空间填写
  4. 点击页面最下方的保存

创建应用并挂载数据卷

方法一:手动创建卷再挂载

  1. 切换到项目视图,依次点击工作负载/ 数据卷/ 添加卷

  2. 填写卷配置信息,比如选择对应的存储类和卷的大小

  3. 点击页面下方的创建

  4. 创建工作负载,选择对应的存储卷和挂载的目录

  5. 通过 web 终端登录 Pod 查看挂载情况

  6. 登录 ceph server 查看

方法二:创建应用的时候同时创建卷

  1. 创建工作负载,配置数据卷选择添加新的持久化卷(声明)

  2. 配置相应参数,比如添加卷声明名称,选择对应的存储类容量大小

  3. 配置容器的挂载路径

  4. 启动工作负载并登录容器查看卷挂载

  5. 登录 ceph server 查看

常见问题

如果出现以上问题,请检查 worker 节点上是否有加载 RBD 模块。执行 lsmod | grep rbd 查看是否有信息返回,如果没有则执行 modprobe rbd 进行模块加载。