国产精品免费嫩草研究院|无遮羞动漫在线观看AV|国产麻豆精品传媒AV国产在线|村在线观看|寂寞情人1正版|韩国床震韩国床震古|精品系列专区久久

多云容器編排 Karmada-Operator 實(shí)踐

作者:vivo 互聯(lián)網(wǎng)服務(wù)器團(tuán)隊(duì)-Zhang Rong
Karmada作為開源的云原生多云容器編排項(xiàng)目,吸引了眾多企業(yè)共同參與項(xiàng)目開發(fā),并運(yùn)行于生產(chǎn)環(huán)境中 。同時(shí)多云也逐步成為數(shù)據(jù)中心建設(shè)的基礎(chǔ)架構(gòu),多區(qū)域容災(zāi)與多活、大規(guī)模多集群管理、跨云彈性與遷移等場(chǎng)景推動(dòng)云原生多云相關(guān)技術(shù)的快速發(fā)展 。
一、 背景隨著vivo業(yè)務(wù)不斷遷移到k8s上,集群規(guī)模和集群的數(shù)量快速增長(zhǎng),運(yùn)維難度也急劇增加 。為了構(gòu)建多集群技術(shù),我們也自研了多集群管理,但無(wú)法解決我們遇到的更多的問題 。后來(lái)開始對(duì)社區(qū)相關(guān)項(xiàng)目做了細(xì)致的調(diào)研和測(cè)試,我們最終選擇了Karmada 。
主要原因如下:
  • 具備對(duì)多套K8s集群的統(tǒng)一管理能力,業(yè)務(wù)通過服務(wù)維度去管理資源,降低容器平臺(tái)的管理難度 。
  • 跨集群的彈性伸縮和調(diào)度能力,實(shí)現(xiàn)跨集群的資源合理利用,從而提升資源利用率并節(jié)約成本 。
  • Karmada完全使用了K8s原生的API,改造成本低 。
  • 容災(zāi),Karmada控制平面與member集群解藕,集群異常時(shí)支持資源重新分配 。
  • 可擴(kuò)展性,如可以添加自研的調(diào)度插件和添加自研Openkruise解釋器插件等 。
在我們探索怎么使用Karmada的同時(shí),我們也遇到了Karmada自身運(yùn)維的問題 。
社區(qū)部署工具較多,需要用戶自己選擇 。當(dāng)前用戶部署方式如下:
  • Karmadactl
  • Karmada charts
  • 二進(jìn)制部署
  • hack目錄下腳本
對(duì)于上面的幾種工具,在Karmada的社區(qū)開展了問卷調(diào)研,并生成了統(tǒng)計(jì)報(bào)告 。
主要總結(jié)如下:
  • 社區(qū)部署工具較多,需要用戶自己選擇 。
  • 部署腳本也存在缺陷,需要用戶自己解決,github上關(guān)于這方面的提問較多 。
  • 黑屏化操作,沒有提供k8s api操作,用戶難以產(chǎn)品化,我們主要期望對(duì)接我們的容器平臺(tái),實(shí)現(xiàn)可視化安裝 。
  • 缺少CI測(cè)試和部署工具的發(fā)布計(jì)劃 。
  • etcd集群缺少生產(chǎn)環(huán)境的關(guān)鍵功能點(diǎn),如etcd的高可用、定期備份和恢復(fù) 。
  • 需要安裝很多依賴插件,涉及到Karmada控制平面、Karmada的host集群和member集群 。
  • 缺少一鍵部署和配置繁瑣等痛點(diǎn) 。
針對(duì)以上問題,本文將分享Karmada-Operator的vivo實(shí)踐,包括Operator的方案選擇、API、架構(gòu)設(shè)計(jì)和CI構(gòu)建等 。
二、Karmada-Operator的落地實(shí)踐2.1 Operator SDK介紹Operator Framework 是一個(gè)開源工具包,用于以有效、自動(dòng)化且可擴(kuò)展的方式管理 Kubernetes 原生應(yīng)用程序,即 Operator 。Operator 利用 Kubernetes 的可擴(kuò)展性來(lái)展現(xiàn)云服務(wù)的自動(dòng)化優(yōu)勢(shì),如置備、擴(kuò)展以及備份和恢復(fù),同時(shí)能夠在 Kubernetes 可運(yùn)行的任何地方運(yùn)行 。
Operator 有助于簡(jiǎn)化對(duì) Kubernetes 上的復(fù)雜、有狀態(tài)的應(yīng)用程序的管理 。然而,現(xiàn)在編寫 Operator 并不容易,會(huì)面臨一些挑戰(zhàn),如使用低級(jí)別 API、編寫樣板文件以及缺乏模塊化功能(這會(huì)導(dǎo)致重復(fù)工作) 。
Operator SDK 是一個(gè)框架,通過提供以下內(nèi)容來(lái)降低 Operator 的編寫難度:
  • 高級(jí) API 和抽象,用于更直觀地編寫操作邏輯
  • 支架和代碼生成工具,用于快速引導(dǎo)新項(xiàng)目
  • 擴(kuò)展項(xiàng),覆蓋常見的 Operator 用例

多云容器編排 Karmada-Operator 實(shí)踐

文章插圖
如上圖所示,operator sdk可以基于helm、ansilbe和go構(gòu)建operator,我們需根據(jù)當(dāng)前的情況選擇我們合適的operator框架 。
2.2 方案選擇
  • 方案一:golang 開發(fā)Operator

多云容器編排 Karmada-Operator 實(shí)踐

經(jīng)驗(yàn)總結(jié)擴(kuò)展閱讀