Cert-Manager DNS-01 Challenge pending(Azure环境)求助排查
Cert-Manager TLS Challenge Pending(令牌刷新失败)排查步骤
1. 深度检查MIC Pod运行状态
- 查看MIC Pod的资源使用与重启情况,排查OOM或运行异常:
kubectl top pods -n <mic-namespace>kubectl describe pod <mic-pod-name> -n <mic-namespace> - 提取Pod关联事件,捕捉未被日志记录的异常:
kubectl get events -n <mic-namespace> --field-selector involvedObject.name=<mic-pod-name>
2. 解析Challenge资源的完整错误信息
- 导出Challenge的YAML状态,挖掘隐藏的故障细节:
kubectl get challenge <challenge-name> -n <your-namespace> -o yaml - 重点核查
status.conditions字段,确认是否存在DNS解析失败、Ingress路由拦截等附加提示
3. 验证ClusterIssuer配置有效性
- 检查ACME服务器地址、账户注册状态:
kubectl get clusterissuer <clusterissuer-name> -o yaml - 确认
status.conditions状态为Ready=True,ACME邮箱注册信息正常
4. 检查测试应用的Ingress路由配置
- 确认Ingress已正确关联Certificate,且
/.well-known/acme-challenge/路径未被拦截:kubectl get ingress <ingress-name> -n <your-namespace> -o yaml - 从集群内部测试Challenge路径可达性:
kubectl run -it --rm test-pod --image=curlimages/curl -- curl http://<your-domain>/.well-known/acme-challenge/<token-from-challenge>
5. 排查网络策略与防火墙规则
- 检查cert-manager与MIC所在命名空间的网络策略,确认组件间通信未被禁止:
kubectl get networkpolicy -n <cert-manager-namespace>kubectl get networkpolicy -n <mic-namespace> - 确认集群节点防火墙放行ACME服务器的443端口出站请求
6. 审查Terraform代码配置疏漏
- 检查Certificate资源的
issuerRef字段,确认kind与name和ClusterIssuer完全匹配 - 验证资源创建顺序,确保ClusterIssuer就绪后再创建Certificate、Order等资源
- 检查MIC相关Terraform配置,确认已授予访问cert-manager资源的RBAC权限
内容的提问来源于stack exchange,提问作者kevin-schmid
相关产品推荐
相关产品推荐

