最新消息:在TwitterMastodon取得專案更新

持續部署

了解如何使用 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 cluster
flux check --pre
flux install
flux check

建立 HelmRepository 資源

flux create source helm cert-manager --url https://charts.jetstack.io

建立 HelmRelease 資源

將您的 Helm chart 值放在 values.yaml 檔案中。使用 crds.enabled 值,以便 Flux 可以安裝和升級 CRD 資源。

# values.yaml
crds:
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 events
flux logs

使用 cmctl 檢查 cert-manager webhook 或 CRD 的問題

cmctl check api
cmctl version -o yaml

檢查 cert-manager 記錄中是否有警告和錯誤

kubectl logs -n cert-manager -l app.kubernetes.io/instance=cert-manager --prefix --all-containers