美文网首页kubernetes
flannel网络模式

flannel网络模式

作者: amoyzhu | 来源:发表于2017-03-02 10:58 被阅读0次

flannel,k8s的网络模型,为k8s集群内的容器提供网络服务的组件。

主要作用:

为集群内所有容器提供一个扁平化的网络环境,即:所有容器在flannel提供的网络平面上可以看作是在同一网段,自由通信。其模型为全部的容器使用一个network,然后在每个host上从network中划分一个子网subnet。为host上的容器创建网络时,从subnet中划分一个ip给容器。这样就大大提高了容器之间工作效率,不用考虑IP转换问题。

flannel网络模型(转载)

已上图为例解释flannel网络模型中容器的通信方式:

1、容器网卡是通过docker0桥接到flannel0网卡,而每个host对应的flannel0网段为10.1.x.[1-255]/24,而flannel所组成的一个跨host的网段为10.1.x.x/16,而flannel0则为flanneld进程虚拟出来的网卡。

2、docker0的地址是由 /run/flannel/subnet.env 的 FLANNEL_SUBNET 参数决定的。在启动flannel的同时会产生一个通过flannel生成的配置文件subnet.env,参数内容如下:

FLANNEL_NETWORK=10.0.0.0/16

FLANNEL_SUBNET=10.0.61.1/24

FLANNEL_MTU=1472

FLANNEL_IPMASQ=false

3、跨接点容器之间通信流程

containerA --> docker0 --> flannel0 --> NodeA --> (IP Address) -->  NodeB --> flannel0 --> docker0 --> containerB

(1) 容器A向容器B请求数据,首先通过路由规则将数据发往docker0,docker0接受到数据后通过路由规则将数据包转交给本节点的flannel0处理。

(2)flannel0 将数据进行封装并发给宿主机的eth0,然后走TCP协议转发给containerB所在的宿主机。

(3)containerB所在的宿主机接收到数据后,根据路由规则转发给flannel0。

(4)flannel0 再次根据路由协议将数据包发送给docker0

(5)最后数据包到达containerB,完成容器之间的数据通信。

相关文章

  • flannel网络模式

    flannel,k8s的网络模型,为k8s集群内的容器提供网络服务的组件。 主要作用: 为集群内所有容器提供一个扁...

  • K8S02-源码包安装(1.11.0版)

    5.flannel网络安装 flannel启动顺序1、启动etcd (先为flannel及docker分配虚拟...

  • [docker 网络][flannel] 背后操作

    1. 前言 上文 [docker 网络][flannel] 配置安装测试 利用flannel vxlan实现了容器...

  • Flannel 安装部署

    Flannel Flannel是 CoreOS 团队针对 Kubernetes 设计的一个覆盖网络(Overlay...

  • k8s集群的安装部署(三)

    05 所有node节点配置flannel网络插件 flannel网络插件主要是为了解决docker宿主机在不同节点...

  • Flannel网络

    作用:跨docker宿主机进行docker和docker之间的通信,所有node节点要安装flannel插件1:安...

  • 深入解析容器 夸网络通信

    flannel框架 提供容器网络功能的,是 Flannel 的后端实现后端支持三种网络实现1 UDP2 vxl...

  • flannel通信方式之UDP

    flannel通信方式 目前比较成熟的flannel网络通信方式有UDP、VXLAN以及host-gw三种方式。 ...

  • k8s 报错总结

    flannel网络插件,跨主机pod无法通信 故障现象 本机实验 k8s版本1.18.3flannel 在pod中...

  • 配置flannel网络

    节点内的容器跨节点通信ß需要网络插件,当前就用 flannel,需要在所有节点上安装。 安装 flannel 配置...

网友评论

    本文标题:flannel网络模式

    本文链接:https://www.haomeiwen.com/subject/onyhgttx.html