kube-proxy iptables 模式源码分析
iptables 的功能 在前面的文章中已经介绍过 iptable 的一些基本信息,本文会深入介绍 kube-proxy iptables 模式下的工作原理,本文中多处会与 iptables 的知识相关联,若没有 iptables 基础,请先自行补充。 iptables 的功能: 流量转发:DNAT 实现 IP 地址和端口的映射; 负载均衡:statistic 模块为每个后端设置权重; 会话保持:recent 模块设置会话保持时间; iptables 有五张表和五条链,五条链分别对应为: PREROUTING 链:数据包进入路由之前,可以在此处进行 DNAT; INPUT 链:一般处理本地进程的数据包,目的地址为本机; FORWARD 链:一般处理转发到其他机器或者 network namespace 的数据包; OUTPUT 链:原地址为本机,向外发送,一般处理本地进程的输出数据包; POSTROUTING 链:发送到网卡之前,可以在此处进行 SNAT; 五张表分别为: filter 表:用于控制到达某条链上的数据包是继续放行、直接丢弃(drop)还是拒绝(reject); nat ...
