模闆對於 GitOps 驅動的自動化是必不可少的

已發表: 2022-05-27

目錄

GitOps 驅動的自動化

Kubernetes 因其易於擴展和管理容器化應用程序而聞名。 它允許您在整個應用程序生命週期中對節點、片段、容器、服務和配置映射進行排序和管理。 通過腳本很難實現這種靈活性和控制。

但是由於 Kubernetes 的基礎設施公告方法,您可以在任何級別定義精確更改。 Kubernetes 使您能夠集成多種工具,以促進容器的自動化規劃、部署和監控。

Helm 就是一個這樣的工具,它是 CNCF 採用的自動化框架,不僅在 Kubernetes 圈子中而且在 GitOps 生態系統中也很流行。 在這篇文章中,我們將了解 Helm 如何通過 Kubernetes 和 GitOps 幫助自動化雲原生應用程序。

什麼是頭盔?

儘管被描述為包管理器,Helm 是一個強大的工具,用於自動化 Kubernetes 應用程序的安裝、部署、升級和管理。 管理 Kubernetes 宣言是一項跨系統變得越來越複雜的任務。 單個排序需要重複的多個 YAML 文件和硬編碼值。 Kubernetes 需要一種更好的方法來通過簡單的打包格式來管理 YAML 文件,這導致了 helm 圖表。 但是,Helm 的用途超出了模板。

圖表

Helm 圖表是可用於 Kubernetes 應用程序的單元。 每個圖表都可以包含文件、元數據和應用程序基礎架構。 用 Go 編寫的圖表將存儲在具有相關變量、版本和描述的特定模板目錄中。 通過將這些圖表作為存檔存儲在存儲庫中,您可以在整個開發團隊中共享它們以供重複使用。

在 Kubernetes 集群中安裝圖表副本後,它被稱為輸出。 每次使用圖表時都會創建一個新版本,這可能會發生多次。 出版物可幫助您監控和安裝圖表。

以下是使用 Helm 時需要了解的一些重要規則。

Chart.YAML:保存圖表描述的主文件

Values.YAML:包含圖表默認值的文件

圖表:帶有子圖表的目錄

模板:定義為模板的 Kubernetes 源目錄

模板

模板文件夾是 Helm 的一個關鍵特性。 它包含應用程序的配置文件,然後將其應用於集群。 模板目錄中的文件從 values.YAML 中調用它們的值。

為什麼選擇 Helm?

Helm 為持續交付環境增加了巨大的價值,因為它帶來了以下好處。

提高生產力:

Helm(以及 Flux 等其他排序工具)允許您使用單個按鈕或單個命令對軟件進行排序。 這將使您的團隊只專注於軟件開發。

使過程更容易:

圖表的概念允許您跨管道(開發、測試和生產)或跨不同團隊的工作流程複製相同的圖表。 這大大減少了問題。

測量:

圖表旨在與 Kubernetes 集群架構保持一致,從而促進可擴展性。

輕鬆取款:

Helm 管理所有版本,從而在出現問題時輕鬆進行更改。

GitOps 同時利用 Helm 和 Flux

Helm 可以管理複雜的發布並在您測量時保持簡單。 然而,隨著變化的逐步引入,Helm 將需要額外的工具來更新 Kubernetes 集群。

Flux 是 Helm 的出色填充解決方案,因為它充當 Helm 與定義整個 Kubernetes 集群和實用程序規範的所有重要 Git 存儲庫之間的橋樑。

Flux 是基於 GitOps 模型的部署自動化解決方案,它使 Git 成為所有更改的起點和真正的源頭。 Flux 允許您保持代碼存儲庫和 Kubernetes 集群之間的一致性,並在引入代碼更改時自動排序。

簡而言之,Flux Helm 通過將圖表從 Git 同步到 Kubernetes 集群來自動發布圖表。

Flux 如何與 Helm 一起工作?

要將 Flux 用作 GitOps 運算符,您需要將所有 Helm 圖表及其 YAML 文件和 Kubernetes 自定義資源保存在 Git 存儲庫中。 此外,您將這些源的不變圖像放在容器註冊表中。

一旦你通過“Pull”請求對 Git 進行了更改,Flux 將檢查你的存儲庫並提供必要的資源。 然後將更改合併到生產集群中。 當然,這簡化了流程,並且您可以做更多事情——例如吸煙測試或批准特定於 SRE 的更改——但現在,讓我們保持簡單。

如果您想了解有關 Flux 2 和 Helm 如何協同工作以提高速度和可靠性同時減少空閒時間的更多信息,請查看 Scott Rigby 的 YouTube 演講。

結論

Helm 顯著降低了運行 Kubernetes 的難度。 它通過圖表或模板的概念為 GitOps 管道增加了巨大的價值。 也就是說,除了模板之外還有其他要求,即端到端部署自動化。 這就是需要使用 Flux(或 Weave GitOps,內置於 Flux)之類的工具來使用 helm 的地方。 此外,類似 Magalix 的解決方案可確保 Helm 版本兼容且安全。

Weave KitApps 是一種持續交付解決方案,可讓您大規模管理 Kubernetes。 這使得任何公司都可以輕鬆採用和實施 GitOps。 Weave GitOps 使用“gitops install”等命令簡化功能集群,以啟用 GitOps 和“gitops add app”添加到您的應用程序。 這些命令抽像出部署自動化中涉及的底層複雜任務。 Weave GitOps 匯集了整個 GitOps 管道,包括 Helm、Flux、Magalix 等,因此您可以開始使用 GitOps,而不會浪費任何時間。

如何成為亞馬遜賣家的簡單步驟

餐飲數字營銷