谷歌開發者佈道師談企業中採用Kubernetes的最佳實踐

谷歌開發者佈道師Ray Tsang在2019 SpringOne平臺大會上談到了開發者在組織中採用Kubernetes時可以使用的工具和最佳實踐。

對於應用程序開發人員來說,容器化和採用容器平臺(如Kubernetes)已經成爲一個挑戰。構建容器鏡像涉及到Dockerfile,從長遠來看,創建和維護它們非常麻煩,而且容易出錯。此外,IDE工具對開發和維護基於容器的應用程序的支持一直很差,這通常會減慢整個軟件開發週期。

Spring Cloud Kubernetes項目提供了用於訪問Kubernetes本地服務的公共接口。該項目的主要目標是爲運行在Kubernetes上的Spring Cloud和Spring Boot應用程序提供輔助。

Tsang談到了TestContainers,一個Java庫,支持使用通用數據庫、Selenium Web瀏覽器或其他可以通過Docker容器運行的服務器進行JUnit單元測試。TestContainers讓數據訪問測試、應用程序集成測試和UI測試變得更加容易。你可以在本地測試大多數基於容器的應用程序組件。

他還談到了通過了解Java應用程序內存使用情況來避免發生OOM的重要性。Cloud Foundry Java Build Pack Memory Calculator可以用來計算整體的JVM內存配置,確保應用程序在不超過容器內存限制的情況下運行良好,並且不會被回收。

Tsang還提到了之前的一個有關容器最佳實踐的演講,他在演講中討論瞭如何建立和管理容器的最佳實踐。比如,不用root用戶身份運行容器,並解釋瞭如何確保鏡像不會佔用太多空間,以及如何避免容器耗盡空間。大多數鏡像是以root用戶身份運行的,開發人員應該更改這個設置,限制容器的權限。

其他工具包括JibSkaffold,用於快速構建鏡像和縮短開發週期。

Jib爲沒有Docker守護進程的Java應用程序構建優化的Docker和Open Container Initiative (OCI)鏡像。它會自動創建Dockerfile,即使沒有在本地安裝Docker也可以運行。Jib可以作爲Maven和Gradle的插件使用,也可以作爲Java庫使用。

Skaffold是一個命令行工具,用於Kubernetes應用程序的持續開發。它可被用在應用程序的構建、推送和部署的所有工作流步驟中。Skaffold還提供了用於CI/CD管道的構建塊和自定義能力。

Tsang還討論了配置運行在Kubernetes內部的Java應用程序的最佳實踐,比如健康檢查、零停機部署、外部化配置和日誌記錄。

原文鏈接

Ray Tsang on Tools and Best Practices for Kubernetes Adoption

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章