网络组件flannel网络的原理是什么?


flannel网络是 CoreOS 团队针对 Kubernetes 设计的一个覆盖網络(Overlay Network)工具其目的在于帮助每一个使用 Kuberentes 的 CoreOS 主机拥有一个完整的子网。这次的分享内容将从flannel网络的介绍、工作原理及安装和配置三方面來介绍这个工具的使用方法 第一部分:flannel网络介绍flannel网络是CoreOS团队针对Kubernetes设计的一个网络规划服务,简单来说它的功能是让集群中的不同节点主机创建的Docker容器都具有全集群的虚拟IP地址。

重启动一次Docker这样配置就完成了。 现在在两个节点分别启动一个Docker容器它们之间已经通过IP地址矗接相互ping通了。 到此整个flannel网络集群也就正常运行了。 最后前面反复提到过flannel网络有一个保存在Etcd的路由表,可以在Etcd数据中找到这些路由记錄如下图。

Q&A问:数据从源容器中发出后经由所在主机的docker0虚拟网卡转发到flannel网络0虚拟网卡,这种P2P实际生产中是否存在丢包或者此机制有高可用保障么?

答:只是本机的P2P网卡没有经过外部网络,应该还比较稳定但我这里没有具体数据。 问:UDP数据封装转发的形式也是UDP么?我们一般知道UDP发送数据是无状态的可靠么?

答:转发的是UDP高并发数据流时候也许会有问题,我这里同样没有数据 问:实际上,kubernates是淡化了容器ip外围用户只需关注所调用的服务,并不关心具体的ip这里fannel将IP分开且,这样做有什么好处有实际应用的业务场景么?

答: IP是Kubernetes能够组网的条件之一不把网络拉通后面的事情都不好整。 问:flannel网络通过Etcd分配了每个节点可用的IP地址段后偷偷的修改了Docker的启动参数:那麼如果增加节点,或删除节点这些地址段(ETCD上)会动态变化么?如果不是动态变化会造成IP地址的浪费么?

问:容器IP都是固定的吗外網与物理主机能ping通,也能ping通所有Docker集群的容器IP

答:不是固定的,IP分配还是Docker在做flannel网络只是分配了子网。 问:flannel网络的能否实现VPN你们有没有研究过?

答: 应该不能它要求这些容器本来就在一个内网里面。 问:Flannl是谁开发的全是对k8s的二次开发吗?

答: CoreOS公司不是k8s的二次开发,獨立的开源项目给k8s提供基础网络环境。 问:flannel网络支持非封包的纯转发吗这样性能就不会有损失了?

答:非封装怎样路由呢发出来的TCP包本身并没有在网络间路由的信息,别忘了两个flannel网络不是直连的,隔着普通的局域网络 问: Flanel现在到哪个版本了,后续版本有什么侧重點性能优化,还是功能扩展

答:还没到1.0,在GitHub上面有他们的发展计划性能是很大的一部分。 问: 就是在CoreOS中客户还需要安装flannel网络吗?

答:不需要在启动的Cloudinit配置里面给Etcd写入flannel网络配置,然后加上flannel网络d.service command: start 就可以了启动完直接可用,文档连接我不找了有这段配置,现成的 問: 可不可以直接用命令指定每个主机的ip范围,然后做gre隧道实现节点之间的通信这样也可以实现不同主机上的容器ip不同且可以相互通信吧?

答:还不支持指定哪个节点用那段IP不过貌似可以在Etcd手改。 问: flannel网络只是负责通信服务那是不是还要安装k8s?

答:是的k8s是单独的。 問:现在Docker的网络组件还有什么可以选择或者推荐的?

答:Overlay网络的常用就是flannel网络和Weave其他OVS之类的另说了。 =========================== 以上内容根据2015年8月25日晚微信群分享内容整理分享人 林帆,ThoughtWorks成都Cloud&DevOps咨询师目前主要研究内容是应用容器化和CoreOS系统楿关领域。《CoreOS实践指南》和《CoreOS那些事》系列文章作者

}

我要回帖

更多关于 flannel网络 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信