docker环境下构建flannel 网络
flannel 是coreos 开发的网络解决方案,为每一台主机分配一个 subnet,容器从此subnet 中分配ip,ip可以在主机间路由。每个subnet从更大的ip池中划分,为了在各个主机间共享信息,用etcd 存放网络配置信息。数据包在主机间转发是backend 决定的,flannel提供多种backend,包括vxlan ,host-gw。
一、环境
三台主机,一台etcd 主机,作为共享数据使用;两台主机安装docker。
做主机ip和主机名的 hosts文件映射,然后拷贝至三台机器
二、实施
1.软件准备
1)安装etcd
在 github.com 上下载,解压,
cp etcd* /usr/local/bin
启动etcd,
etcd --listen-client-urls http://0.0.0.0:2379 --advertise-client-urls http://0.0.0.0:2379
测试是否能使用,etcdctl -endpoints=cloud_server:2379 set foo bar ; etcdctl get foo ,能够得到 foo 的值 bar ,成功。
2)构建flannel
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
docker rmi cloudman6/kube-cross:v1.6.2-2
下载flannel,
git clone https://github.com/coreos/flannel.git
开始构建
make dist/flanneld-amd64,过程中会下载golang:1.10.3镜像
生成执行程序 flanneld-amd64
拷贝至两台主机相应目录
scp flanneld-amd64 cloud_client1:/usr/local/bin/flanneld
scp flanneld-amd64 cloud_client2:/usr/local/bin/flanneld
2.启动flannel,在两台主机分别执行
flanneld -etcd-endpoints=http://cloud_server:2379 -iface=eth0 -etcd-prefix=/docker-test/network
每台主机会添加一块flannel.1的网卡,并添加一条到另一台主机的路由
在网络拓扑中,flannel没有创建新的 docker网络,而是直接使用默认的bridge 网络,同一主机的容器通过 docker0连接,跨主机通过flannel.1转发。
3.将容器连接到 flannel
在主机1中执行docker run -itd --name bbox1 busybox
在主机2中执行 docker run -itd --name bbox2 busybox
1)网络连通性
docker exec bbox1 ping -c 2 bbox2 的ip地址
能ping 通,数据流的走向为: bbox1的ip找网关docker0,docker0找 flannel.1,再到主机的 ens33, 连通主机2的 ens33,到flannel.1到docker0,再到bbox2的ip;
flannel没有dns,flannel网络内主机可以相互路由,将主机上的 docker0容器网络组成了一个大的网络,实现跨主机通信,没有网络隔离。
2)与外网通信
容器通过docker0 NAT 访问外网;外网通过主机端口映射访问容器。
docker环境下构建flannel 网络的更多相关文章
- docker 环境下创建 overlay 网络方案
一.环境 三台机器,其中一台安装 consul(192.168.1.21), 两台创建网络(192.168.1.32,33) 二.实现步骤 1.构建环境 1)三台机器部署docker环境 2)选择一台 ...
- docker环境下solrcloud+zookeeper集群部署教程
前言:两个月前的16年11月份完成的配置,使用的solr6.1和zookeeper3.4,刚刚写成blog,目前版本可能有小版本的变化. 本例完成结果为:在docker环境下部署solrcloud集群 ...
- 如何在 Docker 环境下自动给 .NET 程序生成 Dump
前言 之前"一线码农"大佬有写文章介绍了如何在 windows 下自动 dump,正好手里有个在 docker 环境下 dump 的需求,所以在参考大佬文章的基础上,有了本篇. ...
- Win7+VMware Workstation环境下的CentOS-Linux网络连接设置
Win7+VMware Workstation环境下的CentOS-Linux网络连接设置 http://blog.sciencenet.cn/blog-430991-507041.html 近日 ...
- Docker环境下的Mysql8 实现主从数据库数据同步方案
本文记录下通过MySQL Replication在Docker环境下,通过多个容器 实现数据库主从配置. MySQL Replication就不多解释了,简单说就是MySQL非常出色的一个功能,该功能 ...
- docker环境下solr6.0配置(中文分词+拼音)
前言:这篇文章是基于之前的“linux环境下配置solr5.3详细步骤”(http://www.cnblogs.com/zhangyuan0532/p/4826740.html)进行扩展的.本篇的步骤 ...
- Mac+Docker环境下xdebug的配置
由于容器化的需要,前几天我本地也换成了docker环境.就研究了一下docker环境下phpstorm和xdebug的配置. http://www.mmfei.com/?p=453 这个博客给出了一个 ...
- CentOS6.8环境下搭建yum网络仓库
CentOS6.8环境下搭建yum网络仓库 本文利用ftp服务,在CentOS6.8系统下搭建一个yum仓库,然后用另一台虚拟机访问该仓库.并安装程序包 安装ftp服务 查询ftp服务是否安装 [ro ...
- Elasticsearch Docker环境下安装
Elasticsearch Docker环境下安装 Daemon镜像配置的是https://registry.docker-cn.com Linux:vi /etc/docker/daemon.jso ...
随机推荐
- ZT android -- 蓝牙 bluetooth (三)搜索蓝牙
android -- 蓝牙 bluetooth (三)搜索蓝牙 分类: Android的原生应用分析 2013-05-31 22:03 2192人阅读 评论(8) 收藏 举报 bluetooth蓝牙s ...
- OC继承
1.成员访问类型 private:私有成员,不能被外部函数访问(使用),也不能被子类继承: protected:保护成员,不能被外部函数访问,可以被子类继承: public:公有成员,可以被外部函数访 ...
- c++计算器后续(2)
自娱自乐: 大概是了解了一下前缀.中缀.后缀表示法是啥,并没有去深究,比如考虑实现啊,然后Calculation类里面的计算方法还是选用原来的直接对中缀表达式求值,只是把代码改得规范点,以上. 各表示 ...
- python接口测试-项目实践(八) 完成的接口类和执行脚本
脱敏后脚本 projectapi.py: 项目接口类 # -*- coding:utf-8 -*- """ xx项目接口类 2018-11 dinghanhua &quo ...
- Spring Cloud(中文版)
原文链接:Spring Cloud I.云原生应用 Spring Cloud上下文:应用上下文服务 2.1.Bootstrap应用程序上下文 2.2.应用程序上下文层次结构 2.3.更改Bootstr ...
- 远程执行newLISP代码
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/sheismylife/article/details/26393899 newLISP提供了一个简单 ...
- [POI2006]TET-Tetris 3D
题目 二维线段树板子题啊 但是惊讶的发现我不会打标记 毕竟内层是线段树不能\(pushup\)也不能\(pushdown\) 于是考虑一下标记永久化 其实非常显然\(mx_i\)表示区间最大值,\(t ...
- windows C++ new/delete内存大小
转载自:https://blog.csdn.net/will_hsbsch/article/details/21124055 windows 上,但使用C++语言new一块内存,用指针P指向这块内存, ...
- [Python 多线程] Condition (十)
Condition常用于生产者.消费者模型,为了解决生产者消费者速度匹配问题. 构造方法Condition(lock=None),可以传入一个Lock或RLock对象,默认RLock. 方法: acq ...
- Python 多线程 进程与线程相关概念 (一)
0x00 并行和并发 并行:同时做某些事,可以互不干扰的同一时刻做几件事. 并发:也是同时做某些事,但是强调,同一时刻做了几件事. 0x01 并发的解决: 1)队列.缓冲区: 排队就是队列,先进先出. ...