Kubernetes 本身不负责网络.
11.4.1 网络应该是什么样的

11.4.2 深入了解网络工作原理

想想网线, 路由器和电脑之间通过插入网线的水晶头来进行网络连接:
- eth0
- veth
同节点 pod 通信
通过 Bridge 可以使同节点上的 pod 之间相互通信.
图11.15中的 Bridge 画了 ip, 感觉它应该是个路由器
查看网卡:
$ ip addr1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope hostvalid_lft forever preferred_lft forever2: enp7s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000link/ether 8c:8c:aa:95:41:ad brd ff:ff:ff:ff:ff:ff3: wlp0s20f3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000link/ether 38:fc:98:c4:35:60 brd ff:ff:ff:ff:ff:ffinet 192.168.31.36/24 brd 192.168.31.255 scope global dynamic noprefixroute wlp0s20f3valid_lft 35877sec preferred_lft 35877secinet6 fe80::3cea:790d:c238:69a4/64 scope link noprefixroutevalid_lft forever preferred_lft forever4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group defaultlink/ether 02:42:98:20:bb:7a brd ff:ff:ff:ff:ff:ffinet 172.17.0.1/16 brd 172.17.255.255 scope global docker0valid_lft forever preferred_lft forever
docker0 就是虚拟出来的网卡, 主机被分配了 172.17.0.1 , 该 ip 所在局域网可以与容器进行通信.
不同节点上的 pod 通信
有多种方式:
- overlay
- underlay
- 三层路由
通过三层网络支持两个节点 pod 通信:
- Bridge 与物理 eth0 相连
- PodA eth0 -> veth123 -> BridgeA -> eth0A -> eth0B -> BridgeB -> veth345 -> PodC

可能需要了解路由原理.

wc.
11.4.3 引入容器网络接口
CNI (容器网络接口) 允许 Kubernetes 可配置使用任何 CNI 插件, 包括:
- Calico
- Flannel
- Romana
- Weave Net
- 其他
安装插件需要:
- DaemonSet
- 资源的 yaml
