同pod间的容器通讯
| pod内容器共享同一网络名称空间,因此同一pod间的容器通过lo网卡直接通讯 |
同主机容器的网络通讯
| 在docker(默认docker0)和flannel(cni0) 中使用二层网桥进行通讯 |
| 1. 创建网络名称空间 |
| ip netns add n1 |
| ip netns add n2 |
| 2. 创建veth-peer |
| ip link add veth1 type veth peer name veth2 |
| ip link add veth3 type veth peer name veth4 |
| 3. |
| ip link set veth1 name eth0 netns n1 |
| ip link set veth3 name eth0 netns n2 |
| 4. |
| ip netns exec n1 ip address add 172.168.100.1/24 dev eth0 |
| ip netns exec n2 ip address add 172.168.100.2/24 dev eth0 |
| ip netns exec n1 ip link set up dev eth0 |
| ip netns exec n2 ip link set up dev eth0 |
| ip netns exec n1 ip link set up dev lo |
| ip netns exec n2 ip link set up dev lo |
| 5. 创建网桥 |
| ip link add br0 type bridge |
| ip address add 172.168.100.3/24 dev br0 |
| ip link set veth2 master br0 |
| ip link set veth4 master br0 |
| ip link set veth2 up |
| ip link set veth4 up |
| ip link set br0 up |
| 6. ping |
| ip netns exec n1 ping 172.168.100.2 |
不同主机间的网络通讯
| 多数cni插件都为了实现不同主机pod通讯。 |
| 1.host-gw |
| 2.vxlan |
| 3.ipip |
| 4.bgp |
| 5.ipvlan |
| 6.macvlan |
| 7.sr-iov |
host-gw
主机 |
eth0 |
br0 |
host1 |
10.4.7.250/24 |
172.168.99.3 |
host2 |
10.4.7.252/24 |
172.168.100.3 |
host1上执行
| |
| ip netns add n1 |
| ip netns add n2 |
| |
| ip link add veth1 type veth peer name veth2 |
| ip link add veth3 type veth peer name veth4 |
| |
| ip link set veth1 name eth0 netns n1 |
| ip link set veth3 name eth0 netns n2 |
| |
| ip netns exec n1 ip address add 172.168.99.1/24 dev eth0 |
| ip netns exec n2 ip address add 172.168.99.2/24 dev eth0 |
| ip netns exec n1 ip link set up dev eth0 |
| ip netns exec n2 ip link set up dev eth0 |
| ip netns exec n1 ip link set up dev lo |
| ip netns exec n2 ip link set up dev lo |
| |
| ip link add br0 type bridge |
| ip address add 172.168.99.3/24 dev br0 |
| ip link set veth2 master br0 |
| ip link set veth4 master br0 |
| ip link set veth2 up |
| ip link set veth4 up |
| ip link set br0 up |
| |
| ip netns exec n1 ping 172.168.99.2 |
| ip netns exec n1 ip route add 172.168.100.0/24 via 172.168.99.3 |
| ip netns exec n2 ip route add 172.168.100.0/24 via 172.168.99.3 |
| ip route add 172.168.100.0/24 via 10.4.7.252 dev eth0 |
| ip netns exec n1 ping 172.168.100.1 |
| ip netns exec n1 ping 172.168.100.2 |
| ip netns exec n1 ping 172.168.100.3 |
主机2上执行
| 1. 创建网络名称空间 |
| ip netns add n1 |
| ip netns add n2 |
| 2. 创建veth-peer |
| ip link add veth1 type veth peer name veth2 |
| ip link add veth3 type veth peer name veth4 |
| 3. |
| ip link set veth1 name eth0 netns n1 |
| ip link set veth3 name eth0 netns n2 |
| 4. |
| ip netns exec n1 ip address add 172.168.100.1/24 dev eth0 |
| ip netns exec n2 ip address add 172.168.100.2/24 dev eth0 |
| ip netns exec n1 ip link set up dev eth0 |
| ip netns exec n2 ip link set up dev eth0 |
| ip netns exec n1 ip link set up dev lo |
| ip netns exec n2 ip link set up dev lo |
| 5. 创建网桥 |
| ip link add br0 type bridge |
| ip address add 172.168.100.3/24 dev br0 |
| ip link set veth2 master br0 |
| ip link set veth4 master br0 |
| ip link set veth2 up |
| ip link set veth4 up |
| ip link set br0 up |
| 6. ping |
| ip netns exec n1 ping 172.168.100.2 |
| ip netns exec n1 ip route add 172.168.99.0/24 via 172.168.100.3 |
| ip netns exec n2 ip route add 172.168.99.0/24 via 172.168.100.3 |
| ip route add 172.168.99.0/24 via 10.4.7.250 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
2021-04-26 简历