小编vir*_*sox的帖子

Kubernetes - 无法从服务的pod连接到服务IP

我正在尝试创建3个Kafka实例并将其部署为本地Kubernetes设置.因为每个实例都需要一些特定的配置,我为每个实例创建一个RC和一个服务 - 急切等待#18016 ;)

但是,我遇到了问题,因为Kafka在使用服务IP时无法与自己建立网络连接(Kafka代理在与其他代理交换复制消息时尝试执行此操作).例如,假设我有两个工作主机(172.17.8.201和172.17.8.202),我的pod安排如下:

  • 主持人1(172.17.8.201)

    • kafka1 pod(10.2.16.1)
  • 主持人2(172.17.8.202)

    • kafka2 pod(10.2.68.1)
    • kafka3 pod(10.2.68.2)

另外,假设我有以下服务IP:

  • kafka1 集群IP:11.1.2.96
  • kafka2 集群IP:11.1.2.120
  • kafka3 集群IP:11.1.2.123

kafka1pod(容器)尝试使用kafka1群集IP(11.1.2.96)发送消息(自身)时,会发生此问题.由于某种原因,无法建立连接并且不发送消息.

一些更多的信息:如果我手动连接到kafka1吊舱,我可以正确地远程登录kafka2kafka3荚使用其各自的集群的IP(11.1.2.120/11.1.2.123).此外,如果我在kafka2pod中,我使用11.1.2.96和11.1.2.123 连接到pod kafka1kafka3pod.最后,如果我使用pod IP,我可以连接到所有pod(来自所有pod).

需要强调的是,我不应该告诉kafka代理使用pod IP而不是群集IP进行复制.就像现在一样,Kafka用于复制您配置的任何IP"广告" - 这是您的客户端用于连接到代理的IP.即使我可以,我相信这个问题也可能出现在其他软件中.

这个问题似乎只发生在我正在使用的组合中,因为完全相同的文件在GCE中正常工作.现在,我正在运行:

  • Kubernetes 1.1.2
  • coreos 928.0.0
  • 网络设置与法兰绒
  • 关于vagrant + VirtualBpx的一切

经过一些调试后,我不确定问题是在worker iptables规则中,在kube-proxy中还是在法兰绒中.

PS:我最初将这个问题作为问题发布在他们的github上,但我被Kubernetes团队重定向到了这里.我对文本进行了一些改写,因为它听起来像是一个"支持请求",但实际上我认为它是某种错误.无论如何,抱歉Kubernetes团队!


编辑:此问题已被确认为错误https://github.com/kubernetes/kubernetes/issues/20391

apache-kafka kubernetes

9
推荐指数
1
解决办法
3323
查看次数

位于独立Kubernetes集群中的两个pod之间的连接

我有两个(独立的)Kubernetes集群,一个设置为GKE/GCE集群,另一个设置在使用该kube-up.sh脚本创建的AWS环境中.两个集群都正常工作,我可以启动/停止pod,服务以及其他所有内容.

我希望位于这些集群中的pod可以相互通信,但不要将它们作为服务公开.为了实现这一点,我在两个集群之间建立了VPN连接,还有一些路由/防火墙规则,以确保VM/pod可以互相看到.

我可以确认以下方案是否正常工作:

GCE中的VM - > AWS中的VM(OK)

在GCE中的Pod - > AWS中的VM(OK)

AWS中的VM - > GCE中的VM(OK)

AWS中的VM - > GCE中的Pod(OK)

AWS中的Pod - > GCE中的Pod(OK)

但是,我不能让GCE中的VM或Pod与AWS中的Pod通信.

我想知道是否任何方法可以使用当前的AWS VPC功能.似乎当VPN隧道的AWS端接收到发往pod的数据包时,它实际上并不知道如何处理它们.另一方面,GCE网络自动配置有将pod IP与GKE集群相关联的路由.在这种情况下,当寻址到Pod的数据包到达VPN隧道的GCE端时,它会被正确地转发到其目的地.

那是我的配置:

GKE/GCE in us-east1

网络:10.142.0.0/20

VM1 IP:10.142.0.2

Pod范围(适用于VM1):10.52.4.0/24

Pod1 IP :( 10.52.4.4运行busybox)

防火墙规则:允许来自的任何流量172.16.0.0/12

路由:将目的地的所有内容发送172.16.0.0/12到VPN隧道(在创建VPN时自动添加)

AWS在ap-northeast-1

VPC:172.24.0.0/16

子网1:172.24.1.0/24

VM3 IP(在Subnet1中):172.24.1.5

Kubernetes集群网络(NON_MASQUERADE_CIDR):172.16.0.0/16

Pod范围(CLUSTER_IP_RANGE):172.16.128.0/17

Pod范围(适用于VM3): …

amazon-web-services amazon-vpc google-compute-engine kubernetes google-kubernetes-engine

5
推荐指数
1
解决办法
759
查看次数