重新安装 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
命令 来执行此操作。