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

单个KServe推理服务cert-manager HTTP-01挑战失败:连接被重置

问题分析与解决方案

核心原因排查方向

1. 服务端点可达性异常

从Challenge错误日志来看,ACME自检请求https://my-service-A.default.my-domain.sslip.io/.well-known/acme-challenge/<token>触发连接重置,说明服务端点无法正常响应请求:

  • 检查Knative Service/Route就绪状态:
    kubectl get ksvc my-service-A -n default
    kubectl get route my-service-A -n default
    
    确认READY状态为True,若Route未就绪,挑战请求无法到达目标服务。
  • 集群内部验证服务可达性:
    在集群内任意Pod中执行:
    curl http://my-service-A.default.svc.cluster.local/.well-known/acme-challenge/<token>
    
    若内部访问失败,说明KServe InferenceService本身存在启动异常(如端口不匹配、健康检查失败、容器未就绪)。

2. cert-manager证书颁发流程中断

Service A生成的是Opaque临时Secret,而非正常服务的kubernetes.io/tls类型,说明证书颁发流程未完成:

  • 查看Order资源详细状态:
    kubectl describe order <order-name> -n default
    
    排查是否存在未在事件中显示的挑战超时、DNS解析失败等细节。
  • 过滤cert-manager日志获取服务相关错误:
    kubectl logs -n cert-manager -l app=cert-manager | grep "my-service-A.default.my-domain.sslip.io"
    
    日志中可能包含挑战请求被拦截、CSR处理异常等未暴露的问题。

3. Knative Route TLS配置冲突

即使禁用autoTLS,Service A的Route可能存在残留TLS配置,与cert-manager自动颁发流程冲突:

  • 查看Route完整配置:
    kubectl get route my-service-A -n default -o yaml
    
    若存在spec.tls字段,需删除该手动配置,确保cert-manager完全接管证书管理。

4. 服务部署配置/资源异常

仅Service A出现问题,大概率是该服务的部署存在特殊配置或资源瓶颈:

  • 对比正常服务的InferenceService配置,重点检查资源请求/限制、容器端口、健康检查路径、镜像版本等差异。
  • 检查Pod运行状态:
    kubectl describe pod <service-a-pod-name> -n default
    
    排查是否存在Pod重启、OOMKilled、镜像拉取失败等事件。

针对性解决方法

  1. 修复服务端点就绪状态:

    • 排查InferenceService容器日志,解决镜像拉取、依赖缺失、健康检查失败等启动问题。
    • 若Route处于Unknown状态,重启Knative Serving控制器:
      kubectl rollout restart deployment knative-serving-controller -n knative-serving
      
  2. 彻底重置cert-manager资源链:
    清理所有关联资源后重新触发颁发流程:

    # 删除Certificate
    kubectl delete certificate <cert-name> -n default
    # 删除CertificateRequest
    kubectl delete certificaterequest <cr-name> -n default
    # 删除Order和Challenge
    kubectl delete order <order-name> -n default
    kubectl delete challenge <challenge-name> -n default
    # 删除临时Secret
    kubectl delete secret route-aa044b4b-xyz-xyz-xyz-xyz-w6h4b -n default
    

    重新部署Service A后,观察是否生成kubernetes.io/tls类型的Secret。

  3. 清理Route残留TLS配置:
    删除Route中手动设置的spec.tls字段,确保cert-manager自动管理证书流程不受干扰。

  4. 调整服务资源配置:
    若Pod存在资源不足问题,增加CPU/内存的请求与限制,确保容器能正常启动并响应请求。


内容的提问来源于stack exchange,提问作者abdur.rehman_22

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 10:43:13