我的一个 K8S 集群在 Google 云平台上遇到了一个非常奇怪的问题。
两天前,一切都很顺利。但昨天,helm
用于部署此集群的所有命令都开始失败:
Error from server: error dialing backend: No SSH tunnels currently open. Were the targets able to accept an ssh-key for user "gke-5fe81XXXXXXX"?
我检查了https://cloud.google.com/kubernetes-engine/docs/troubleshooting The kubectl logs, attach, exec, and port-forward commands hang
页。
- 集群确实有节点(3 个池上有 15 个节点)
- 集群中所有 Pod 都在运行,我尝试连接每个 Pod:每个节点上的每个 Pod 都存在同样的问题
- 我的网络防火墙同时具有
default-allow-ssh
和,gke-review-5fe81XXX-ssh
允许从主 IP 到所有节点的 ssh - 我的项目元数据 sshKeys 包含主 ssh 密钥,长度不为 32kb
- 在我的节点上,该
.ssh/authorized_keys
文件包含来自主节点的公钥 - 将我的密钥添加到项目元数据后,我可以从我的电脑 ssh 到节点,以及节点之间
真正令人恼火的是,这个问题上周发生了,可能持续了几个小时,但后来问题却神奇地消失了。
谢谢。
答案1
如果您运行,kubectl get nodes -o wide
您是否会看到节点的 ExternalIP 或<none>
?如果看到<none>
,请尝试重新启动节点,看看是否能解决您的问题。