本文永久链接:

本文编写的前提是已有正常工作的 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 进行模块加载。