Kubernetes上嵌套容器的Calico IP-in-IP连接问题

问题描述 投票:0回答:1

我正在实现cluster-api controller using Kubernetes as the infrastructure provider-也就是说,我试图将Kubernetes节点作为Kubernetes Pod运行,并在集群中形成集群。

除了内部群集的Pod之间的网络连接(在基础结构群集的Pod上运行)之外,我还进行了其他工作,但是问题出在哪里,我深陷其中。

我正在使用其默认的CNI实现在GKE上运行。然后,我尝试使用Calico通过IP-in-IP封装对内部集群进行覆盖实现,因此基础结构集群的节点不需要知道如何路由内部集群Pod IP。

我正在如下创建基础设施集群(ipip封装所需的Calico's IP-in-IP内核模块需要UBUNTU映像。

gcloud container clusters create management-cluster --image-type=UBUNTU

然后,我将多个nginx Pod部署到内部集群。如果它们位于同一内部群集节点上,则它们可以彼此连接。如果它们落在单独的内部群集节点上,它们将无法运行,因此我认为这意味着IP-in-IP隧道无法正常工作,但是我不确定为什么。即使内部群集节点(Pods)落在同一基础结构(外部群集)节点上,此操作也会失败。两个群集的Pod和Service CIDR范围不重叠。

我意识到这不是Calico所支持的用例,但是我看不到为什么它不可能的原因,并且希望它能正常工作。外部群集节点是否需要支持转发IP-in-IP数据包?它们被配置为转发IPv4数据包,但我不确定是否足够。

我想需要更多信息来说明为什么它不起作用的具体原因,但是我不太确定这会是什么,并且对任何方向都将不胜感激。

kubernetes containers tunnel project-calico cni
1个回答
0
投票

[必须在GKE节点上配置ipencap转发:

iptables -C FORWARD -p ipencap -j ACCEPT || iptables -A FORWARD -p ipencap -j ACCEPT
© www.soinside.com 2019 - 2024. All rights reserved.