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

排查Raspberry Pi集群kube-controller-manager CrashLoopBackOff故障

排查Raspberry Pi Kubernetes集群中kube-controller-manager与kube-flannel Pod CrashLoopBackOff故障

核心故障原因

从日志提示Failed to set statusUpdateNeeded to needed true, because nodeName="k8s-controller" does not exist可以确定:控制节点k8s-controller未被Kubernetes集群正确识别或注册,导致依赖节点状态的kube-controller-manager进程启动失败;同时flannel插件因无法获取节点网络标识,也进入崩溃循环。容器退出码2、存活探针失败均为进程反复崩溃的连锁反应。

分步解决办法

  • 检查节点注册状态
    执行命令kubectl get nodes,确认集群中是否存在k8s-controller节点。如果无此节点,说明控制节点未成功加入集群,或主机名与集群配置不匹配。

  • 校准控制节点主机名配置

    1. 在控制节点上设置正确主机名:sudo hostnamectl set-hostname k8s-controller
    2. 编辑/etc/hosts文件,添加以下条目(替换x.x.x.x为控制节点实际IP):
      127.0.0.1   k8s-controller
      x.x.x.x     k8s-controller
      

    保存后退出,确保主机名解析无问题。

  • 重置并重新初始化控制节点

    1. 停止kubelet服务:sudo systemctl stop kubelet
    2. 清理Kubernetes残留组件:kubeadm reset -f
    3. 删除Flannel残留网络接口:sudo ip link delete cni0; sudo ip link delete flannel.1
    4. 重新初始化集群,指定节点名称:
      kubeadm init --node-name k8s-controller --pod-network-cidr=10.244.0.0/16
      
      (--pod-network-cidr需与Flannel插件的网段配置保持一致)
    5. 配置kubectl权限:
      mkdir -p $HOME/.kube
      sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
      sudo chown $(id -u):$(id -g) $HOME/.kube/config
      
  • 部署适配ARM架构的Flannel插件
    Raspberry Pi 4为ARM64架构,需使用对应版本的Flannel镜像。创建本地配置文件kube-flannel.yml,将镜像地址指定为quay.io/coreos/flannel:v0.20.2-arm64,然后执行:

    kubectl apply -f kube-flannel.yml
    
  • 验证修复效果
    执行kubectl get pods -n kube-system,确认kube-controller-manager和kube-flannel相关Pod状态转为Running;同时执行kubectl get nodes,确保k8s-controller节点处于Ready状态。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 04:35:29