【博客515】k8s中为什么需要br |
您所在的位置:网站首页 › br是做什么的 › 【博客515】k8s中为什么需要br |
k8s中为什么需要br_netfilter与net.bridge.bridge-nf-call-iptables=1
br_netfilter模块的意义
br_netfiler作用:br_netfilter模块可以使 iptables 规则可以在 Linux Bridges 上面工作,用于将桥接的流量转发至iptables链 没有br_netfilter模块有什么影响在基本使用过程中,如果没有加载br_netfilter模块,那么并不会影响不同node上的pod之间的通信,但是会影响同node内的pod之间通过service来通信 比如: 一个pod通过一个service访问其后端的pod,而这个service后端的pod刚好与这个发起请求的pod 在一个node上,那么此时如果没有br_netfilter模块,那么流量是不通的 为什么没有br_netfilter模块会影响service将流量转发给同一node上的pod因为iptables是在三层的,而linux bridge是在二层的。当pod发出的流量经过service来转发后是到同一个node上的pod,那么此时两个pod都是桥接在cni网桥上的,那么就会直接通过网桥来传递流量,但是此时流量的处理就不会up call到三层的iptables规则,从而导致转发异常 net.bridge.bridge-nf-call-iptables=1的作用启用 bridge-nf-call-iptables 这个内核参数 (置为 1),表示 bridge 设备在二层转发时也去调用 iptables 配置的三层规则 (包含 conntrack) 为什么需要net.bridge.bridge-nf-call-iptables=11、每个 Pod 的网卡都是 veth 设备,veth pair 的另一端连上宿主机上的网桥。 2、由于网桥是虚拟的二层设备,同节点的 Pod 之间通信直接走二层转发,跨节点通信才会经过宿主机 eth0。 Service 同节点通信问题: 不管是 iptables 还是 ipvs 转发模式,Kubernetes 中访问 Service 都会进行 DNAT,将原本访问 ClusterIP:Port 的数据包 DNAT 成 Service 的某个 Endpoint (PodIP:Port),然后内核将连接信息插入 conntrack 表以记录连接,目的端回包的时候内核从 conntrack 表匹配连接并反向 NAT,这样原路返回形成一个完整的连接链路: 此时导致问题: 1、Pod 访问 Service,目的 IP 是 Cluster IP,不是网桥内的地址,走三层转发,会被 DNAT 成 PodIP:Port。 2、如果 DNAT 后是转发到了同节点上的 Pod,目的 Pod 回包时发现目的 IP 在同一网桥上,就直接走二层转发了,没有调用 conntrack,导致回包时没有原路返回 由于没有原路返回,客户端与服务端的通信就不在一个 “频道” 上,不认为处在同一个连接,也就无法正常通信。常见的问题现象就是偶现 DNS 解析失败,当 coredns 所在节点上的 pod 解析 dns 时,dns 请求落到当前节点的 coredns pod 上时,就可能发生这个问题。 如何诊断br_netfiler与net.bridge.bridge-nf-call-iptables缺失的问题1、检查br_netfilter是否挂载 lsmod | grep br_netfilter2、检查net.bridge.bridge-nf-call-iptables # 检查 bridge netfilter 是否开启 sysctl net.bridge.bridge-nf-call-iptables # 0 表示未开启 net.bridge.bridge-nf-call-iptables = 0 如何修复br_netfiler与net.bridge.bridge-nf-call-iptables缺失的问题1、修复br_netfiler缺失 echo "br_netfilter" >> /etc/modules-load.d/modules.conf2、修复net.bridge.bridge-nf-call-iptables缺失 sysctl -w net.bridge.bridge-nf-call-iptables=1 echo net.bridge.bridge-nf-call-iptables=1 >> /etc/sysconf.d/10-bridge-nf-call-iptables.conf sysctl -p |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |