升级至AKS 1.20.7后Cert-Manager停止自动续签Let's Encrypt证书故障
问题根因
你当前的配置混用了cert-manager的新旧API资源与注解,cert-manager v1.4.0 已完全移除对旧 certmanager.k8s.io API组的支持,旧版本API下的资源、注解都不会被控制器识别,这是AKS升级后证书自动续签失效的核心原因。
修复&排查步骤
- 替换所有旧API资源版本
把现有ClusterIssuer、Certificate、Order等资源的API版本从certmanager.k8s.io/v1alpha1统一替换为cert-manager.io/v1,cert-manager v1.0+版本均使用稳定的v1 API,旧API版本的资源不会被新的cert-manager控制器监听处理。 - 修正Ingress注解
你实际Ingress配置中使用的是旧版注解certmanager.k8s.io/cluster-issuer: letsencrypt-prod-p9v2,需替换为你提到的新版标准注解cert-manager.io/cluster-issuer: letsencrypt-prod-p9v2,注意前缀必须带短横线为cert-manager.io。 - 清理过期资源触发重新签发
删除已过期的关联资源,触发cert-manager重新走签发流程:
重新应用修正后的Ingress配置即可触发新的证书签发。# 删除过期TLS密钥 kubectl delete secret tls-secret-p9v2 -n supplier # 删除历史旧订单 kubectl delete order tls-secret-p9v2-4123722043 -n supplier # 删除旧证书资源 kubectl delete certificate tls-secret-p9v2 -n supplier - 验证签发状态
执行以下命令确认流程正常:
若Certificate资源状态显示kubectl get certificate -n supplier kubectl describe certificate tls-secret-p9v2 -n supplierReady=True,说明新证书已签发成功,后续会自动触发续签逻辑。
内容的提问来源于stack exchange,提问作者dmagic
相关产品推荐
相关产品推荐

