kubernetes ssh连接拒绝了gcloud

时间:2017-10-03 01:43:22

标签: docker ssh kubernetes firewall gcloud

我正在尝试连接到在GKE集群内运行的pod - 我可以ssh到群集中的节点,但当我尝试以下命令进入pod中的bash时,我收到一个错误:

kubectl --namespace=prod exec -it test-webserver-3998817321-728hj -- /bin/bash

- >服务器出错:错误拨号后端:ssh:被拒绝:连接失败(连接超时)

如何使用kubectl命令连接到gke集群中正在运行的pod?我的防火墙有什么配置错误吗?我有以下ssh规则:

NAME       NETWORK  DIRECTION  PRIORITY  ALLOW   DENY
sshaccess  default  INGRESS    1000      tcp:22,icmp

当我在本地群集上尝试上述命令时,我可以轻松连接。

有时它有效,有时它不起作用。据我所知,Loadbalancer(Ingress)可能是造成这种行为的原因吗?

1 个答案:

答案 0 :(得分:0)

我得到完全相同的错误信息,对我而言,它有时也有效,有时也没有。

就我而言,这是由于防火墙配置错误造成的。 除了443端口外,我限制了大部分的出口流量。 我添加了一个规则,允许每个端口从k8s节点到内部IP(同一子网中的IP)的传出流量。 如果您的情况也是由禁止从k8s到内部节点的出口引起的,请创建新的防火墙规则以允许交易。

gcloud compute firewall-rules create <firewall-name> --network <network-name> --action allow --rules tcp --direction egress --destination-ranges <internal-ip range> --target-tags <server-ip from which transaction goes out.>