通过在每个节点上添加具有适当规则的静态路由表,容器网络也可以正常工作。例如,给定三个具有三个不同 docker 网桥子网的节点:
node-1(192.168.0.1):
10.0.1.1/24
node-2(192.168.0.2):
10.0.2.1/24
node-3(192.168.0.3):
10.0.3.1/24
在每个节点上添加以下路由:
ip route add 10.0.1.0/24 via 192.168.0.1 dev eth0
ip route add 10.0.2.0/24 via 192.168.0.2 dev eth0
ip route add 10.0.3.0/24 via 192.168.0.3 dev eth0
kube-proxy 在 iptables 模式下运行,cluster-service-ip 被翻译成 pod ip,最后通过路由表路由到相关节点。
那么在路由表上使用 cni 插件有什么好处呢?路由表方法是否存在性能问题?