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