第18章:Kubernetes CNI-Flannel

Docker网络模型

  1. Bridge网络,自由网络名称空间

  2. Joined网络,共享使用另外一个容器的网络名称空间

  3. Open网络,容器直接共享使用宿主机的网络名称空间

  4. None网络(Close),不使用任何网络名称空间

在这里插入图片描述

Kubernetes网络通信

  1. 容器间通信:同一个pod内的多个容器间的通信,lo接口;

  2. Pod间通信:Pod IP <—> Pod IP;(所见即所得,无NAT)

  3. Pod与service之间的通信;Pod IP <—> Cluster IP;根据IPtables和IPVS规则来实现;

    (注:通过命令kubectl get configmap kube-proxy -o yaml -n kube-system查看kube-proxy中mode是IPVS,还是iptables;)

  4. Service与集群外部服务端或者客户端通信;(Ingress,Nodeport,Loadbalancer亦可)

Kubernetes本身不提供网络方案,需要通过各种CNI(Container Network Interface)来配套实现;

CNI种类

Flannel,可以提供网络管理和网络地址分配等功能;

优点:简单;缺点:无法提供网络策略,即NetworkPolicy

Calico,缺点:部署使用复杂;优点:支持IP地址分配和网络策略;其中地址转发,基于BGP的方式实现二层网络转发和三层网络路由,具备自学习功能,且性能更强;

Canel:Flannel+Calico;

Kube-router

……

解决方案:

虚拟网桥(Bridge)——通过软件实现虚拟网络,虚拟网卡,接入虚拟网桥,保证每一个容器,每一个Pod都有一个专有的网络接口,虚拟网卡成对出现,一个留在Pod之上,一个留在宿主机之上,接入到虚拟网桥使用。(Overlay)适用:L2或者L3层逻辑网络;优点:强大的控制能力;缺点:网络传输的性能开销较大,需要多封装IP或者Mac守护,走隧道网络;如VxLAN;

多路复用:MacVLAN,基于物理网卡MAC地址的方式创建Vlan,为每个虚拟接口配置一个独有的mac地址,使得一个物理网卡能为多个容器提供跨节点的网络通信服务;

硬件交换:SR-IOV,single router-IO virtualization,一个物理网卡硬件直接虚拟多个接口,供容器使用;优点:高性能;

Kubelet, 直接加载网络插件配置文件路径:/etc/cni/net/.d的即可;

网络插件类型:None,meta,IPam;

Flannel

Flannel默认采用VxLAN的方式,支持多种后端网络传输机制:

  • VxLAN,①原生VxLAN;②Directrouting,若两者处于同一网络则为Host-GW,否则降级为VxLAN方式;

  • Host-GW,Host-Gateway,效果更好,开销少,但是要求各个节点必须处在同一个二层网络当中,可能会遭受网络风暴;

  • UDP,效果最差,优选上面两种;(早期Linux系统不支持VxLAN时使用较多)

任何部署Kubelet的节点,都应该部署Flannel。

Flannel的部署:部署为系统级守护进程DaemonSet,或者部署为Pod(共享节点的网络名称空间)

Flannel的配置参数:

(1) Network:Flannel使用的CIDR格式的网络地址,用于为Pod配置网络功能;

​ 举例:10.244.0.0/16网段;

  • master: 10.244.0.0/24

  • node01: 10.244.1.0/24

  • node255: 10.244.255.0/24

(2) SubnetLen:把Network切分子网供各节点使用,默认使用24位掩码进行切分;

(3) SubnetMin和SubnetMax;

(4) Backend:即后端网络类型,VxLAN、Host-GW、UDP等;

  • 19
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Davidwatt

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值