第 8 章 容器网络 - 059 - 安装配置 flannel
安装配置 flannel
1) build flannel
flannel 没有现成的执行文件可用,必须自己 build,最可靠的方法是在 Docker 容器中 build。
不过用于做 build 的 docker 镜像托管在 gcr.io,国内可能无法直接访问,所以使用参考文档中提供的镜像,构建步骤如下:
下载并重命名 image。
docker pull cloudman6/kube-cross:v1.6.2-2
docker 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 flannel
make dist/flanneld-amd64
将 flanneld 执行文件拷贝到 host1 和 host2。
scp dist/flanneld-amd64 10.12.31.22:/usr/local/bin/flanneld
scp dist/flanneld-amd64 10.12.31.23:/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=10.12.31.21:2379 set /docker-test/network/config < flannel-config.json

/docker-test/network/config 是此 etcd 数据项的 key,其 value 为 flannel-config.json 的内容。
key 可以任意指定,这个 key 后面会作为 flanneld 的一个启动参数。执行 etcdctl get 确保设置成功。
2) 启动 flannel
在 host1 和 host2 上执行如下命令:
flanneld -etcd-endpoints=http://10.12.31.21:2379 -iface=ens192 -etcd-prefix=/docker-test/network
- -etcd-endpoints 指定 etcd url。
- -iface 指定主机间数据传输使用的 interface。
- -etcd-prefix 指定 etcd 存放 flannel 网络配置信息的 key。
host1 上输出如下:
1、ens192 被选作与外部主机通信的 interface。
2、识别 flannel 网络池 10.2.0.0/16。
3、分配的 subnet 为 10.2.63.0/24。
flanneld 启动后,host1 内部网络会发生一些变化:

- 一个新的 interface flannel.1 被创建,而且配置上 subnet 的第一个 IP 10.2.63.0。

- host1 添加了一条路由:目的地址为 flannel 网络 10.2.0.0/16 的数据包都由 flannel.1 转发。
- 实验结果没有这条路由 路由是10.2.63.0/24.

host2 输出类似,主要区别是 host2 的 subnet 为 10.2.46.0/24:

当前环境网络拓扑如图所示:

----------------------------------------引用来自-----------------------------------------
https://mp.weixin.qq.com/s?__biz=MzIwMTM5MjUwMg==&mid=2653587804&idx=1&sn=60d710bbfebbb0e71208f4ca4dbeb246&chksm=8d308145ba470853821df51d37637f9dbfe5934ef441ac837001bc05e149aaf2c175eeb516d5&scene=21#wechat_redirect
第 8 章 容器网络 - 059 - 安装配置 flannel的更多相关文章
- 第 8 章 容器网络 - 062 - 如何使用 flannel host-gw backend?
flannel host-gw backend flannel 支持多种 backend:(1)vxlan backend:(2)host-gw: 与 vxlan 不同,host-gw 不会封装数据包 ...
- 安装配置 flannel - 每天5分钟玩转 Docker 容器技术(59)
上一节我们部署了 etcd,本节安装和配置 flannel. build flannel flannel 没有现成的执行文件可用,必须自己 build,最可靠的方法是在 Docker 容器中 buil ...
- 第 8 章 容器网络 - 058 - flannel 概述
flannel 概述 flannel 是 CoreOS 开发的容器网络解决方案. flannel 为每个 host 分配一个 subnet,容器从此 subnet 中分配 IP,这些 IP 可以在 h ...
- 第 8 章 容器网络 - 072 - 一文搞懂各种 Docker 网络
Docker 起初只提供了简单的 single-host 网络,显然这不利于 Docker 构建容器集群并通过 scale-out 方式横向扩展到多个主机上. 跨主机网络方案: Docker Over ...
- 第 8 章 容器网络 - 065 - 容器在 Weave 中如何通信和隔离?
首先在host2 执行如下命令: weave launch 10.12.31.22 这里必须指定 host1 的 IP 10.12.31.22,这样 host1 和 host2 才能加入到同一个 we ...
- 第 8 章 容器网络 - 063 - 如何使用 Weave 网络?
如何使用 Weave 网络? weave 是 Weaveworks 开发的容器网络解决方案. weave 创建的虚拟网络可以将部署在多个主机上的容器连接起来. 对容器来说,weave 就像一个巨大的以 ...
- 第 8 章 容器网络 - 054 - 准备 macvlan 环境
准备 macvlan 环境 macvlan 本身是 linux kernel 模块,其功能是允许在同一个物理网卡上配置多个 MAC 地址,即多个 interface,每个 interface 可以配置 ...
- 第 8 章 容器网络 - 061 - flannel 的连通与隔离
flannel 的连通与隔离 测试 bbox1 和 bbxo2 的连通性: bbox1 能够 ping 到位于不同 subnet 的 bbox2,通过 traceroute 分析一下 bbox1 到 ...
- 059、安装配置flannel(2019-03-28 周四)
参考https://www.cnblogs.com/CloudMan6/p/7424858.html build flannel flannel 没哟现成的执行文件可用,必须自己build,最 ...
随机推荐
- dubbo rpc调用抛出的Exception处理
关于dubbo的Exception堆栈被吃处理,网上已经有比较多的解决方法,在我们的应用场景中,不希望RPC调用对方抛出业务exception,而是通过Resp中的errorCode,errorMsg ...
- mysql 5.6二进制安装
1. 进入用户家目录创建tools文件夹 # cd ~ #mkdir tools 2.下载MySQL5.6二进制包(搜狐镜像里有各版本下载http://mirrors.sohu.com/mysql/ ...
- php 输出缓存,每秒打印一个数字
<?php set_time_limit(0); //以上三行不加上nginx下不执行,一次性显示出来 header('Content-Type: text/event-stream'); // ...
- linux 中部署 rsync 实现文件远程备份及 同步
客户端:数据源:服务端:数据接收方 rsync官方文档:https://www.samba.org/ftp/rsync/rsync.html 手动测试用“通过远程外壳访问"里的语法: 参考1 ...
- js导读,js引入,js选择器,事件,操作页面文档,计算后样式,数据类型
js导读 ''' js属于编写运行在浏览器上的脚本语言 js采用ECMAScript语法 操作BOM:浏览器对象模型 eg:浏览器上下滑动,浏览器历史记录 操作DOM:文档对象模型 ''' js引入 ...
- [内核驱动] DOS路径转化为NT路径
转载:http://blog.csdn.net/qq_33504040/article/details/78468278 最近在做一个文件过滤驱动程序,禁止访问指定目录或文件.想要从R3给R0发命令和 ...
- 【Python019--函数与过程】
一.函数与过程 1.Python只有函数没有过程 >>> def hello(): print('Hello fishC!')>>> temp = hell ...
- Python3 tkinter基础 Listbox for+insert 将list中元素导入listbox中
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- Python3 tkinter基础 Label 显示的文字换行
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- SP6779 GSS7
GSS7解题报告 前言 唔,有点恶心哪,废了两个多小时debug 思路 很容易看出傻子都知道,这个是树链剖分+线段树的裸题,只不过是恶心了点,这里重点讲一下细节问题 线段树 做过GSS系列的都应该很熟 ...