GKE中的容器无法ping通同一网络上的计算实例

时间:2018-07-09 13:18:09

标签: kubernetes google-cloud-platform google-kubernetes-engine

我在GKE中创建了一个新的集群,版本为1.10.5-gke.0。 我发现我的应用程序无法访问同一网络中的IP,基本上是在计算机上运行的实例。

我已经切换到kubernetes节点之一,并且通过使用附带的工具箱,我可以ping这些ip地址,但是如果我尝试从在此集群上运行的容器中尝试,则无法进行操作。

我看到,自1.10以来,google禁用了计算和存储的访问范围,即使我启用了这些范围,我仍然会得到相同的结果

我觉得有些困惑,因为它过去可以用于所有其他集群,而无需任何额外的配置

我在这里想念什么吗?

2 个答案:

答案 0 :(得分:1)

我也遇到了这个问题。 我的mongo在默认网络上的VM上运行,在我也在默认网络上的新节点上重新创建kubernetes集群后,无法从Pod内部访问它。

添加此防火墙规则可解决此问题:

NAME                                              NETWORK                DIRECTION  PRIORITY  SRC_RANGES                                                                                                                                                                                                                                   DEST_RANGES  ALLOW                         DENY  SRC_TAGS  SRC_SVC_ACCT  TARGET_TAGS                                        TARGET_SVC_ACCT
gke-seqr-cluster-dev-eb823c8e-all                 default                INGRESS    1000      10.48.0.0/24                                                                                                                                                                                                                                              tcp,udp,icmp,esp,ah,sctp

此处,10.48.0.0子网基于cbr0网络(通过ssh'进入kubernetes节点并运行ip address进行查找)

cbr0: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1460 qdisc htb state UP group default qlen 1000
   ..
    inet 10.48.0.1/24 scope global cbr0
       valid_lft forever preferred_lft forever
   ..

获取10.48.0.1 ip的另一种方法是在pod内安装并运行traceroute:

traceroute <ip of node you're trying to reach>

答案 1 :(得分:0)

解决此问题的一种简单方法是使用Google Cloud Console。

转到

  

导航菜单-> VPC网络->防火墙规则

通常,在创建集群时,会自动创建带有某些前缀和后缀的许多规则。在规则表中查找带有 gke-前缀和 -all 后缀的规则,例如gke- [my_cluster_name]-全部。您会注意到该规则,它具有集群中pod的源范围,并且允许使用许多协议(tcp,udp,imp,esp等)。

选择此规则,然后转到编辑。在目标下,选择下拉菜单,然后更改为网络中的所有实例

或者,您可以选择指定的指定目标标记指定服务帐户,在下面输入正确的值,例如您所使用的计算引擎的正确开发人员服务帐户试图达到。

如果您的Kubernetes版本是1.9.x,则还可以在这里查看,以后还有另一种替代方法。 Troubleshooting

希望所有这些都有帮助。