1. 版本
| 软件名 | 版本 | 备注 |
|---|---|---|
| docker | 19.03.14 | |
| kubernetes | 1.19.7 | |
| ceph | 14.2.21 | nautilus |
| ceph-csi | release-v3.3 | 手动更新quay.io/cephcsi/cephcsi:v3.3.0为 quay.io/cephcsi/cephcsi:v3.2-canary 否则由于ceph版本问题认证会不通过 |
| external-storage | master |
2. 块存储
2.1. 准备
- 创建ceph pool
ceph osd pool create k8s 64 64
rbd pool init k8s
- 获取ceph keyring
ceph auth get client.admin
# 输出如下
key = AQDk18FgMo7NABAA4ufuz3O6/0lE4vsVgHs1yQ==
- 获取clusterid
ceph -s
# 输出如下
id: 8cfb6405-d75e-466a-8abf-51ba0480d783
...
- 获取mon信息
ceph mon stat
# 输出如下
e2: 3 mons at {
ceph01=[v2:172.16.2.237:3300/0,v1:172.16.2.237:6789/0],ceph02=[v2:172.16.2.238:3300/0,v1:172.16.2.238:6789/0],ceph03=[v2:172.16.2.239:3300/0,v1:172.16.2.239:6789/0]}, election epoch 10, leader 0 ceph01, quorum 0,1,2 ceph01,ceph02,ceph03
- 每个客户端安装
ceph-common
yum install ceph-common -y
2.2. csi模式–当前使用
2.2.1. 配置configmap
-
生成configmap
修改字段
- clusterID
- monitors
cat <<EOF > csi-config-map.yaml
---
apiVersion: v1
kind: ConfigMap
data:
config.json: |-
[
{
"clusterID": "8cfb6405-d75e-466a-8abf-51ba0480d783",
"monitors": [
"172.16.2.237:6789",
"172.16.2.238:6789",
"172.16.2.239:6789"
]
}
]
metadata:
name: ceph-csi-config
EOF
- 导入configmap
kubectl apply -f csi-config-map.yaml
- 配置kms
cat <<EOF > csi-kms-config-map.yaml
---
apiVersion: v1
kind: ConfigMap
data:
config.json: |-
{
}
metadata:
name: ceph-csi-encryption-kms-config
EOF
kubectl apply -f csi-kms-config-map.yaml
2.2.2. 配置secret
- 生成secret
修改字段:- userID
- userKey
cat <<EOF > csi-rbd-secret.yaml
---
apiVersion: v1
kind: Secret
metadata:
name: csi-rbd

本文档详细介绍了在Kubernetes环境中配置Ceph块存储和对象存储(RBD和CephFS)的过程,包括CSI模式的配置、测试、问题排查和解决方案。涉及到的组件包括Docker、Kubernetes、Ceph、ceph-csi和external-storage。在配置过程中,重点强调了CSI模式的使用,包括配置ConfigMap、Secret、RBAC、Provisioner和Node Plugins,并提供了测试PVC和Pod的步骤。同时,文档还提到了旧版external-storage模式的问题以及解决方法,如升级ceph-common版本和调整csi镜像版本。最后,文章列举了一些可能出现的问题,如PVC处于pending状态,以及如何进行故障排查。
最低0.47元/天 解锁文章
268

被折叠的 条评论
为什么被折叠?



