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

kubectl apply部署Ingress时报webhook调用失败x509证书错误

报错根因

你遇到的x509: certificate signed by unknown authority错误,核心是Kubernetes API Server调用ingress-nginx的准入校验webhook时,无法信任webhook服务端返回的TLS证书,通常是ingress-nginx安装过程中证书自动签发失败、证书过期,或者webhook配置里预置的CA根证书和服务端实际使用的证书不匹配导致的。

排查修复步骤
  • 先确认ingress-nginx组件运行状态
    执行命令查看ingress-nginx命名空间下的Pod运行情况:
    kubectl get pods -n ingress-nginx
    如果存在Pod处于Pending、CrashLoopBackOff等非Running状态,优先排查对应Pod的异常(常见原因是镜像拉取失败、节点资源不足),组件正常运行是后续操作的基础。
  • 校验webhook配置的CA证书
    执行命令导出ingress-nginx的准入校验webhook配置:
    kubectl get validatingwebhookconfiguration ingress-nginx-admission -o yaml > webhook-check.yaml
    打开导出的文件,定位到clientConfig.caBundle字段,该字段存储的是API Server访问webhook时用来校验服务端证书合法性的CA根证书,若该字段为空、内容和实际签发webhook证书的CA不匹配,就会触发当前报错。
  • 重新同步webhook证书(通用修复方案)
    如果你是通过YAML清单安装的ingress-nginx,按以下操作修复:
    1. 删除旧的、执行失败的证书生成任务:
      kubectl delete job ingress-nginx-admission-create -n ingress-nginx
    2. 重新执行你安装ingress-nginx时使用的原始清单apply命令,安装流程会自动重新创建证书生成任务,将正确的CA根证书自动更新到webhook配置中。
      如果你是通过Helm安装的ingress-nginx,携带你原有安装参数执行helm upgrade操作,即可自动同步正确的证书配置到webhook。
  • 测试环境临时绕过方案(禁止生产环境使用)
    如果是本地测试环境需要快速验证应用功能,可以临时删除准入校验webhook跳过证书校验:
    kubectl delete validatingwebhookconfiguration ingress-nginx-admission
    注意:该操作会关闭Ingress资源的语法合法性校验,提交格式错误的Ingress配置可能导致ingress-nginx控制器运行异常,生产环境严禁使用该方案。
  • 修复验证
    完成上述操作后,重新执行Ingress资源创建命令:
    kubectl apply -f ./overlays/stg/bookinfo-ingress.yaml
    命令执行无报错即代表修复完成,可正常通过Ingress发布应用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 05:45:40