我安装了带有两个节点的kubernetes v1.16集群,并在this guide之后启用了“IPv4 / IPv6 dual-stack”。对于“双栈”,我将--network-plugin=kubenet
设置为kubelet。
现在,这些Pod具有ipv4和ipv6地址,并且每个节点都有一个同时具有ipv4和ipv6地址的cbr0 gw。
但是,当我从一个节点ping到另一个节点的cbr0 gw时,它失败了。
我尝试手动添加路线,如下所示:
“ip路由通过[其他节点的IP地址]添加[其他节点的podCIDR]”
在两个节点上添加路由之后,可以使用ipv4 ping通cbr0 gw成功。
但是“手动添加路线”似乎不是正确的方法。
使用kubenet时,应如何配置从一个节点ping到另一个节点的cbr0 gw?
最佳答案
Kubenet是用于启用IPv6的requirement,正如您所述,kubenet有一些限制,我们可以阅读here:
Kubenet is a very basic, simple network plugin, on Linux only. It does not, of itself, implement more advanced features like cross-node networking or network policy. It is typically used together with a cloud provider that sets up routing rules for communication between nodes, or in single-node environments.
我想强调一点,kubenet不会自动为您创建路由。
根据这些信息,我们可以理解,在您的场景中,这是预期的行为,并且没有发生任何问题。
如果要继续朝这个方向前进,则需要手动创建路线。
请记住,这是一个Alpha功能(WIP),这一点很重要。
还需要做一些工作来引导Kubernetes cluster with Dual Stack using Kubeadm,但是它尚不可用,并且没有ETA。
this repository中提供了一些IPv6和双堆栈设置以及其他网络插件的示例,但是仍然需要手动添加路由。
This project serves two primary purposes: (i) study and validate ipv6 support in kubernetes and associated plugins (ii) provide a dev environment for implementing and testing additional functionality (e.g.dual-stack)
关于kubernetes - 在使用kubenet和双栈的k8s1.16中,如何配置为在另一个节点上ping cbr0 gw?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58626861/