kubernetes
network_error
ai_generated
partial
Error from server: error dialing backend: dial tcp 10.0.0.5:10250: connect: connection refused
ID: kubernetes/exec-in-pod-failed-unable-to-upgrade-connection
75%Fix Rate
80%Confidence
1Evidence
2024-01-20First Seen
Version Compatibility
| Version | Status | Introduced | Deprecated | Notes |
|---|---|---|---|---|
| kubectl v1.27.0 | active | — | — | — |
| kubelet v1.27.0 | active | — | — | — |
| kubelet v1.29.0 | active | — | — | — |
| Kubernetes v1.28.0 | active | — | — | — |
Root Cause
The kubelet on the node is not listening on the expected port (10250) or is unreachable due to network issues, preventing kubectl exec/attach/logs.
generic中文
节点上的 kubelet 未在预期端口(10250)上监听,或因网络问题无法访问,导致 kubectl exec/attach/logs 失败。
Official Documentation
https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/Workarounds
-
70% success SSH into the node and restart kubelet: `ssh node-user@node-ip 'sudo systemctl restart kubelet'`.
SSH into the node and restart kubelet: `ssh node-user@node-ip 'sudo systemctl restart kubelet'`.
-
80% success Check if kubelet is running and on the correct port: `ssh node-user@node-ip 'sudo netstat -tulpn | grep 10250'`. If not, check kubelet config for `--port` flag.
Check if kubelet is running and on the correct port: `ssh node-user@node-ip 'sudo netstat -tulpn | grep 10250'`. If not, check kubelet config for `--port` flag.
-
75% success If firewall is blocking, verify network policies or cloud firewall rules allow traffic from control plane to node port 10250.
If firewall is blocking, verify network policies or cloud firewall rules allow traffic from control plane to node port 10250.
中文步骤
SSH 到节点并重启 kubelet:`ssh node-user@node-ip 'sudo systemctl restart kubelet'`。
检查 kubelet 是否在运行并在正确端口上:`ssh node-user@node-ip 'sudo netstat -tulpn | grep 10250'`。如果没有,检查 kubelet 配置中的 `--port` 参数。
如果防火墙阻止,检查网络策略或云防火墙规则是否允许从控制平面到节点端口 10250 的流量。
Dead Ends
Common approaches that don't work:
-
Restarting the pod, assuming it's a container issue
90% fail
The error is node-level, not pod-level; restarting the pod won't fix kubelet connectivity.
-
Checking pod logs via kubectl logs, which also fails with the same error
80% fail
All kubectl commands that require kubelet interaction (exec, logs, attach) will fail identically.