第 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,最 ...
随机推荐
- python引入模块
1.自定义模块model_1.py def add(a,b): return a+b def dec(a,b): return a-b HEAD = "55AA" 2.程序代码 i ...
- 转载:Systemd 服务配置文件
目录 一.开机启动 二.启动服务 三.停止服务 四.读懂配置文件 五. [Unit] 区块:启动顺序与依赖关系. 六.[Service] 区块:启动行为 6.1 启动命令 6.2 启动类型 6.3 重 ...
- LuoguP5221 Product
题目地址 题目链接 题解 注,下方\((i,j)\)均指\(gcd(i,j)\),以及证明过程有一定的跳步,请确保自己会莫比乌斯反演的基本套路. 介绍本题的\(O(n)\)和\(O(n\sqrt{n} ...
- (转)Awesome Knowledge Distillation
Awesome Knowledge Distillation 2018-07-19 10:38:40 Reference:https://github.com/dkozlov/awesome-kno ...
- C++变量的默认初始化规则
定义没有初始化式的变量时,系统有时候会帮我们初始化变量.系统如何初始化取决于变量的类型以及变量定义的位置. 内置类型变量是否自动初始化取决于变量定义的位置.函数体外定义的变量初始成0:函数体内定义的变 ...
- Vue.directive自定义指令
Vue除了内部指令,我们也可以定义一些属于自己的指令,比如我们要定义一个v-diy的指令,作用就是让文字变成红色. 写好了这个功能,我们现在就自己定义一个全局的指令.我们这里使用Vue.directi ...
- (转载)用C#实现MySQL建库及建表
最近做一个项目,为了方便用户使用,希望可以在系统初始化的时候,自动实现MySQL数据库的建库和建表操作.在网上查了很多资料都没有找到合适的,偶尔在一个国外网站上看到了相关的内容,特把实现方法整理如下: ...
- MPI 环境搭建问题-运行程序闪退
安装后smpd无法运行,进程中没有smpd.exe.注册过程也完成了.运行自带的测试程序cpi.exe,提示:Error: No smpd passphrase specified through t ...
- Docker2之Service
Make sure you have published the friendlyhello image you created by pushing it to a registry. We’ll ...
- Chrome上的扩展工具
rest client - rest api Testing:类似fiddler的工具,可以测试url,查看返回值……