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
相关产品推荐
相关产品推荐

