18.flannel
docker有四种常用网络
- bridge
- joined
- opended 直接共享使用节点的网络名称空间
- none
k8s网络通信:
- 容器间的通信: 同一个Pod内的多个容器之间通信, 通过lo实现
- Pod通信: Pod IP <--> Pod IP
- Pod与Service通信: PodIP <--> ClusterIP
- service与集群外部客户端的通信;
CNI: contater network interface
flannel 不支持网络策略 支持地址分配
calico 部署麻烦,但是支持网络策略,也支持地址分配。 效率高
canel
kube-router
一般可以把flannel和calico结合使用。 把calico仅仅用来部署网络策略
解决方案:
虚拟网桥
多路复用: MacCLAN
硬件交换: SR-IOV
k8s 中加载网络目录:
/etc/cni/net.d/
flannel支持多种后端:
VxLAN
1. vxlan
2. directrouting 支持跨网络
host-gw: Host Gateway 要求各个节点都必须在同一个网段。不在同一个网段则使用不了
UDP:
flannel的配置参数:
Network: flannel使用的CIDR格式的网络地址,用于为Pod配置网络功能
10.244.0.0/16 ->
master: 10.244.0.0/24
node01: 10.244.1.0/24
10.0.0.0/24
SubnetLen: 把network切分子网供各个节点使用,使用多长的掩码进行切分,默认为24位;
SubnetMin: 10.244.10.0/24
SubnetMax: 10.244.100.0/24
Backend: vxlan,host-gw,udp