同步操作将从 崔文俊/quick 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
是coreos公司设计的,功能是让集群中不同的机器上创建的POD都具备全集群唯一的虚拟IP地址,就好像是一个全局的DHCP服务一样。它还可以在这些IP地址之间创建一个所谓的Overlay网络,通过这个Overlay网络,可以将数据包传输到目标容器。
跨主机的2个POD之间数据互通,比如10.1.15.2要和下面的10.1.20.3通讯,就要经过2台Node上的Flanneld进程进行代理,Flanneld会把数据包封装成UDP数据包,从192.168.66.11发送到192.168.66.12上面,66.12上面的flanneld进程收到数据包后,进行解包,发现数据是发往10.1.20.3的,它就会把数据从Flannel0网桥发给Docker0网桥,Docker0网桥就把数据发给了下图中最下面的一个IP地址是10.1.20.3/24的POD,整个流程就是这样的。这样就实现了所谓的跨主机的扁平化网络。
总得看起来,因为涉及到通过Flanneld进程进行UDP数据包的封包和解包,开销还是蛮大的。
ETCD存储Flannel的数据,包括:可供分配的IP地址资源、监控ETCD中每个POD的实际地址,并在内存中建立维护POD节点路由表
yum install flannel -y,一键安装,大概40多M的样子, 装好了以后,flannel也是要把数据存放在etcd里面的,所以配置一下让flannel知道如何去读写etcd数据库。
上面的意思是设置一下网络IP地址的分配范围,给每个POD分配IP地址的时候就可以用了,下面的每个豌豆荚POD都会被分配一个IP地址,如果你在一台kubernetes的node上创建了5个POD,那么这5个POD每个都会分配一个IP地址,每个POD里面的容器的IP是一模一样的,是共享的,反正K8S操作的最小单元是POD,而不是容器,虽然你可以创建一个只包含1个容器的POD也是可以的。
怎么测试呢,既然这个flannel网络组件已经安装好了,那么我们就在3台主机上分别启动1个容器,然后看看容器之间能否互相ping通,注意我们做的测试是跨宿主机的容器互通,用busybox镜像来做测试。
注意看3个容器的IP地址,之前我们配置flannel的时候,往etcd里面写入的IP地址范围是 172.16.0.0/16,是一个B类网段地址,所以3个容器的IP都落在了里面。 不过安装了flannel以后,docker是怎么默认就用它来管理网络的呢,原理不太清楚,需要研究docker和flannel的关系。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。