在 Kubernetes 的网络规范中,要求 Node 可以和所有的 Pod 直接通信。为了达到这个目的 Kube-OVN 创建了一个 join 子网,并在每个 Node 节点创建了一块虚拟网卡 ovn0 接入 join 子网,通过该网络完成主机和 Pod 之间的网络互通。

查看 Node 子网

  1. [root@node2 yamls]# kubectl get subnet join -o yaml
  2. apiVersion: kubeovn.io/v1
  3. kind: Subnet
  4. metadata:
  5. creationTimestamp: "2019-08-06T09:33:43Z"
  6. generation: 1
  7. name: join
  8. resourceVersion: "1571333"
  9. selfLink: /apis/kubeovn.io/v1/subnets/join
  10. uid: 9c744810-c678-4d50-8a7d-b8ec12ef91b8
  11. spec:
  12. cidrBlock: 100.64.0.0/16
  13. default: false
  14. excludeIps:
  15. - 100.64.0.1
  16. gateway: 100.64.0.1
  17. gatewayNode: ""
  18. gatewayType: ""
  19. natOutgoing: false
  20. private: false
  21. protocol: IPv4

在 node 节点查看 ovn0 网卡

  1. [root@node2 yamls]# ifconfig ovn0
  2. ovn0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1420
  3. inet 100.64.0.4 netmask 255.255.0.0 broadcast 100.64.255.255
  4. inet6 fe80::800:ff:fe40:5 prefixlen 64 scopeid 0x20<link>
  5. ether 0a:00:00:40:00:05 txqueuelen 1000 (Ethernet)
  6. RX packets 18 bytes 1428 (1.3 KiB)
  7. RX errors 0 dropped 0 overruns 0 frame 0
  8. TX packets 19 bytes 1810 (1.7 KiB)
  9. TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

配置 Node 子网

Node 子网为安装时指定,创建后无法修改。如需安装时自定义 node 子网的 CIDR 等信息请参考配置内置网络