1. ceph节点上创建rbd存储池
ceph osd pool create rbd 128 128
2. 生成 Ceph secret
使用 Ceph 管理员提供给你的 ceph.client.admin.keyring
文件,我们将它放在了 /etc/ceph
目录下,用来生成 secret。
grep key /etc/ceph/ceph.client.admin.keyring |awk '{printf "%s", $NF}'|base64
将获得加密后的 key:QVFDWDA2aFo5TG5TQnhBQVl1b0lUL2V3YlRSaEtwVEhPWkxvUlE9PQ==
,我们将在后面用到。
3. 创建租户namespace
创建 galera-namespace.yaml
文件内容为:
apiVersion: v1
kind: Namespace
metadata:
name: galera
4. 创建 Ceph secret
创建 ceph-secret.yaml
文件内容为:
apiVersion: v1
kind: Secret
metadata:
name: ceph-secret
namespace: galera
type: "kubernetes.io/rbd"
data:
key: QVFDWDA2aFo5TG5TQnhBQVl1b0lUL2V3YlRSaEtwVEhPWkxvUlE9PQ==
5. 创建 StorageClass
创建 ceph-class.yaml
文件内容为:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: ceph-rbd
provisioner: kubernetes.io/rbd
parameters:
monitors: 172.28.7.98,172.28.7.99,172.28.7.100
adminId: admin
adminSecretName: ceph-secret
adminSecretNamespace: galera
pool: rbd #此处默认是rbd池,生产上建议自己创建存储池隔离
userId: admin
userSecretName: ceph-secret
6. 创建pvc
echo -n '
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: test-rbd-pvc
spec:
accessModes:
- ReadWriteOnce
storageClassName: ceph-rbd
resources:
requests:
storage: 2Gi'|kubectl apply -f -