Helm 會根據 chart、values 與範本,呈現具版本的 Kubernetes 資訊清單。Helm 會在叢集中記錄發布中繼資料,而 Kubernetes 只會協調最終產生的資源;Kubernetes 不理解也不維護 Helm 範本。
Helm 發布 #
將預設值保留在 values.yaml 中,謹慎使用環境專用的值檔案或明確的 --set 值,並在套用前驗證呈現的輸出:
sh
helm lint charts/orders
helm template orders charts/orders -f values-production.yaml
helm upgrade --install orders charts/orders -f values-production.yaml --namespace orders --create-namespace --atomic--atomic 會在 Helm 能判定升級失敗時復原失敗的升級,但不會使外部管理的狀態具備交易性。明確定義 hooks、CRD、資料庫移轉與復原行為。
Argo CD 協調 #
Argo CD 會監看宣告的 Git 修訂版本,並將呈現的期望狀態與叢集狀態進行協調。Argo CD 中的 Helm 來源負責提供 chart 呈現;對於由 GitOps 管理的應用程式,應由 Argo CD 而非操作人員本機的 Helm 用戶端負責協調。
當存取控制與發布週期不同時,請為應用程式原始碼與部署設定使用分開的儲存庫或目錄。限制 Argo CD 專案、儲存庫、目的地與服務帳戶。在啟用自動修剪前檢視偏移,因為修剪會刪除期望資訊清單集合中不存在的資源。
評論
在 GitHub 上閱讀或評論(發表評論需要登入)