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

kube-controller-manager无法获取资源锁,连接API服务器被拒绝求助

kube-controller-manager无法获取资源锁,连接API服务器被拒绝求助

嘿,从你提供的kube-controller-manager日志来看,核心问题是组件无法连接到Kubernetes API服务器(https://192.168.10.252:6443),导致leader选举时获取资源锁失败,反复出现connection refused错误。下面我帮你拆解问题并给出具体的排查步骤:

问题日志详情

Fetching last 1000 lines of logs from kube-controller-manager-raspberrypi pod in kube-system namespace:
I0809 14:22:52.676388       1 serving.go:348] Generated self-signed cert in-memory
I0809 14:22:56.015210       1 controllermanager.go:182] Version: v1.26.7
I0809 14:22:56.015298       1 controllermanager.go:184] "Golang settings" GOGC="" GOMAXPROCS="" GOTRACEBACK=""
I0809 14:22:56.019346       1 dynamic_cafile_content.go:157] "Starting controller" name="client-ca-bundle::/etc/kubernetes/pki/ca.crt"
I0809 14:22:56.019348       1 dynamic_cafile_content.go:157] "Starting controller" name="request-header::/etc/kubernetes/pki/front-proxy-ca.crt"
I0809 14:22:56.024962       1 secure_serving.go:210] Serving securely on 127.0.0.1:10257
I0809 14:22:56.025012       1 tlsconfig.go:240] "Starting DynamicServingCertificateController"
I0809 14:22:56.025973       1 leaderelection.go:248] attempting to acquire leader lease kube-system/kube-controller-manager...
E0809 14:22:56.027537       1 leaderelection.go:330] error retrieving resource lock kube-system/kube-controller-manager: Get "https://192.168.10.252:6443/apis/coordination.k8s.io/v1/namespaces/kube-system/leases/kube-controller-manager?timeout=5s": dial tcp 192.168.10.252:6443: connect: connection refused
E0809 14:22:59.118080       1 leaderelection.go:330] error retrieving resource lock kube-system/kube-controller-manager: Get "https://192.168.10.252:6443/apis/coordination.k8s.io/v1/namespaces/kube-system/leases/kube-controller-manager?timeout=5s": dial tcp 192.168.10.252:6443: connect: connection refused
E0809 14:23:02.225098       1 leaderelection.go:330] error retrieving resource lock kube-system/kube-controller-manager: Get "https://192.168.10.252:6443/apis/coordination.k8s.io/v1/namespaces/kube-system/leases/kube-controller-manager?timeout=5s": dial tcp 192.168.10.252:6443: connect: connection refused
E0809 14:23:05.462271       1 leaderelection.go:330] error retrieving resource lock kube-system/kube-controller-manager: Get "https://192.168.10.252:6443/apis/coordination.k8s.io/v1/namespaces/kube-system/leases/kube-controller-manager?timeout=5s": dial tcp 192.168.10.252:6443: connect: connection refused

核心问题定位

日志里反复出现的connection refused说明:kube-controller-manager所在的raspberrypi节点无法和API服务器的192.168.10.252:6443端口建立连接,这直接卡死了leader选举流程——因为leader选举必须依赖API服务器来管理kube-system/kube-controller-manager这个lease资源。

具体排查步骤

  • 第一步:确认API服务器是否正常运行
    登录到API服务器所在的192.168.10.252节点,执行kubectl get pods -n kube-system | grep kube-apiserver,看看kube-apiserver的Pod是不是处于Running状态。如果Pod没启动,先排查apiserver自身的日志,找出启动失败原因。
  • 第二步:测试端口连通性
    在raspberrypi节点上执行nc -zv 192.168.10.252 6443或者telnet 192.168.10.252 6443,验证端口是否能正常访问。如果不通,重点排查:
    • 节点间的防火墙/安全组规则,是否允许6443端口的TCP流量;
    • 节点的路由配置,确保raspberrypi能正确路由到192.168.10.252;
    • CNI网络插件状态,确认插件是否正常运行,有没有阻断节点间通信。
  • 第三步:检查kube-controller-manager配置
    查看kube-controller-manager的启动参数或配置文件,确认--kubeconfig指向的文件里,API服务器地址是不是https://192.168.10.252:6443,同时检查配置文件中的证书是否有效、权限是否正确。
  • 第四步:验证节点DNS(如果涉及域名配置)
    虽然当前日志用的是IP,但如果之前是用域名配置API服务器地址,也要确认DNS解析是否正常,不过这一步可以优先放在后面排查。

备注:内容来源于stack exchange,提问作者Mohsin A

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 16:24:29