KUBERNETES
为什么 kubernetes 环境要求开启 bridge-nf-call-iptables
为什么 kubernetes 环境要求开启 bridge-nf-call-iptables ? 背景 Kubernetes 环境中,很多时候都要求节点内核参数开启 bridge-nf-call-iptables:
1 2 |
sysctl -w net.bridge.bridge-nf-call-iptables=1 |
参考官方文档 Network Plugin Requirements 如果不开启或中途因某些操作导致参数被关闭了,就可能造成一些奇奇怪怪的网络问题,排查起来非常麻烦。 为什么要开启呢?本文就来跟你详细掰扯下。 基于网桥的容器网络 Kubernetes 集群网络有很多种实现,有很大一部分都用到了 Linux 网桥: 每个 Pod 的网卡都是 veth 设备,veth pair 的另一端连上宿主机上的网桥。 由于网桥是虚拟的二层设备,同节点的 Pod 之间通信直接走二层转发,跨节点通信才会经过宿主机 eth0。 Service 同节点通信问题 不管是 iptables 还是 ipvs 转发模式,Kubernetes 中访问 Service 都会进行 DNAT,将原本访问 ClusterIP:Port 的数据包 DNAT 成 Service 的某个 Endpoint Read more…