ceph-csi

# 为 Kubernetes 和ceph-csi创建新用户。执行以下命令并记录生成的密钥:
ceph auth get-or-create client.rbd mon 'profile rbd' osd 'profile rbd pool=rbd' mgr 'profile rbd pool=rbd'
# 生成CEPH-CSI CONFIGMAP
ceph mon dump

<...>
fsid b9127830-b0cc-4e34-aa47-9d1a2e9949a8
<...>
0: [v2:192.168.1.1:3300/0,v1:192.168.1.1:6789/0] mon.a
1: [v2:192.168.1.2:3300/0,v1:192.168.1.2:6789/0] mon.b
2: [v2:192.168.1.3:3300/0,v1:192.168.1.3:6789/0] mon.c
# 生成与以下示例类似的csi-config-map.yaml文件,将“clusterID”替换为fsid,并将“monitors”替换为监视器地址:
$ cat <<EOF > csi-config-map.yaml
---
apiVersion: v1
kind: ConfigMap
data:
  config.json: |-
    [
      {
        "clusterID": "b9127830-b0cc-4e34-aa47-9d1a2e9949a8",
        "monitors": [
          "192.168.1.1:6789",
          "192.168.1.2:6789",
          "192.168.1.3:6789"
        ]
      }
    ]
metadata:
  name: ceph-csi-config
EOF
# 生成后,将新的ConfigMap对象存储在 Kubernetes 中:
kubectl apply -f csi-config-map.yaml
# 最新版本的ceph-csi还需要额外的ConfigMap对象来定义密钥管理服务 (KMS) 提供程序详细信息。如果未设置 KMS,请将空配置放入csi-kms-config-map.yaml文件中或参考https://github.com/ceph/ceph-csi/tree/master/examples/kms中的示例:
$ cat <<EOF > csi-kms-config-map.yaml
---
apiVersion: v1
kind: ConfigMap
data:
  config.json: |-
    {}
metadata:
  name: ceph-csi-encryption-kms-config
EOF
# 生成后,将新的ConfigMap对象存储在 Kubernetes 中:
kubectl apply -f csi-kms-config-map.yaml
# 最新版本的ceph-csi还需要另一个ConfigMap对象来定义 Ceph 配置,以添加到 CSI 容器内的 ceph.conf 文件:
$ cat <<EOF > ceph-config-map.yaml
---
apiVersion: v1
kind: ConfigMap
data:
  ceph.conf: |
    [global]
    auth_cluster_required = cephx
    auth_service_required = cephx
    auth_client_required = cephx
  # keyring is a required key and its value should be empty
  keyring: |
metadata:
  name: ceph-config
EOF
# 生成后,将新的ConfigMap对象存储在 Kubernetes 中:
kubectl apply -f ceph-config-map.yaml
# ceph-csi需要 cephx 凭据才能与 Ceph 集群进行通信。使用新创建的 Kubernetes 用户 ID 和 cephx 密钥生成类似于以下示例的csi-rbd-secret.yaml文件:
$ cat <<EOF > csi-rbd-secret.yaml
---
apiVersion: v1
kind: Secret
metadata:
  name: csi-rbd-secret
  namespace: default
stringData:
  userID: rbd
  userKey: AQD9o0Fd6hQRChAAt7fMaSZXduT3NWEqylNpmg==
EOF
# 生成后,将新的Secret对象存储在 Kubernetes 中:
kubectl apply -f csi-rbd-secret.yaml

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注