您好,登錄后才能下訂單哦!
這篇文章給大家介紹Kubebuilder中怎么使用CRD構(gòu)建Kubernetes API的SDK,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。
我們?nèi)绾尾拍茏?a title="MySQL" target="_blank" href="http://kemok4.com/mysql/">MySQL、Spark和Cassandra這樣的應(yīng)用程序來(lái)管理自己,就像Kubernetes Deployments和Pods一樣?我們?nèi)绾闻渲眠@些應(yīng)用程序?yàn)樽约旱牡谝活?lèi)API,而不是StatefulSets、Services和ConfigMaps的集合?
我們一直致力于這個(gè)問(wèn)題的解決方案,并很高興推出kubebuilder。這是一個(gè)全面的開(kāi)發(fā)工具包,使用CRD快速構(gòu)建和發(fā)布Kubernetes API和控制器。Kubebuilder支持項(xiàng)目和API定義,基于controller-runtime庫(kù)構(gòu)建。
為什么使用Kubebuilder和Kubernetes API?
應(yīng)用程序和群集資源通常需要一些操作,無(wú)論是使用新副本替換失敗的副本,還是在重新分析數(shù)據(jù)時(shí)縮放副本數(shù)量。運(yùn)行MySQL應(yīng)用程序可能需要安排備份,在擴(kuò)展后重新配置副本,設(shè)置故障檢測(cè)和修復(fù)等。
使用Kubernetes API模型,管理邏輯直接嵌入到特定于應(yīng)用程序的Kubernetes API中,例如,“MySQL”API。然后,用戶(hù)使用kubectl等工具通過(guò)YAML配置聲明性地管理應(yīng)用程序,就像它們對(duì)Kubernetes對(duì)象一樣。此方法稱(chēng)為應(yīng)用程序控制器,也稱(chēng)為操作器(Operator)??刂破魇侵С趾诵腒ubernetes API的強(qiáng)大技術(shù),可用于構(gòu)建除應(yīng)用程序之外的多種解決方案,例如Autoscalers、Workload API、Configuration API、CI/CD系統(tǒng)等。
然而,雖然開(kāi)發(fā)者可以在原始API機(jī)器之上構(gòu)建新的控制器,這樣做是一種“從零開(kāi)始”的DIY經(jīng)驗(yàn),要求開(kāi)發(fā)者學(xué)習(xí)有關(guān)如何實(shí)現(xiàn)Kubernetes庫(kù)的低層細(xì)節(jié),手寫(xiě)樣板代碼并且建自己的解決方案用于集成測(cè)試、RBAC配置、文檔等。Kubebuilder通過(guò)應(yīng)用從構(gòu)建核心Kubernetes API中學(xué)到的經(jīng)驗(yàn),使這種體驗(yàn)變得簡(jiǎn)單容易。
構(gòu)建應(yīng)用程序控制器和Kubernetes API入門(mén)
通過(guò)提供創(chuàng)建控制器和Kubernetes API的結(jié)構(gòu)化解決方案,開(kāi)發(fā)者可以使用從開(kāi)發(fā)核心Kubernetes API中學(xué)到的經(jīng)驗(yàn)教訓(xùn)和最佳實(shí)踐,獲得“開(kāi)箱即用”的體驗(yàn)。使用kubebuilder創(chuàng)建新的“Hello World”控制器非常簡(jiǎn)單:
- 創(chuàng)建項(xiàng)目:kubebuilder init
- 定義新的API:kubebuilder create api
- 構(gòu)建并運(yùn)行提供的main函數(shù):make install & make run
這將生成API和Controller供用戶(hù)修改,以及集成測(cè)試、RBAC規(guī)則、DockerfilesMakefile等。在實(shí)現(xiàn)代碼寫(xiě)好添加到項(xiàng)目之后,用戶(hù)創(chuàng)建工件通過(guò)以下方式發(fā)布他們的API:
- 從提供的Dockerfile構(gòu)建并推送容器映像:make docker-build & make docker-push
- 部署API:make deploy
無(wú)論您已經(jīng)是控制器的愛(ài)好者,還是只想了解是什么,請(qǐng)查看kubebuilder代碼或查看kubebuilder書(shū)中的示例,以了解構(gòu)建控制器可以是簡(jiǎn)單易用。
Kubebuilder是SIG API Machinery旗下的一個(gè)項(xiàng)目,由Google、Red Hat、VMware、華為等眾多公司的貢獻(xiàn)者積極開(kāi)發(fā)。
關(guān)于Kubebuilder中怎么使用CRD構(gòu)建Kubernetes API的SDK就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。