-
准备Ceph集群:确保Ceph集群已部署且健康,创建专门用于Kubernetes的存储池(如
k8s-pool
)。 -
生成Ceph用户密钥:
ceph auth get-or-create client.k8s mon 'allow r' osd 'allow rwx pool=k8s-pool'
保存生成的密钥(如
ceph-secret
文件)。 -
创建Kubernetes Secret:
apiVersion: v1 kind: Secret metadata: name: ceph-secret type: kubernetes.io/rbd data: key: <base64编码的Ceph用户密钥>
-
定义StorageClass(动态供应):
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: ceph-rbd provisioner: rbd.csi.ceph.com parameters: clusterID: <Ceph集群ID> pool: k8s-pool imageFeatures: layering csi.storage.k8s.io/provisioner-secret-name: ceph-secret csi.storage.k8s.io/node-stage-secret-name: ceph-secret reclaimPolicy: Delete
-
创建PVC:
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: ceph-pvc spec: storageClassName: ceph-rbd accessModes: - ReadWriteOnce resources: requests: storage: 10Gi
-
验证:PVC绑定后,Pod挂载PVC即可使用Ceph存储。
注意:
- 节点需安装
ceph-common
及内核RBD模块。 - 若使用CephFS,需改用
cephfs-provisioner
并调整参数。