https://www.cnblogs.com/wn1m/p/11290336.html
yum install bridge-utils
brctl show cni0
10.244.1.184 m1-pod 10.104.27.157
10.244.1.131 s1-pod 10.104.33.68
tcpdump -i cni0 -nn icmp
tcpdump -i eth0 -nn icmp
tcpdump -i flannel.1 -nn
# 抓包--直接通讯 (这里只有一个node01节点 没法测试)
[root@s1 ~]# tcpdump -i cni0 -nn icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on cni0, link-type EN10MB (Ethernet), capture size 262144 bytes
02:17:02.156024 IP 10.244.1.184 > 10.244.1.131: ICMP echo request, id 8960, seq 1100, length 64
02:17:02.156063 IP 10.244.1.131 > 10.244.1.184: ICMP echo reply, id 8960, seq 1100, length 64
02:17:03.156137 IP 10.244.1.184 > 10.244.1.131: ICMP echo request, id 8960, seq 1101, length 64
02:17:03.156177 IP 10.244.1.131 > 10.244.1.184: ICMP echo reply, id 8960, seq 1101, length 64
02:17:04.156240 IP 10.244.1.184 > 10.244.1.131: ICMP echo request, id 8960, seq 1102, length 64
02:17:04.156278 IP 10.244.1.131 > 10.244.1.184: ICMP echo reply, id 8960, seq 1102, length 64
[root@m1 ~]# ip route show
default via 10.104.0.1 dev eth0
10.104.0.0/18 dev eth0 proto kernel scope link src 10.104.27.157 # node ip
10.244.0.0/24 dev cni0 proto kernel scope link src 10.244.0.1 # 本机 cni0
10.244.1.0/24 via 10.244.1.0 dev flannel.1 onlink # 到 s1 flannel.1
169.254.0.0/16 dev eth0 scope link metric 1002
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1
[root@s1 ~]# ip route show
default via 10.104.0.1 dev eth0
10.104.0.0/18 dev eth0 proto kernel scope link src 10.104.33.68
10.244.0.0/24 via 10.244.0.0 dev flannel.1 onlink # 到 m1 走 flannel.1
10.244.1.0/24 dev cni0 proto kernel scope link src 10.244.1.1 # 本机 cni0
169.254.0.0/16 dev eth0 scope link metric 1002
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1
# 修改 flanner的 配置文件
kubectl edit configmap kube-flannel-cfg -n kube-system
# net-conf.json里添加一行注意别忘记 ,
net-conf.json:
"Directrouting": true
# 删除 flanner pod(系统会重新建立) 或者 下载安装的时候用的 yam 修改后直接appyl -f
net-conf.json: |
{
"Network": "10.244.0.0/16",
"Backend": {
"Type": "vxlan",
# "Type": "Host-GW",
"Directrouting": true
}
}
kubectl apply -f kube-flannel.yml
# 再次查看路由
[root@m1 k8s]# ip route show
default via 10.104.0.1 dev eth0
10.104.0.0/18 dev eth0 proto kernel scope link src 10.104.27.157
10.244.0.0/24 dev cni0 proto kernel scope link src 10.244.0.1
10.244.1.0/24 via 10.104.33.68 dev eth0 # 到 s1 走 eth0
169.254.0.0/16 dev eth0 scope link metric 1002
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1
[root@s1 ~]# ip route show
default via 10.104.0.1 dev eth0
10.104.0.0/18 dev eth0 proto kernel scope link src 10.104.33.68
10.244.0.0/24 via 10.104.27.157 dev eth0 # 到 m1 走 eth0
10.244.1.0/24 dev cni0 proto kernel scope link src 10.244.1.1
169.254.0.0/16 dev eth0 scope link metric 1002
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1
## 3. 部署网络插件 - calico
# 创建目录(在配置了kubectl的节点上执行)
mkdir -p /etc/kubernetes/addons
# 上传calico配置到配置好kubectl的节点(一个节点即可)
# 部署calico
kubectl apply -f /etc/kubernetes/addons/calico-rbac-kdd.yaml
kubectl apply -f /etc/kubernetes/addons/calico.yaml