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

Knative间歇性无法创建Deployment问题排查求助

Knative间歇性无法创建Deployment,数小时后自动恢复

Knative会间歇性无法创建新的Deployment,数小时后又会自动恢复并完成创建。在此期间,Serving组件持续出现报错,推测是对Kubernetes服务的请求超时,但无法确定具体原因。

预期行为

  • 更新服务时,新Revision的部署能够正常完成

实际行为

  • 偶尔进行有效变更(例如修改注解值)时,Knative无法部署新Revision,陷入持续reconcile的状态,数小时后才自动恢复
  • 执行kn revision list -A输出如下:
$ kn revision list -A
NAMESPACE        NAME                       SERVICE              TRAFFIC   TAGS      GENERATION   AGE         CONDITIONS   READY     REASON
knative       service-00033                  service                                 33           <invalid>   0 OK / 3     Unknown   Deploying
knative       service-00032                  service             100%      primary   32           <invalid>   4 OK / 4     True

相关日志

Controller超时错误日志

{
  "insertId": "plhs429mzmf9nh5f",
  "jsonPayload": {
    "logger": "controller.event-broadcaster",
    "caller": "record/event.go:285",
    "knative.dev/pod": "controller-8c6b99cb7-7zg6n",
    "commit": "484e848",
    "message": "Event(v1.ObjectReference{Kind:\"Revision\", Namespace:\"knative\", Name:\"service-00033\", UID:\"8a09a3ff-655e-4e5f-b8d4-1a4886ab0678\", APIVersion:\"serving.knative.dev/v1\", ResourceVersion:\"1844291799\", FieldPath:\"\"}): type: 'Warning' reason: 'InternalError' failed to create deployment \"service-api-00033-deployment\": Post \"https://10.123.20.1:443/apis/apps/v1/namespaces/knative/deployments\": context deadline exceeded",
    "timestamp": "2023-06-30T09:57:08.7332053Z"
  }
}

Webhook验证错误日志

{
  "insertId": "k078pd2dmx16qrr7",
  "jsonPayload": {
    "knative.dev/pod": "webhook-d44b476b8-89gbx",
    "message": "Failed the resource specific validation",
    "knative.dev/operation": "UPDATE",
    "logger": "webhook",
    "knative.dev/name": "service",
    "knative.dev/subresource": "",
    "knative.dev/namespace": "knative",
    "knative.dev/kind": "serving.knative.dev/v1, Kind=Service",
    "knative.dev/resource": "serving.knative.dev/v1, Resource=services",
    "commit": "484e848",
    "knative.dev/userinfo": "system:serviceaccount:service:default",
    "timestamp": "2023-06-30T09:56:38.327880939Z",
    "caller": "validation/validation_admit.go:183",
    "stacktrace": "knative.dev/pkg/webhook/resourcesemantics/validation.validate\n\tknative.dev/pkg@v0.0.0-20230117181655-247510c00e9d/webhook/resourcesemantics/validation/validation_admit.go:183\nknative.dev/pkg/webhook/resourcesemantics/validation.(*reconciler).Admit\n\tknative.dev/pkg@v0.0.0-20230117181655-247510c00e9d/webhook/resourcesemantics/validation/validation_admit.go:79\nknative.dev/pkg/webhook.admissionHandler.func1\n\tknative.dev/pkg@v0.0.0-20230117181655-247510c00e9d/webhook/admission.go:123\nnet/http.HandlerFunc.ServeHTTP\n\tnet/http/server.go:2109\nnet/http.(*ServeMux).ServeHTTP\n\tnet/http/server.go:2487\nknative.dev/pkg/webhook.(*Webhook).ServeHTTP\n\tknative.dev/pkg@v0.0.0-20230117181655-247510c00e9d/webhook/webhook.go:263\nknative.dev/pkg/network/handlers.(*Drainer).ServeHTTP\n\tknative.dev/pkg@v0.0.0-20230117181655-247510c00e9d/network/handlers/drain.go:113\nnet/http.serverHandler.ServeHTTP\n\tnet/http/server.go:2947\nnet/http.(*conn).serve\n\tnet/http/server.go:1991"
  }
}

排查方向

  • 检查Kubernetes API Server状态:查看故障时段API Server的CPU、内存使用率,是否存在请求堆积、响应超时,确认是否有性能瓶颈
  • 验证网络连通性:在Knative Controller Pod内测试与API Server IP(https://10.123.20.1:443)的连通性,检查是否有间歇性丢包、延迟过高的情况
  • 细化Webhook日志:调整Webhook日志级别,获取Failed the resource specific validation的具体失败原因,确认是否与校验时的API请求超时相关
  • 核对版本兼容性:确认Knative Serving与Kubernetes版本是否匹配,排查是否存在已知的兼容性bug
  • 检查集群资源:故障时段查看节点的CPU、内存、磁盘使用率,是否有节点资源耗尽导致API Server响应缓慢
  • 排查ETCD状态:ETCD性能会直接影响API Server,检查ETCD的读写延迟、磁盘IO是否正常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 15:40:41