一、集群和组件版本
K8S集群:1.19.4
Ceph集群:ceph version 15.2.13 (c44bc49e7a57a87d84dfff2a077a2058aa2172e2) octopus (stable)
Ceph-CSI:release-v3.3 (csi版本要对应不然创建pvc要报错)
Linue kernel:5.13.12-1.el7.elrepo.x86_64 (内核版本需要升级新版)
-
镜像版本:
镜像版本可以换成国内源,或者自己的私有仓库。
# 15版本的ceph镜像版本如下
quay.io/k8scsi/csi-provisioner:v2.0.4
quay.io/k8scsi/csi-resizer:v1.0.1
quay.io/k8scsi/csi-snapshotter:v4.0.0
quay.io/k8scsi/csi-attacher:v3.0.2
quay.io/cephcsi/cephcsi:v3.3-canary
quay.io/k8scsi/csi-node-driver-registrar:v2.0.1
二、部署
1 部署Ceph-CSI
1.1 get 代码ceph-csi3.3
# git clone https://github.com/ceph/ceph-csi3.3.git
# cd ceph-csi3.3/deploy/cephfs/kubernetes
1.2 修改yaml文件 (需要修改csi-cephfsplugin.yaml 、csi-cephfsplugin-provisioner.yaml、 csi-config-map.yaml 这3个yaml文件)
1.2.1 修改csi-cephfsplugin-provisioner.yaml和csi-cephfsplugin.yaml文件里面的镜像,其他安装官方文档即可。如下是修改rbd存储需要修改的地方,可以忽略。
修改csi-rbdplugin-provisioner.yaml和csi-rbdplugin.yaml文件,注释ceph-csi-encryption-kms-config配置如图:
# grep "#" csi-rbdplugin-provisioner.yaml
# for stable functionality replace canary with latest release version
#- name: ceph-csi-encryption-kms-config
# mountPath: /etc/ceph-csi-encryption-kms-config/
#- name: ceph-csi-encryption-kms-config
# configMap:
# name: ceph-csi-encryption-kms-config
1.2.2 配置csi-config-map.yaml文件里面ceph集群的信息
---
apiVersion: v1
kind: ConfigMap
data:
config.json: |-
[
{
"clusterID": "0c3dfb1a-b868-4814-a3d4-eeae45072b2f", // 通过ceph集群的ID
"monitors": [
"192.168.1.96:6789","192.168.1.97:6789","192.168.1.98:6789"
]
}
]
metadata:
name: ceph-csi-config
1.3 部署cephfs相关的CSI
[root@master ~]# kubectl get pod -A -o wide |grep csi-cephfsplugin
kube-system csi-cephfsplugin-49v62 3/3 Running 0 10d 192.168.1.91 node1 <none