最新:在推特Mastodon

重新安装 cert-manager

在某些情况下,可能需要完全卸载并重新安装 cert-manager。例如,当需要将非常旧的 cert-manager 版本更新到最新版本,而一次升级一个次要版本不可行时,这可能就是这种情况,而这正是我们默认推荐的升级策略。

如果 cert-manager CustomResourceDefinition 也被卸载,则意味着将丢失相关的 cert-manager 自定义资源,例如 Certificate。与此相关的主要问题是应用程序停机和不必要的证书重新颁发,如果包含 X.509 证书的 Secret 被删除,就会发生这种情况。您可以使用 --enable-certificate-owner-ref 标志 在 cert-manager 控制器上配置是否应该删除 Secret。如果将此标志设置为 true,则每个 Secret 将对用于创建它的 Certificate 具有所有者引用,并且当 Certificate 被删除时,Secret 将被垃圾回收。此标志的默认值为 false。如果 Certificate 被删除并重新应用,但 Secret 仍然存在于集群中,则新应用的 Certificate 应该能够获取相同的 Secret,并且不应不必要地重新颁发 X.509 证书。

在卸载和重新安装以进行升级时,您仍然应该通读每个跳过的版本的发布说明。

考虑卸载和重新安装 cert-manager(包括 CRD)时需要关注的一些事项

  • 目前 --enable-certificate-owner-ref 标志是否设置为 true,或者它是否曾经被设置为 true?由于早期的一个 bug,添加到 Secret 的所有者引用在将 --enable-certificate-owner-ref 的值从 true 更改为 false 时,不会被删除,请参阅 cert-manager#4788
  • 目前是否有任何证书颁发正在进行?如果是这样,随着自定义资源的删除,进度将丢失。这可能会导致重复的颁发。
  • 是否有必要将 cert-manager 自定义资源清单转换为 v1 API?您可以使用 cmctl convert 命令 来执行此操作。