日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

k8s源码分析 pdf_rook源码分析之一:rook架构解析

發(fā)布時(shí)間:2023/12/1 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 k8s源码分析 pdf_rook源码分析之一:rook架构解析 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

rook簡(jiǎn)介

Rook是一款云原生環(huán)境下的開源分布式存儲(chǔ)編排系統(tǒng),目前支持 Ceph、NFS、Edegefs、Cassandra、CockroachDB等存儲(chǔ)系統(tǒng)。它實(shí)現(xiàn)了一個(gè)自動(dòng)管理的、自動(dòng)擴(kuò)容的、自動(dòng)修復(fù)的分布式存儲(chǔ)服務(wù)。Rook 支持自動(dòng)部署、啟動(dòng)、配置、分配、擴(kuò)容/縮容、升級(jí)、遷移、災(zāi)難恢復(fù)、監(jiān)控以及資源管理。

Rook依賴底于編排平臺(tái)kubernetes的operate提供服務(wù)。

當(dāng)前,Rook是CNCF的incubating project項(xiàng)目。

rook部署ceph實(shí)例

為了讓大家先感受下rook,這里先利用rook來部署一個(gè)ceph集群。

應(yīng)該來說rook的部署還是非常方便容易的,即使不懂ceph的朋友,也可以利用rook為kubernetes快速搭建一個(gè)ceph后端存儲(chǔ)基座。

// clone rook代碼 git clone --single-branch --branch release-1.3 https://github.com/rook/rook.git cd rook/cluster/examples/kubernetes/cephkubectl create -f common.yaml kubectl create -f operator.yaml// 該條命令執(zhí)行前可用"kubectl -n rook-ceph get pod"命令查看""rook-ceph-operator "是否已經(jīng)是running狀態(tài)了 kubectl create -f cluster.yaml// 為ceph集群創(chuàng)建一個(gè)工具pod,有了該工具pod就可以在該pod里基于該ceoh集群執(zhí)行ceph相關(guān)命令了 kubectl create -f toolbox.yaml

以下便是本次創(chuàng)建成功的所有pod:

usrname@hostname:~$ kubectl get pods -n rook-ceph NAME READY STATUS RESTARTS AGE rook-ceph-mgr-a-76c494c8c-mmcb9 1/1 Running 0 47h rook-ceph-mon-a-59899574c-bph5d 1/1 Running 0 47h rook-ceph-mon-b-5c8467b4b8-kwzhn 1/1 Running 1 46h rook-ceph-mon-c-77c9b7987c-s924g 1/1 Running 0 47h rook-ceph-osd-1-5dcf569f54-s9m2b 1/1 Running 0 46h rook-ceph-osd-2-69f59fd7db-6nrkl 1/1 Running 0 46h rook-ceph-osd-3-79d856fbdc-vlrq6 1/1 Running 0 46h // 工具pod,通過進(jìn)入工具pod后便可以對(duì)該ceph集群執(zhí)行ceph命令了 rook-ceph-tools-686b8cdf49-56jl9 1/1 Running 1 46hrook-ceph-operator-564464fc86-2j664 1/1 Running 0 47h rook-ceph-agent-4bzh2 1/1 Running 0 47h rook-ceph-agent-5gplk 1/1 Running 0 47h rook-ceph-agent-lx8sl 1/1 Running 1 47h rook-discover-hdb62 1/1 Running 1 47h rook-discover-l4n4h 1/1 Running 0 47h rook-discover-wf47r 1/1 Running 0 47h

通過查看上述pod信息,我們發(fā)現(xiàn)ceph中的元素,比如osd,mon以及mgr都是通過pod的形式存在的(更準(zhǔn)確來說應(yīng)該是deployment),每個(gè)osd和mon都對(duì)應(yīng)著一個(gè)pod。

除了ceph相關(guān)的pod,我們發(fā)現(xiàn)還有3個(gè)agent,3個(gè)discover以及1個(gè)operate相關(guān)pod。這幾類pod就是rook的核心,agent和discovery是以daemonset形式部署在所有的存儲(chǔ)機(jī)上的,operater是rook的大腦,以deployment形式存在。

rook架構(gòu)

通過上一小節(jié)用rook部署ceph,我們知道了rook有3個(gè)核心概念,也即operate,discover以及agent。在rook這幅架構(gòu)圖中我們便能發(fā)現(xiàn)他們的蹤跡。

1)Rook Operator

Rook Operater是rook的大腦,以deployment形式存在

  • 其利用k8s的controller-runtime框架實(shí)現(xiàn)了CRD,并進(jìn)而接受k8s創(chuàng)建資源的請(qǐng)求并創(chuàng)建相關(guān)資源(集群,pool,塊存儲(chǔ)服務(wù),文件存儲(chǔ)服務(wù)等)。
  • Rook Operate監(jiān)控存儲(chǔ)守護(hù)進(jìn)程,來確保存儲(chǔ)集群的健康。
  • 監(jiān)聽Rook Discovers收集到的存儲(chǔ)磁盤設(shè)備,并創(chuàng)建相應(yīng)服務(wù)(ceph的話就是osd了)。

可以通過修改operate.yaml中的replicas的副本數(shù)來保證Operate的高可用(默認(rèn)為1)。

2)Rook Discover

Rook Discover是以daemonset形式部署在所有的存儲(chǔ)機(jī)上的,其檢測(cè)掛接到存儲(chǔ)節(jié)點(diǎn)上的存儲(chǔ)設(shè)備。把符合要求的存儲(chǔ)設(shè)備記錄下來,這樣Rook Operate感知到以后就可以基于該存儲(chǔ)設(shè)備創(chuàng)建相應(yīng)服務(wù)了。

3)Rook Agent

Rook Agent是以daemonset形式部署在所有的存儲(chǔ)機(jī)上的,其處理所有的存儲(chǔ)操作,例如掛卸載存儲(chǔ)卷以及格式化文件系統(tǒng)等。

最近開始接觸到Rook源碼相關(guān)工作,因?yàn)橛X得Rook確實(shí)挺好用的,所以后面希望能逐步聊聊自己的理解。

接下來應(yīng)該會(huì)從以下幾方面展開:

  • rook源碼分析之2:rook源碼目錄架構(gòu)以及框架淺析
  • rook源碼分析之3:operate源碼淺析
  • rook源碼分析之4:discover源碼淺析
  • rook源碼分析之5:agent源碼淺析

總結(jié)

以上是生活随笔為你收集整理的k8s源码分析 pdf_rook源码分析之一:rook架构解析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。