最新:获取项目更新 推特Mastodon

持续部署

了解如何使用 Flux 和 Argo CD 等工具自动安装 cert-manager。

介绍

您可以直接使用 cert-manager Helm 图表 与 Flux、ArgoCD 和 Anthos 等工具,也可以使用 helm template 输出 YAML 生成自定义的 cert-manager 安装清单,这些清单可以管道输送到您首选的部署工具。

此页面包含有关如何使用这些工具中的某些工具安装 cert-manager 的说明。

📢 请帮助我们改进此页面,通过贡献有关使用 cert-manager 与常见的 GitOps 和持续部署工具的说明或简短教程。

使用 Flux Helm 控制器

cert-manager Helm 图表可以通过 Flux Helm 控制器 安装。

首先创建一个 HelmRepository 资源,配置 cert-manager Helm 存储库的 URL。然后创建一个 HelmRelease 资源,配置您想要的 cert-manager 图表值和版本。

以下是一个示例,它安装 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 图表值放入 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 版本时,您只需更新图表版本中的部分语义版本即可

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