You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

cert-manager应用ClusterIssuer时指向错误Webhook服务地址排查

问题根因

请求被路由到错误后端的核心原因是集群中残留了配置错误的准入Webhook资源:错误配置将Webhook后端服务名拼写为cert-manger-cert-manager-webhook(正确拼写应为cert-manager相关,错误项缺失了字母a),Kubernetes APIServer收到ClusterIssuer创建请求时,会按照该残留配置转发请求,自然无法匹配到你集群中实际运行的cert-manager-webhook服务。
此前修改CRD转换Webhook配置的操作无效,是因为拦截资源创建请求的是准入控制Webhook,和CRD版本转换Webhook属于完全独立的两类配置,修改方向不对。

排查步骤
  • 执行以下命令列出集群中所有cert-manager相关的准入Webhook配置:
kubectl get mutatingwebhookconfiguration,validatingwebhookconfiguration | grep cert-manager
  • 逐个检查上述输出的Webhook资源,查看clientConfig.service字段下的服务名、命名空间配置,即可定位到服务名拼写错误的异常条目:
# 将<resource-name>替换为上一步查到的异常Webhook资源名
kubectl describe <resource-name>
修复方案

快速修复

直接编辑定位到的异常Webhook配置,将clientConfig.service.name修改为集群中实际存在的cert-manager-webhook,clientConfig.service.namespace修改为cert-manager,确认接口路径匹配后保存配置,等待10秒左右配置同步生效即可。

kubectl edit <resource-name>

彻底修复(推荐)

完全清理旧版本残留资源后重新部署cert-manager,避免后续其他隐藏配置冲突:

  1. 卸载当前已部署的cert-manager实例
  2. 执行命令清理所有残留Webhook、CRD资源:
kubectl delete mutatingwebhookconfiguration,validatingwebhookconfiguration -l app=cert-manager
kubectl delete crd -l app=cert-manager
  1. 按照你所安装版本的标准部署清单重新部署cert-manager,部署过程中不要手动修改CRD、Webhook类配置。
验证

修复完成后重新执行创建ClusterIssuer的kubectl apply操作,不再出现Webhook连接失败的报错即为修复成功。从提供的资源列表看,cert-manager命名空间下的Pod、Service、工作负载副本状态全部正常,修复配置过程中不需要重启任何工作负载。

内容的提问来源于stack exchange,提问作者Milan Vente

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.31 22:06:19