calico目前还不支持ipvs,flannel网络插件不支持网络策略
kubernetes网络通信:
1)容器间的通信:同一个Pod内的多个容器间的通信,lo
2)Pod通信:Pod IP<—>Pod IP
3)Pod与Service通信:PodIP<—>ClusterIP
4)Service与集群外部客户端的通信
ipvs无法取代iptables,因为ipvs只能拿来做负载, 不能做如NAT等功能
CNI: k8s本身并不提供网络插件,常见网络CNI:flannel,calico,canel(flannel与calico的结合体)
解决方案:
虚拟网桥:
多路复用:MacVLAN,
硬件交换:SR-IOV,单根IO虚拟化,虚拟出多张网卡
flannel:
支持多种后端:
VxLAN
1)vxlan
2)Directrouting
HostGW(各个Host需在同一网段)
flannel的配置参数:
Network:flannel使用的CIDR格式的网络地址,用于为Pod配置网络功能
SubnetLen:把Network切分子网供各节点使用,使用多长的掩码进行切分,默认为24位
SubnetMin:
SubnetMax:
Backend:什么样的方式进行通信,vxlan,host-gw,udp,vxlan又分了两种方式
