Google cloud platform: k8s master cannot ssh to nodes

gcloudgoogle-kubernetes-engine

I have a very strange issue on google cloud platform with one of my K8S clusters.

Two days ago, everything worked like a charm. But yesterday every helm commands used to deploy on this cluster started to fail with:

Error from server: error dialing backend: No SSH tunnels currently open. Were the targets able to accept an ssh-key for user "gke-5fe81XXXXXXX"?

I checked every single leads from the https://cloud.google.com/kubernetes-engine/docs/troubleshooting The kubectl logs, attach, exec, and port-forward commands hang page.

  • Cluster do have nodes (15 node on 3 pools)
  • Every pods is running and alive in the cluster and I tried to connect on everyone of them: same issue for every pod on every node
  • My network firewall have both default-allow-ssh and the gke-review-5fe81XXX-ssh that allow ssh from the master ip to all nodes
  • My project metadatas sshKeys contains the master ssh key and is not 32kb long
  • on my nodes, the .ssh/authorized_keys file contains the public key from master
  • I can ssh to nodes from my computer after adding my key to project metadatas, and between nodes

What is really annoying is that it happened last week for maybe few hours but then the issue vanished magically.

Thank you.

Best Answer

If you run kubectl get nodes -o wide do you see an ExternalIP for the nodes or <none>? If you see <none>, try restarting the nodes and see if that fixes your issue.