安装k8s 时,使用了flannel 或者 calico 插件, 用ip addr 命令能看到flannel 或calico 等网络设备
4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:fb:6c:a1:1c brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
5: flannel.1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UNKNOWN group default
link/ether 3a:93:55:de:51:1a brd ff:ff:ff:ff:ff:ff
inet 10.244.1.0/32 brd 10.244.1.0 scope global flannel.1
valid_lft forever preferred_lft forever
inet6 fe80::3893:55ff:fede:511a/64 scope link
valid_lft forever preferred_lft forever
6: tunl0@NONE: <NOARP,UP,LOWER_UP> mtu 1480 qdisc noqueue state UNKNOWN group default qlen 1000
link/ipip 0.0.0.0 brd 0.0.0.0
inet 10.244.85.192/32 scope global tunl0
valid_lft forever preferred_lft forever
9: cali777f36acd1f@if4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1480 qdisc noqueue state UP group default
link/ether ee:ee:ee:ee:ee:ee brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet6 fe80::ecee:eeff:feee:eeee/64 scope link
valid_lft forever preferred_lft forever
以flannel 为例
这里给读者留个问题: brctl show 只能看到 docker0 ,看不到flannel0 或cni0,为什么呢?
$ brctl show
bridge name bridge id STP enabled interfaces
docker0 8000.0242fb6ca11c no
**
使用ethtool 查看网络设备类型
**
接下来使用ethtool 查看k8s ,ovs 等多种环境下不同设备的driver 类型。只有类型为bridge 的才能被brctl 管理和展示
#查看docker0
root@k8s-node1:~$ ethtool -i docker0
driver: bridge
#查看calico设备( veth pair的一端是某个pod eth0 网卡, cali141ebbfdd59 则是veth pair 另一端在主机空间的名称)
root@k8s-node1:~$ ethtool -i cali141ebbfdd59
driver: veth
#查看flannel设备
root@k8s-node1:~$ ethtool -i flannel.1
driver: vxlan
--------------------------
查看Openvswitch bridge br1
$ ethtool -i br1
driver: openvswitch
查看某个tun 设备
$ ethtool -i ztwnhb3o
driver: tun
总结
因为brctl show 只能看到linux bridge 类型的设备 ,其他tap ,tun ,tap,veth ,ovs bridge 等用brctl show 命令是看不到的。