将Kubernetes集群连接到同一GCP网络上的Redis

时间:2018-03-30 04:30:45

标签: google-cloud-platform firewall vpc kubernetes

我在Google Cloud Platform上的同一个VPC上运行Kubernetes群集和HA redis VM。子网10.128.0.0/20上允许所有TCP和UDP端口上的ICMP和流量。 Kubernetes有自己的内部网络,10.12.0.0 / 14,但集群运行在10.128.0.0/20内的VM上,与redis VM相同。

但是,即使10.128.0.0/20内的虚拟机相互看到,我也无法在运行来自Kubernetes pod的命令时ping同一个虚拟机或连接到其端口。我需要在k8s或GCP防火墙规则中进行修改以允许这样做 - 我觉得这应该是开箱即用的,并且pod可以访问其节点运行的同一网络?

kube-dns启动并运行,这个k8在GCP上为1.9.4。

1 个答案:

答案 0 :(得分:2)

我尝试使用相同的配置重现您的问题,但它运行正常。我创建了一个名为“myservernetwork1”的网络,子网为10.128.0.0/20。我在这个子网中启动了一个集群,并创建了3个防火墙规则,允许在网络中使用icmp,tcp和udp流量。

$ gcloud compute firewall-rules list --filter="myservernetwork1"
    myservernetwork1-icmp  myservernetwork1  INGRESS    1000      icmp
    myservernetwork1-tcp   myservernetwork1  INGRESS    1000      tcp
    myservernetwork1-udp   myservernetwork1  INGRESS    1000      udp

我允许网络内的所有TCP,UDP和ICMP流量。 我使用以下命令为我的子网创建了icmp协议规则:

gcloud compute firewall-rules create myservernetwork1-icmp \
  --allow icmp \
  --network myservernetwork1 \
  --source-ranges 10.0.0.0/8

我使用过/ 8掩码,因为我想覆盖网络中的所有地址。检查您的GCP防火墙设置以确保它们是正确的。