使用Ceph集群作為Kubernetes的動態分配持久化存儲(轉)


   使用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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM