Bootstrap

K8S使用ceph-csi持久化存储之cephfs部署验证快照

一、集群和组件版本

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
;