目的
kubernetes 1.24 上部署 ceph-rbd-csi
用于支持 CDI 中 datavolume 功能
把 kubevirt 的 images 存放至 ceph 中
您可以通过 Ceph csi 在 Kubernetes v1.13 和更高版本中使用 Ceph Block Device images
该映像动态地提供 RBD images 映射为 Kubernete 卷
将这些 RBD images 映射为运行引用 RBD 支持卷的 pod 节点上的块设备
Ceph 将块设备映像作为集群中的对象进行条带化
要求
kubernetes 1.14+
kube api 及 kubelet 服务 需要支持 --allow-privileged = true
说明
要使用 ceph block device,需要在 kubenetes 上安装配置 ceph-csi
参考图
kubenetes 通过 csi 可以通过两种方法访问 转换为 rados 协议
内核模块,不建议,因为代码更新比较慢
rbd-nbd 命令工具,通过 librbd 转换为 rados (建议,因为代码更新比较快)
转换为 ceph 协议后就可以与 ceph mon, osd 进行直接沟通
ceph 准备
创建池
ceph osd pool create kubernetes
初始化池
rbd pool init kubernetes
创建用户
ceph auth get-or-create client.kubernetes mon 'profile rbd' osd 'profile rbd pool=kubernetes' mgr 'profile rbd pool=kubernetes'
[client.kubernetes]
key = AQAjFtVjmlXdNhAAqM1DHhf2gZEUO2eo05Ka+w==
参考
官方 ceph rbd csi 部署文档
yaml template
镜像需求
名称 | 版本 |
---|---|
k8s.gcr.io/sig-storage/csi-provisioner | v3.2.1 |
registry.k8s.io/sig-storage/csi-snapshotter | v6.0.1 |
registry.k8s.io/sig-storage/csi-attacher | v3.5.0 |
registry.k8s.io/sig-storage/csi-resizer | v1.5.0 |
registry.k8s.io/sig-storage/csi-node-driver-registrar | v2.5.1 |
quay.io/cephcsi/cephcsi | v3.7.2 |
部署
CSIDriver 对象
# kubectl create -f csidriver.yaml
csidriver.storage.k8s.io/rbd.csi.ceph.com created
sidecar 容器与节点 plugin 部署 RBAC
# kubectl create -f c