1

我按照本指南安装了一个带有两个节点的 kubernetes v1.16 集群,并启用了“IPv4/IPv6 双栈” 。对于“双栈”,我设置--network-plugin=kubenet为 kubelet。

现在,pod 有 ipv4 和 ipv6 地址,每个节点都有一个 cbr0 gw,同时具有 ipv4 和 ipv6 地址。但是当我从一个节点ping到另一个节点的cbr0 gw时,它失败了。

我尝试手动添加路由如下:“ip route add [podCIDR of other node] via [ipaddress of other node]”

在两个节点上添加路由后,我可以用 ipv4 ping cbr0 gw 成功。但是“手动添加路由”似乎不是正确的方法。

当我使用 kubenet 时,我应该如何配置从一个节点 ping 到另一个节点的 cbr0 gw?

4

1 回答 1

1

Kubenet 是启用 IPv6的要求,正如您所说,kubenet 有一些限制,在这里我们可以阅读:

Kubenet 是一个非常基本的、简单的网络插件,仅在 Linux 上。它本身并没有实现更高级的功能,例如跨节点网络或网络策略。它通常与 为节点之间或单节点环境中的通信设置路由规则的云提供商一起使用。

我想强调一下 kubenet 不会自动为您创建路由。

根据此信息,我们可以理解,在您的场景中,这是预期的行为,没有问题发生。 如果您想继续朝着这个方向前进,您需要手动创建路线。

重要的是要记住这是一个 alpha 功能 (WIP)。

还有一些工作正在做,以使使用 Kubeadm 引导具有 Dual Stack 的 Kubernetes 集群成为可能,但它尚不可用,并且没有 ETA。

此存储库中有一些 IPv6 和双栈设置与其他网络插件的示例,但仍需要手动添加路由。

该项目有两个主要目的:(i)研究和验证 kubernetes 和相关插件中的 ipv6 支持(ii)为实现和测试附加功能 (例如双栈)提供开发环境

于 2019-11-15T13:38:34.393 回答