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

Charmed Kubeflow部署失败:domainmapping-webhook CrashLoopBackOff

排查Charmed Kubeflow中Knative domainmapping-webhook崩溃问题

核心问题定位

从日志能明确两个关键故障点:

  1. failed to fetch secret: secret "domainmapping-webhook-certs" not found
  2. tls: no certificates configured

本质是webhook依赖的TLS证书缺失,导致无法完成TLS握手,最终引发组件崩溃。

分步排查与修复

1. 确认证书secret是否存在

先定位domainmapping-webhook所在命名空间(默认是knative-serving),执行命令检查目标secret:

kubectl get secrets -n knative-serving domainmapping-webhook-certs

若返回NotFound,说明证书确实未生成。

2. 检查cert-manager运行状态

Knative默认依赖cert-manager自动生成webhook证书,先确认该组件是否正常:

kubectl get pods -n cert-manager

如果cert-manager的pod未就绪或不存在:

  • 先确保cert-manager已正确安装到集群
  • 查看cert-manager日志,排查证书签发失败的具体原因

3. 触发Knative资源重新生成

若cert-manager正常但证书未生成,可删除现有webhook部署并重启控制器,触发自动重建流程:

# 删除domainmapping-webhook部署
kubectl delete deployment domainmapping-webhook -n knative-serving

# 重启Knative Serving控制器
kubectl rollout restart deployment knative-serving-controller -n knative-serving

等待数分钟后,再次检查secret是否生成。

4. 检查Charmed Kubeflow的Knative配置

Charmed Kubeflow通过Juju部署Knative,可查看Knative charm的配置项:

juju config knative-serving

确认是否存在禁用自动证书生成的配置,若有则调整后重新部署:

juju refresh knative-serving --config auto-cert-generation=true

5. 手动创建证书(应急方案)

如果以上方法均无效,可手动生成自签名证书并创建secret:

# 生成自签名TLS证书
openssl req -x509 -newkey rsa:4096 -keyout tls.key -out tls.crt -days 365 -nodes -subj "/CN=domainmapping-webhook.knative-serving.svc"

# 创建对应secret
kubectl create secret tls domainmapping-webhook-certs --cert=tls.crt --key=tls.key -n knative-serving

完成后重启webhook部署:

kubectl rollout restart deployment domainmapping-webhook -n knative-serving

内容的提问来源于stack exchange,提问作者Joseph Chun-Chung Cheung

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 00:10:13