使用Ceph集群作為Kubernetes的動態分配持久化存儲(轉)
阿新 • • 發佈:2018-09-09
get href meta beta cli 持久 ref ces 現在
使用Docker快速部署Ceph集群 , 然後使用這個Ceph集群作為Kubernetes的動態分配持久化存儲。
Kubernetes集群要使用Ceph集群需要在每個Kubernetes節點上安裝ceph-common
1. 為kubernetes創建一個存儲池
# ceph osd pool create k8s 128 pool ‘k8s‘ created
2. 創建用戶
# ceph auth add client.k8s mon ‘allow rx‘ osd ‘allow rwx pool=k8s‘
k8s用戶只能對k8s這個存儲池有讀寫權限,註意一定要有執行權限才能執行ceph命令
通過ceph auth list 查看
client.k8s key: AQC3Hm5Zan9LDhAAXZHCdAF39bXcEwdpV6y/cA== caps: [mon] allow r caps: [osd] allow rw pool=k8s
在存儲池k8s下創建一個鏡像測試下k8s這個用戶是否可以操作
# rbd create k8s/foo --size 1G --id k8s # rbd map k8s/foo --id k8s /dev/rbd0
k8s這個ceph用戶可以對k8s這個存儲池進行操作了
3.為ceph添加一個kubernetes secret
# echo "$(ceph auth get-key client.k8s)"|base64 QVFDM0htNVphbjlMRGhBQVhaSENkQUYzOWJYY0V3ZHBWNnkvY0E9PQo=
ceph-secret.yaml
apiVersion: v1 kind: Secret metadata: name: ceph-secret namespace: kube-system type: "kubernetes.io/rbd" data: key: "QVFDM0htNVphbjlMRGhBQVhaSENkQUYzOWJYY0V3ZHBWNnkvY0E9PQo="
type這一行一定要有
# kubectl create -f ceph-secret.yaml
# kubectl get secret -n=kube-system|grep ceph ceph-secret kubernetes.io/rbd 1 1m
4.創建一個StorageClass
ceph-rbd-storageclass.yaml
apiVersion: storage.k8s.io/v1beta1 kind: StorageClass metadata: name: fast provisioner: kubernetes.io/rbd parameters: monitors: 172.30.30.215:6789,172.30.30.217:6789,172.30.30.219:6789 adminId: k8s adminSecretName: ceph-secret adminSecretNamespace: kube-system pool: k8s userId: k8s userSecretName: ceph-secret
Kubernetes 1.6 以上使用 storage.k8s.io/v1
# kubectl create -f ceph-rbd-storageclass.yaml
# kubectl get storageclass NAME TYPE fast kubernetes.io/rbd
5.測試
ceph-pvc.json
{ "kind": "PersistentVolumeClaim", "apiVersion": "v1", "metadata": { "name": "claim1", "annotations": { "volume.beta.kubernetes.io/storage-class": "fast" } }, "spec": { "accessModes": [ "ReadWriteOnce" ], "resources": { "requests": { "storage": "3Gi" } } } }
# kubectl create -f ceph-pvc.json # kubectl get pvc NAME STATUS VOLUME CAPACITY ACCESSMODES AGE claim1 Bound pvc-28b66dcb-6c82-11e7-94da-02672b869d7f 3Gi RWO 11m
現在就可以使用Ceph RBD作為Kubernetes的動態分配持久化存儲了。
轉自:https://www.itency.com/topic/show.do?id=479247
使用Ceph集群作為Kubernetes的動態分配持久化存儲(轉)