环境
lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 24.04 LTS
Release: 24.04
Codename: noble
先说原理
- iptables 如果服务过多 或者pod 过多 就要则添加海量的iptabes规则
- iptables 使用的具体算法主要是线性搜索,也可以称为顺序搜索或顺序匹配算法
- 逐条匹配如果海量增加,查找效率大幅度下降
- 但是如果采用 ip_set 作为一个hash表 使用 目标 IP-目标端口-源 IP 可以位置确定唯一一个路由
- 在使用ipvs vip路由到真实的 real ip pod上 效率大幅度提升
开始实验 模拟两个pod 服务
- 添加三个网络命名空间 网桥、pod-x、pod-y
ip link add dev bridge_home type bridge
ip netns add netns_dustin
ip netns add netns_leah
- 配置命名空间DNS
mkdir -p /etc/netns/netns_dustin && echo "nameserver 114.114.114.114" | tee -a /etc/netns/netns_dustin/resolv.conf
mkdir -p /etc/netns/netns_leah && echo "nameserver 114.114.114.114" | tee -a /etc/netns/netns_leah/resolv.conf
- 启用命名空间回环接口
ip netns exec netns_dustin ip link set dev lo up
ip netns exec netns_leah ip link set dev lo up
- 添加网桥到命名空间
ip address add 10.0.0.1/24 dev bridge_home
- pod-x 添加一对虚拟以太网接口
ip link add dev veth_dustin type veth peer name veth_ns_dustin
标签:iptables,ip,add,dev,IPVS,netns,pod,kube,dustin
From: https://www.cnblogs.com/guanchaoguo/p/18163856