码迷,mamicode.com
首页 > 其他好文 > 详细

Fannel-容器互通

时间:2016-08-23 17:14:12      阅读:1121      评论:0      收藏:0      [点我收藏+]

标签:flannel

Flannel:

flannel是coreos开发专门用于docker多机互联的一个工具,让集群中的不同节点主机创建的容器都具有全集群唯一的虚拟ip地址,flannel使用go语言编写。

Flannel的设计目的:为集群中的所有节点重新规划IP地址的使用规则,使得不同节点上的容器能够获得“同属一个内网”且”不重复的”IP地址,并让属于不同节点上的容器能够直接通过内网IP通信。


工作原理:

Flannel实质上是一种“覆盖网络(overlay network)”,也就是将TCP数据包装在另一种网络包里面进行路由转发和通信,目前已经支持UDP、VxLAN、AWS VPC和GCE路由等数据转发方式。

简单来说就是,将配置存在etcd上面,然后客户端使用flannel获取到一个可用的网段,然后将该网段修改docker0的网段,使得每个主机的docker IP段不同,但是又同在一个大网段中。

原理图:

技术分享


安装配置:

1.安装etcd

curl -L https://github.com/coreos/etcd/releases/download/v2.2.2/etcd-v2.2.2-linux-amd64.tar.gz -o etcd-v2.2.2-linux-amd64.tar.gz
tar xzvf etcd-v2.2.2-linux-amd64.tar.gz
cd etcd-v2.2.2-linux-amd64
cp etcd*  /bin/
etcd --listen-client-urls ‘http://0.0.0.0:2379‘ --advertise-client-urls="http://0.0.0.0:2379" &

2.配置网络

etcdctl -C 192.168.229.128:2379 set /data/etcdctl/config ‘{"network":"192.168.0.0/16"}‘ UDP转发,使用端口暂不确定
etcdctl -C 192.168.229.128:2379 set /data/etcdctl/config ‘{"network":"192.168.0.0/16", "Backend": {"Type": "vxlan"}}‘ VXLAN模式
说明: VXLAN模式性能比UDP高,但是都相对于正常网络有损失

3.安装flannel(运行docker机器上面)

flanneld通过etcd获取到一些配置。然后通过 mk-docker-opts.sh生成参数列表 ,需要自己加到/etc/default/docker中。重启docker,最主要的就是docker0的IP段

wget https://github.com/coreos/flannel/releases/download/v0.5.5/flannel-0.5.5-linux-amd64.tar.gz

该包中有两下文件

mk-docker-opts.sh: 可不用,主要是用于生成docker启动的一些参数

flanneld: 二进制文件


4. 启动flanneld

flanneld -etcd-endpoints="http://192.168.229.128:2379" -etcd-prefix="/data/etcdctl" &
cd flannel-0.5.5  && ./mk-docker-opts.sh -i
source /run/flannel/subnet.env
ifconfig docker0 ${FLANNEL_SUBNET}
service docker restart

docker run -it -d --name ubuntu01 ubuntu    #正常run一个容器,内网关互通
root@b32a7d545629:/# ping 192.168.88.2
PING 192.168.88.2 (192.168.88.2) 56(84) bytes of data.
64 bytes from 192.168.88.2: icmp_seq=1 ttl=60 time=1.89 ms
64 bytes from 192.168.88.2: icmp_seq=2 ttl=60 time=1.32 ms
64 bytes from 192.168.88.2: icmp_seq=3 ttl=60 time=1.84 ms


原理参考链接:

http://www.open-open.com/news/view/1aa473a

本文出自 “天天向上goto” 博客,请务必保留此出处http://ttxsgoto.blog.51cto.com/4943095/1841451

Fannel-容器互通

标签:flannel

原文地址:http://ttxsgoto.blog.51cto.com/4943095/1841451

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!