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

Knative-Serving Activator Pod CrashLoopBackOff问题排查求助

问题:Knative Serving Activator Pod 处于 CrashLoopBackOff 状态(就绪探针返回500)

环境与安装步骤

  • 服务器系统:Ubuntu 22.04.2 LTS
  • Kubernetes集群初始化命令:
    sudo kubeadm init --cri-socket=/var/run/cri-dockerd.sock --pod-network-cidr=192.168.0.0/16
    
  • 组件安装命令:

    Calico 安装

    kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.26.3/manifests/tigera-operator.yaml
    kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.26.3/manifests/custom-resources.yaml
    kubectl taint nodes --all node-role.kubernetes.io/control-plane-
    

    Knative Serving 安装

    kubectl apply -f https://github.com/knative/serving/releases/download/knative-v1.11.2/serving-crds.yaml
    kubectl apply -f https://github.com/knative/serving/releases/download/knative-v1.11.2/serving-core.yaml
    

    Istio 安装(适配Knative)

    kubectl apply -l knative.dev/crd-install=true -f https://github.com/knative/net-istio/releases/download/knative-v1.11.1/istio.yaml
    kubectl apply -f https://github.com/knative/net-istio/releases/download/knative-v1.11.1/istio.yaml
    kubectl apply -f https://github.com/knative/net-istio/releases/download/knative-v1.11.1/net-istio.yaml
    kubectl patch svc istio-ingressgateway -n istio-system -p '{"spec": {"type": "LoadBalancer", "externalIPs":["<server ip>"]}}'
    kubectl label namespace default istio-injection=enabled
    

问题现象

执行kubectl get pods -n knative-serving输出:

NAME                          READY   STATUS             RESTARTS          AGE
activator-5ccbd798b6-rkn5v    0/1     CrashLoopBackOff   440 (4m50s ago)   40h
autoscaler-848d88dbb-64btf    1/1     Running            0                 40h
controller-856747f668-wtwfp   1/1     Running            0                 40h
webhook-55cff8d4f9-79lsl      1/1     Running            0                 40h

通过kubectl describe pod activator -n knative-serving确认:

  • 就绪探针失败,返回状态码500
  • Pod重启次数达424次,事件显示持续重启失败容器

已尝试动作

  • 通过Lens修改activator pod的CPU和内存限制,未解决问题
  • 该问题在Minikube环境中不存在

排查与解决建议

  1. 获取Activator Pod详细日志
    执行命令查看Pod启动失败的具体错误信息,重点关注探针失败、网络连接、配置加载相关日志:

    kubectl logs activator-5ccbd798b6-rkn5v -n knative-serving --previous
    
  2. 修复版本兼容性问题
    当前Knative Serving使用v1.11.2,而适配的Istio组件用的是v1.11.1,版本不匹配可能引发兼容性问题。建议将Istio相关组件升级到与Knative Serving一致的v1.11.2版本。

  3. 检查Calico网络策略
    确认Calico是否存在限制Knative Serving命名空间网络访问的策略:

    kubectl get networkpolicies -n knative-serving
    

    若存在严格策略,需确保Activator Pod能正常访问Kubernetes API、Istio控制平面等集群内部服务。

  4. 调整Activator探针配置
    查看Knative Serving的Activator配置,尝试调整就绪探针的启动延迟或失败阈值,给Pod更多初始化时间:

    kubectl get configmap config-activator -n knative-serving -o yaml
    

    修改后重启Activator Deployment:

    kubectl rollout restart deployment activator -n knative-serving
    
  5. 验证Knative Serving命名空间的Istio注入
    确认Knative Serving命名空间是否开启Istio自动注入:

    kubectl get namespace knative-serving --show-labels
    

    若未标注istio-injection=enabled,执行命令添加标签并重启Pod:

    kubectl label namespace knative-serving istio-injection=enabled
    kubectl rollout restart deployment activator -n knative-serving
    
  6. 检查节点资源状态
    确认节点是否存在CPU、内存资源不足的情况:

    kubectl describe node <node-name>
    

    若节点资源紧张,需调整节点资源分配或扩容节点。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 05:33:11