安装配置 flannel - 每天5分钟玩转 Docker 容器技术(59)
2017-08-25 09:32
801 查看
上一节我们部署了 etcd,本节安装和配置 flannel。
docker pull cloudman6/kube-cross:v1.6.2-2docker tag cloudman6/kube-cross:v1.6.2-2 gcr.io/google_containers/kube-cross:v1.6.2-2
下载 flannel 源码。git clone https://github.com/coreos/flannel.git
开始构建。
cd flannelmake dist/flanneld-amd64
将 flanneld 执行文件拷贝到 host1 和 host2。
scp dist/flanneld-amd64 192.168.56.104:/usr/local/bin/flanneldscp dist/flanneld-amd64 192.168.56.105:/usr/local/bin/flanneld
{ "Network": "10.2.0.0/16", "SubnetLen": 24, "Backend": { "Type": "vxlan" }}
将配置存入 etcd:
etcdctl --endpoints=192.168.56.101:2379 set /docker-test/network/config < flannel-config.json
启动 flannel在 host1 和 host2 上执行如下命令:
flanneld -etcd-endpoints=http://192.168.56.101:2379 -iface=enp0s8 -etcd-prefix=/docker-test/network
① enp0s8 被选作与外部主机通信的 interface。② 识别 flannel 网络池 10.2.0.0/16。③ 分配的 subnet 为 10.2.40.0/24。flanneld 启动后,host1 内部网络会发生一些变化:一个新的 interface
host1 添加了一条路由:目的地址为 flannel 网络 10.2.0.0/16 的数据包都由 flannel.1 转发。
host2 输出类似,主要区别是 host2 的 subnet 为 10.2.17.0/24:
当前环境网络拓扑如图所示:
flannel 已经就绪,下一节演示如何在 Docker 中使用 flannel 网络。
build flannel
flannel 没有现成的执行文件可用,必须自己 build,最可靠的方法是在 Docker 容器中 build。不过用于做 build 的 docker 镜像托管在 gcr.io,国内可能无法直接访问,为方便大家,我把它 mirror 到了 docker hub,构建步骤如下:下载并重命名 image。docker pull cloudman6/kube-cross:v1.6.2-2docker tag cloudman6/kube-cross:v1.6.2-2 gcr.io/google_containers/kube-cross:v1.6.2-2
下载 flannel 源码。git clone https://github.com/coreos/flannel.git
开始构建。
cd flannelmake dist/flanneld-amd64
将 flanneld 执行文件拷贝到 host1 和 host2。
scp dist/flanneld-amd64 192.168.56.104:/usr/local/bin/flanneldscp dist/flanneld-amd64 192.168.56.105:/usr/local/bin/flanneld
将 flannel 网络的配置信息保存到 etcd
先将配置信息写到文件 flannel-config.json 中,内容为:{ "Network": "10.2.0.0/16", "SubnetLen": 24, "Backend": { "Type": "vxlan" }}
Network定义该网络的 IP 池为
10.2.0.0/16。
SubnetLen指定每个主机分配到的 subnet 大小为 24 位,即
10.2.X.0/24。
Backend为
vxlan,即主机间通过 vxlan 通信,后面我们还会讨论
host-gw。
将配置存入 etcd:
etcdctl --endpoints=192.168.56.101:2379 set /docker-test/network/config < flannel-config.json
/docker-test/network/config是此 etcd 数据项的 key,其 value 为 flannel-config.json 的内容。key 可以任意指定,这个 key 后面会作为 flanneld 的一个启动参数。执行
etcdctl get确保设置成功。
启动 flannel在 host1 和 host2 上执行如下命令:
flanneld -etcd-endpoints=http://192.168.56.101:2379 -iface=enp0s8 -etcd-prefix=/docker-test/network
-etcd-endpoints指定 etcd url。
-iface指定主机间数据传输使用的 interface。
-etcd-prefix指定 etcd 存放 flannel 网络配置信息的 key。host1 上输出如下:
① enp0s8 被选作与外部主机通信的 interface。② 识别 flannel 网络池 10.2.0.0/16。③ 分配的 subnet 为 10.2.40.0/24。flanneld 启动后,host1 内部网络会发生一些变化:一个新的 interface
flannel.1被创建,而且配置上 subnet 的第一个 IP 10.2.40.0。
host1 添加了一条路由:目的地址为 flannel 网络 10.2.0.0/16 的数据包都由 flannel.1 转发。
host2 输出类似,主要区别是 host2 的 subnet 为 10.2.17.0/24:
当前环境网络拓扑如图所示:
flannel 已经就绪,下一节演示如何在 Docker 中使用 flannel 网络。
相关文章推荐
- 安装配置 flannel - 每天5分钟玩转 Docker 容器技术(59)
- 安装配置 flannel - 每天5分钟玩转 Docker 容器技术(59)
- 安装配置 flannel - 每天5分钟玩转 Docker 容器技术(59)
- 如何安装和配置 Rex-Ray?- 每天5分钟玩转 Docker 容器技术(74)
- 如何安装和配置 Rex-Ray?- 每天5分钟玩转 Docker 容器技术(74)
- 如何安装和配置 Rex-Ray?- 每天5分钟玩转 Docker 容器技术(74)
- 如何安装和配置 Rex-Ray?- 每天5分钟玩转 Docker 容器技术(74)
- 安装 Docker Machine - 每天5分钟玩转 Docker 容器技术(45)
- 安装 Docker Machine - 每天5分钟玩转 Docker 容器技术(45)
- 安装 Docker Machine - 每天5分钟玩转 Docker 容器技术(45)
- 如何配置 Health Check?- 每天5分钟玩转 Docker 容器技术(107)
- flannel 概述 - 每天5分钟玩转 Docker 容器技术(58)
- 如何配置 Health Check?- 每天5分钟玩转 Docker 容器技术(107)
- 安装 Docker Machine - 每天5分钟玩转 Docker 容器技术(45)
- 配置 VirtualBox backend - 每天5分钟玩转 Docker 容器技术(75)
- 在 Docker 中使用 flannel - 每天5分钟玩转 Docker 容器技术(60)
- 如何配置 Health Check?- 每天5分钟玩转 Docker 容器技术(107)
- 配置 VirtualBox backend - 每天5分钟玩转 Docker 容器技术(75)
- 在 Docker 中使用 flannel - 每天5分钟玩转 Docker 容器技术(60)
- 在 Docker 中使用 flannel - 每天5分钟玩转 Docker 容器技术(60)