Kubernetes搭建RooK+Ceph


Rook:

       一個自我管理的分布式存儲編排系統,它本身並不是存儲系統,在存儲和k8s之前搭建了一個橋梁,存儲系統的搭建或者維護變得特別簡單,Rook支持CSI,CSI做一些PVC的快照、PVC擴容等操作。

Rook是專用於Cloud-Native環境的文件、塊、對象存儲服務。它實現了一個自我管理的、自我擴容的、自我修復的分布式存儲服務。

Rook支持自動部署、啟動、配置、分配(provisioning)、擴容/縮容、升級、遷移、災難恢復、監控,以及資源管理。 為了實現所有這些功能,Rook依賴底層的容器編排平台。

目前Rook仍然處於Alpha版本,初期專注於Kubernetes+Ceph。Ceph是一個分布式存儲系統,支持文件、塊、對象存儲,在生產環境中被廣泛應用。

Operator:主要用於有狀態的服務,或者用於比較復雜應用的管理。

Helm:主要用於無狀態的服務,配置分離。 

Rook:

       Agent:在每個存儲節點上運行,用於配置一個FlexVolume插件,和k8s的存儲卷進行集成。掛載網絡存儲、加載存儲卷、格式化文件系統。

       Discover:主要用於檢測鏈接到存儲節點上的存儲設備。

Ceph:

       OSD:直接連接每一個集群節點的物理磁盤或者是目錄。集群的副本數、高可用性和容錯性。

       MON:集群監控,所有集群的節點都會向Mon匯報。他記錄了集群的拓撲以及數據存儲位置的信息。

       MDS:元數據服務器,負責跟蹤文件層次結構並存儲ceph元數據。

       RGW:restful API接口。

       MGR:提供額外的監控和界面。

Rook 官方文檔:https://rook.io/docs/rook/v1.5/ceph-quickstart.html

環境部署

git clone --single-branch --branch v1.5.8 https://github.com/rook/rook.git
cd rook/cluster/examples/kubernetes/ceph
kubectl create -f crds.yaml -f common.yaml -f operator.yaml

修改cluster.yaml文件
kubectl create -f cluster.yaml
  vim cluster.yaml

  storage: # cluster level storage configuration and selection
    useAllNodes: false #所有結節為存儲節點,改為false
    useAllDevices: false  #使用所有的磁盤   改為false



    nodes:
    - name: "k8s-node02"
      devices: # specific devices to use for storage can be specified for each node
      - name: "sdb"  #k8s-node02新加的裸盤
    - name: "k8s-node01"
      directories:
      - path: "/data/ceph"

rook的dashboard  https://rook.io/docs/rook/v1.5/ceph-dashboard.html

 

kubectl -n rook-ceph get service
NAME                         TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
rook-ceph-mgr                ClusterIP   10.108.111.192   <none>        9283/TCP         3h
rook-ceph-mgr-dashboard      ClusterIP   10.110.113.240   <none>        8443/TCP         3h

第一項服務用於報告Prometheus指標,而后一項服務用於儀表板。如果您在集群中的節點上,則可以通過使用服務的DNS名稱https://rook-ceph-mgr-dashboard-https:8443或通過連接到集群IP(在本示例中為)來連接到儀表板https://10.110.113.240:8443。或者使用NodePort暴露端口使用

查詢密碼

kubectl -n rook-ceph get secret rook-ceph-dashboard-password -o jsonpath="{['data']['password']}" | base64 --decode && echo

 

 


免責聲明!

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



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