安装配置 flannel - 每天5分钟玩转 Docker 容器技术(59)
上一节我们部署了 etcd,本节安装和配置 flannel。
build flannel
flannel 没有现成的执行文件可用,必须自己 build,最可靠的方法是在 Docker 容器中 build。不过用于做 build 的 docker 镜像托管在 gcr.io,国内可能无法直接访问,为方便大家,我把它 mirror 到了 docker hub,构建步骤如下:
下载并重命名 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 192.168.56.104:/usr/local/bin/flanneld
scp 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)的更多相关文章
- 在 Docker 中使用 flannel - 每天5分钟玩转 Docker 容器技术(60)
上一节我们安装和配置了 flannel,本节在 Docker 中使用 flannel. 配置 Docker 连接 flannel 编辑 host1 的 Docker 配置文件 /etc/systemd ...
- 如何安装和配置 Rex-Ray?- 每天5分钟玩转 Docker 容器技术(74)
Rex-Ray 是一个优秀的 Docker volume driver,本节将演示其安装和配置方法. Rex-Ray 以 standalone 进程的方式运行在 Docker 主机上,安装方法很简单, ...
- 配置 VirtualBox backend - 每天5分钟玩转 Docker 容器技术(75)
Rexy-Ray 支持多种 backend,上一节我们已经安装配置了 Rex-Ray,今天演示如何配置 VirtualBox backend. 在 VirtualBox 宿主机,即我的笔记本上启动 v ...
- 管理和安装 chart - 每天5分钟玩转 Docker 容器技术(168)
安装 chart 当我们觉得准备就绪,就可以安装 chart,Helm 支持四种安装方法: 安装仓库中的 chart,例如:helm install stable/nginx 通过 tar 包安装,例 ...
- 用 ConfigMap 管理配置 - 每天5分钟玩转 Docker 容器技术(159)
Secret 可以为 Pod 提供密码.Token.私钥等敏感数据:对于一些非敏感数据,比如应用的配置信息,则可以用 ConfigMap. ConfigMap 的创建和使用方式与 Secret 非常类 ...
- 如何配置 Health Check?- 每天5分钟玩转 Docker 容器技术(107)
容器状态是 UP 的,应用就是健康的吗? 还真不一定!Docker 只能从容器启动进程的返回代码判断其状态,而对于容器内部应用的运行情况基本没有了解. 执行 docker run 命令时,通常会根据 ...
- 部署 k8s Cluster(上)- 每天5分钟玩转 Docker 容器技术(118)
我们将部署三个节点的 Kubernetes Cluster. k8s-master 是 Master,k8s-node1 和 k8s-node2 是 Node. 所有节点的操作系统均为 Ubuntu ...
- Kubernetes 架构(下)- 每天5分钟玩转 Docker 容器技术(121)
上一节我们讨论了 Kubernetes 架构 Master 上运行的服务,本节讨论 Node 节点. Node 是 Pod 运行的地方,Kubernetes 支持 Docker.rkt 等容器 Run ...
- 创建 Rex-Ray volume - 每天5分钟玩转 Docker 容器技术(76)
前面我们安装部署了 Rex-Ray,并且成功配置 VirtualBox backend,今天演示如何创建和使用 Rex-Ray volume. 在 docker1 或 docker2 上执行如下命令创 ...
随机推荐
- JS实现悬浮导航的制作--web前端
思想:导航在这里只有两种状态,一种是初始状态.一种是固定布局状态.实现悬浮导航其实就是通过Javascript脚本语言控制导航的两种状态,主要是对两种状态成立条件的判断,明确了这些,实现起来就不会太难 ...
- CentOS环境下中文显示乱码,vim和ls命令显示中文均为乱码的解决办法
1.登陆linux系统打开操作终端之后,输入 echo $LANG可以查看当前使用的系统语言 2.查看是否有中文语言包可以在终端输入 locale命令,如有zh cn 表示已经安装了中文语言 3.如果 ...
- 关于sessionStorage的移动端兼容问题
最近在开发移动端项目时,需要用到的本地存储的地方不少.都是一些只要记住当前打开窗口的用户数据就行,所以我选择用的sessionStorage.使用场景如下: A.html页面需要记录一条数据{a:1, ...
- 关于SpringMVC中如何把查询数据全转成String类型
之前,本想与客户商量做几张固定的报表予使用,结果发现客户每个月都需要各种各样的报表,所以我们做了个窗口用于直接执行SQL语句:数据量一开始并不是很大查询出来的数据较少(约1-6W左右),所以刚开始几个 ...
- 【微信小程序开发教程】如何显示群名称?
今年 5 月份的时候,微信宣布:「为了更好的针对群场景提供个性化服务,当用户在群聊中点击小程序分享卡片时,小程序支持开发者获取群 ID 和群名称」.但随后没多久,发现小程序只返回了群 ID,并没有给我 ...
- SSM整合学习笔记
对学习Spring+Spring MVC+Mybatis过程中出现的问题解决办法汇总 出现的问题 1.pom.xml报错 右键项目->maven->update project 因此每次更 ...
- kevin的黎明十分
今天在搜索struts2的相关知识的时候,博客园让我提起了兴趣.其间看到了hongton同学的分享,感觉受益颇深!所以今天我加入了博客园,希望自己以后能在这个大家园中分享知识,收获人生! 即兴之下, ...
- Python进行文本处理
对于一个文本字符串,可以使用Python的string.split()方法将其切割.下面看看实际运行效果. mySent = 'This book is the best book on python ...
- Mybatis框架分析
摘要 本篇文章只是个人阅读mybatis源码总结的经验或者个人理解mybatis的基本轮廓,作为抛砖引玉的功能,希望对你有帮助,如果需要深入了解细节还需亲自去阅读源码. mybatis基本架构 myb ...
- EF 中 Code First 的数据迁移以及创建视图
写在前面: EF 中 Code First 的数据迁移网上有很多资料,我这份并没什么特别.Code First 创建视图网上也有很多资料,但好像很麻烦,而且亲测好像是无效的方法(可能是我太笨,没搞成功 ...