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 网络的更多相关文章

  1. docker 环境下创建 overlay 网络方案

    一.环境 三台机器,其中一台安装 consul(192.168.1.21), 两台创建网络(192.168.1.32,33) 二.实现步骤 1.构建环境 1)三台机器部署docker环境 2)选择一台 ...

  2. docker环境下solrcloud+zookeeper集群部署教程

    前言:两个月前的16年11月份完成的配置,使用的solr6.1和zookeeper3.4,刚刚写成blog,目前版本可能有小版本的变化. 本例完成结果为:在docker环境下部署solrcloud集群 ...

  3. 如何在 Docker 环境下自动给 .NET 程序生成 Dump

    前言 之前"一线码农"大佬有写文章介绍了如何在 windows 下自动 dump,正好手里有个在 docker 环境下 dump 的需求,所以在参考大佬文章的基础上,有了本篇. ​ ...

  4. Win7+VMware Workstation环境下的CentOS-Linux网络连接设置

    Win7+VMware Workstation环境下的CentOS-Linux网络连接设置 http://blog.sciencenet.cn/blog-430991-507041.html   近日 ...

  5. Docker环境下的Mysql8 实现主从数据库数据同步方案

    本文记录下通过MySQL Replication在Docker环境下,通过多个容器 实现数据库主从配置. MySQL Replication就不多解释了,简单说就是MySQL非常出色的一个功能,该功能 ...

  6. docker环境下solr6.0配置(中文分词+拼音)

    前言:这篇文章是基于之前的“linux环境下配置solr5.3详细步骤”(http://www.cnblogs.com/zhangyuan0532/p/4826740.html)进行扩展的.本篇的步骤 ...

  7. Mac+Docker环境下xdebug的配置

    由于容器化的需要,前几天我本地也换成了docker环境.就研究了一下docker环境下phpstorm和xdebug的配置. http://www.mmfei.com/?p=453 这个博客给出了一个 ...

  8. CentOS6.8环境下搭建yum网络仓库

    CentOS6.8环境下搭建yum网络仓库 本文利用ftp服务,在CentOS6.8系统下搭建一个yum仓库,然后用另一台虚拟机访问该仓库.并安装程序包 安装ftp服务 查询ftp服务是否安装 [ro ...

  9. Elasticsearch Docker环境下安装

    Elasticsearch Docker环境下安装 Daemon镜像配置的是https://registry.docker-cn.com Linux:vi /etc/docker/daemon.jso ...

随机推荐

  1. 沉淀,再出发:python中的pandas包

    沉淀,再出发:python中的pandas包 一.前言 python中有很多的包,正是因为这些包工具才使得python能够如此强大,无论是在数据处理还是在web开发,python都发挥着重要的作用,下 ...

  2. Mac Sublime Text 3

    安装Package Control安装过程: 使用快捷键 control + ` 或者菜单栏选择View > Show Console安装Package Control参考官方页面.Sublim ...

  3. 激活pycharm

    1. 修改hosts文件: 添加下面一行到hosts文件,目的是屏蔽掉Pycharm对激活码的验证**0.0.0.0 account.jetbrains.com ** windwos系统hosts文件 ...

  4. socket的双重属性

    1)api属性: 2)通信链路的端点属性.

  5. 俄罗斯方块 UWP 版

    UWP跟 WPF编程模型一致,不过UWP做了精简,而且不同的系统的API还略有不同.不同的地方有以下几点: 1.动画.动画除了故事版,还有其它的实现方式. 2.异步方法.UWP中的方法调用,大部分都是 ...

  6. 解决java log4j 配置log4jCaused by: java.lang.ClassNotFoundException: org.apache.logging.log4j.LogManager

    前提安装http://mirror.bit.edu.cn/apache/logging/log4j/2.11.2/apache-log4j-2.11.2-bin.zip Buildpath 配置add ...

  7. ovs的卸载删除

    参考博客1 参考博客2 需要更新.重装ovs时需要先卸载. 删除网桥.端口 ovs-vsctl del-br 交换机名 ovs-vsctl del-port 交换机名 端口名(网卡名) 关闭服务 su ...

  8. PPP interface for lwIP

    //原文 地址 :http://www.nongnu.org/lwip/2_0_x/group__ppp.html /* //协议说明,2017年6月29日14:19:18,suozhang PPP ...

  9. EF Core 2.0 已经支持自动生成父子关系表的实体

    现在我们在SQL Server数据库中有Person表如下: CREATE TABLE [dbo].[Person]( ,) NOT NULL, ) NULL, ) NULL, ) NULL, [Cr ...

  10. 设计模式 - 抽象工厂模式(abstract factory pattern) 具体解释

    抽象工厂模式(abstract factory pattern) 详细解释 本文地址: http://blog.csdn.net/caroline_wendy/article/details/2709 ...