28.4.3. 使用现有的 Ceph 集群进行动态持久性存储
使用现有的 Ceph 集群进行动态持久性存储:
生成 client.admin base64 编码的密钥:
ceph auth get client.admin
$ ceph auth get client.admin
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph secret 定义示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为 client.admin 创建 Ceph secret:
oc create -f ceph-secret.yaml
$ oc create -f ceph-secret.yaml secret "ceph-secret" created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证是否已创建 secret:
oc get secret ceph-secret
$ oc get secret ceph-secret NAME TYPE DATA AGE ceph-secret kubernetes.io/rbd 1 5d
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建存储类:
oc create -f ceph-storageclass.yaml
$ oc create -f ceph-storageclass.yaml storageclass "dynamic" created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph 存储类示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 以逗号分隔的 IP 地址 Ceph 监视器列表。此值是必需的。
- 2
- 能够在池中创建镜像的 Ceph 客户端 ID。默认值为
admin
。 - 3
adminId
的机密名称。此值是必需的。您提供的 secret 必须具有kubernetes.io/rbd
。- 4
adminSecret
的命名空间。默认为default
。- 5
- Ceph RBD 池。默认值为
rbd
,但不推荐使用此值。 - 6
- 用于映射 Ceph RBD 镜像的 Ceph 客户端 ID。默认值与
adminId
的 secret 名称相同。 - 7
- 用于映射 Ceph RBD 镜像的
userId
的 Ceph secret 名称。它必须与 PVC 位于同一个命名空间中。除非在新项目中将 Ceph secret 设置为默认值,否则您必须提供此参数值。
验证存储类是否已创建:
oc get storageclasses
$ oc get storageclasses NAME TYPE dynamic (default) kubernetes.io/rbd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建 PVC 对象定义:
PVC 对象定义示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建 PVC:
oc create -f ceph-pvc.yaml
$ oc create -f ceph-pvc.yaml persistentvolumeclaim "ceph-claim-dynamic" created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证 PVC 是否已创建并绑定到预期的 PV:
oc get pvc
$ oc get pvc NAME STATUS VOLUME CAPACITY ACCESSMODES AGE ceph-claim Bound pvc-f548d663-3cac-11e7-9937-0024e8650c7a 2Gi RWO 1m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建 pod 对象定义:
Pod 对象定义示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建 pod:
oc create -f ceph-pod1.yaml
$ oc create -f ceph-pod1.yaml pod "ceph-pod1" created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证 pod 是否已创建:
oc get pod
$ oc get pod NAME READY STATUS RESTARTS AGE ceph-pod1 1/1 Running 0 2m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
过一分钟后,pod 状态更改为 Running
。