我正在尝试将桥接 CNI 插件与独立 kubelet 一起使用,但无法彼此 ping 通 pod(同一节点)。
我能够从主机和 pod 本身 (使用其子网 IP) ping 一个 pod。
此外,来自“呼叫者”pod的数据包到达网桥:10:28:00.951871 IP ip-10-0-1-4.eu-west-3.compute.internal > ip-10-0-1-5.eu-west-3.compute.internal: ICMP echo request, id 15, seq 22, length 64
但不是其他 pod 的接口(tcpdump 没有看到任何 ping)。
我尝试访问的 pod 有 10.0.1.5 IP 地址(我可以从主机和自身 ping 通它)
cni 配置:
{
"cniVersion": "0.3.1",
"name": "bridge",
"type": "bridge",
"bridge": "cnio0",
"isGateway": true,
"ipMasq": true,
"ipam": {
"type": "host-local",
"ranges": [
[{"subnet": "10.0.1.0/24"}]
],
"routes": [{"dst": "0.0.0.0/0"}]
}
}
brctl 显示 2 个 veth 对实际上已连接到桥。
我还尝试添加firewall
CNI 插件,并在桥接后加载它,但没有成功......
为了使其正常工作,我还需要配置其他东西吗?
答案1
我将其添加firewall
为一个单独的文件。
将网桥和防火墙一起设置实际上是可行的:
cat <<EOF | sudo tee /etc/cni/net.d/10-bridge.conflist
{
"cniVersion": "0.4.0",
"name": "bridge-firewalld",
"plugins": [
{
"type": "bridge",
"bridge": "cnio0",
"isGateway": true,
"ipMasq": true,
"ipam": {
"type": "host-local",
"subnet": "10.0.1.0/24",
"routes": [
{ "dst": "0.0.0.0/0" }
]
}
},
{
"type": "firewall",
"backend": "iptables"
}
]
}
EOF