持續部署
了解如何使用 Flux 和 Argo CD 等工具自動化 cert-manager 的安裝。
簡介
您可以直接使用 cert-manager Helm chart,搭配 Flux、ArgoCD 和 Anthos 等工具,您也可以使用 helm template 輸出 YAML 來產生客製化的 cert-manager 安裝清單,這些清單可以導入您偏好的部署工具。
本頁包含關於如何使用部分這些工具安裝 cert-manager 的注意事項。
📢 請協助我們改進此頁面,貢獻關於使用 cert-manager 與常見 GitOps 和持續部署工具的注意事項或簡短教學。
使用 Flux Helm Controller
cert-manager Helm chart 可以由 Flux Helm Controller 安裝。
首先建立一個 HelmRepository
資源,設定 cert-manager Helm 儲存庫的 URL。然後建立一個 HelmRelease
資源,設定您想要的 cert-manager chart 值和發布版本。
這裡有一個範例,它會安裝 cert-manager 1.12 發布版本的最新修補程式版本,然後升級到 1.13 發布版本的最新修補程式版本。
⚠️ 這是一個簡單的範例,可能不適合用於生產環境。您也應該參考 官方 Flux 範例儲存庫,其中 cert-manager 現在已完全整合。它展示了如何在安裝 cert-manager CRD 和控制器後,以正確的順序部署 ClusterIssuer 資源。
先決條件
您需要 flux
CLI 和一個已安裝 Flux 的 Kubernetes 叢集。
以下是如何在 Kind 叢集上快速安裝 Flux 的方法
kind create clusterflux check --preflux installflux check
建立 HelmRepository
資源
flux create source helm cert-manager --url https://charts.jetstack.io
建立 HelmRelease
資源
將您的 Helm chart 值放在 values.yaml
檔案中。使用 crds.enabled
值,以便 Flux 可以安裝和升級 CRD 資源。
# values.yamlcrds:enabled: true
flux create helmrelease cert-manager \--chart cert-manager \--source HelmRepository/cert-manager.flux-system \--release-name cert-manager \--target-namespace cert-manager \--create-target-namespace \--values values.yaml \--chart-version 1.12.x
更新和升級
當您想要升級到 cert-manager 1.13 發布版本時,您可以簡單地更新 chart 版本中的部分語義版本
flux create helmrelease cert-manager \--chart cert-manager \--source HelmRepository/cert-manager.flux-system \--release-name cert-manager \--target-namespace cert-manager \--create-target-namespace \--values values.yaml \--chart-version 1.13.x
疑難排解
檢查 Flux 事件和記錄中是否有警告和錯誤
flux eventsflux logs
使用 cmctl
檢查 cert-manager webhook 或 CRD 的問題
cmctl check apicmctl version -o yaml
檢查 cert-manager 記錄中是否有警告和錯誤
kubectl logs -n cert-manager -l app.kubernetes.io/instance=cert-manager --prefix --all-containers