Docker跨主机网络——overlay】的更多相关文章

前言 在Docker网络--单host网络一文中,我为大家总结了Docker的单机网络相关知识和操作,单机网络比较容易.本文我为大家总结Docker跨主机通信相关知识.同样本文大部分内容以CloudMan的相关教程为基础. 一.Docker 跨主机通信 Docker跨主机网络方案包括: docker 原生的 overlay 和 macvlan. 第三方方案:常用的包括 flannel.weave 和 calico. docker 通过 libnetwork 以及 CNM 将上述各种方案与dock…
目录 一.跨主机网络概述 二.准备 overlay 环境 1.环境描述 2.创建 consul 3.修改 docker 配置文件 4.准备就绪 三.创建 overlay 网络 1.在 host1 中创建网络 2.host2 查看创建的网络 3.查看 ov_net1 详细信息 四.在 overlay 中运行容器 1.创建容器 bbox1 2.查看 bbox1 网络配置 五.overlay 网络连通性 1.host2 中运行 bbox2 2.查看 bbox2 路由情况 3.互通测试 4.实现原理 六…
为支持容器跨主机通信,Docker提供了overlay driver,使用户可以创建基于VxLAN的overlay网络.VxLAN可将二层数据封装到UDP进行传输,VxLAN提供与VLAN相同的以太网二层服务,但是拥有更强的扩展性和灵活性. Docker overlay网络需要一个key-value数据库用于保存网络信息状态,包括Network,Endpoint,IP等.Consul,Etcd和Zookeeper都是docker支持的key-value软件,今天讨论的是consul 试验环境描述…
Docker提供两种原生的跨主机网络: Overlay  和  Macvlan libnetwork & CNM libnetwork 是 docker 容器网络库,最核心的内容是其定义的 Container Network Model (CNM),这个模型对容器网络进行了抽象,由以下三类组件组成: Sandbox Sandbox 是容器的网络栈,包含容器的 interface.路由表和 DNS 设置. Linux Network Namespace 是 Sandbox 的标准实现.Sandbo…
Docker使用中网络管理是最麻烦的,在项目初始化前期就需要进行合理的规划,如果在比较理想的单主机的网络通信是比较简单的,但如果涉及到跨主机的网络就需要使用docker自带的overlay network或者第三方的网络插件,本文是以直接使用自带插件的方式实现容器跨主机访问. 基础条件1.docker版本需要在1.92.Linux内核版本3.19以上(实际操作的centos内核是3.10,并未出现异常,需后期核实)3.跨主机之间可以正常通信 consul服务搭建Docker跨主机通信需要key…
docker overlay跨主机网络 .环境 docker版本 Docker version -ce, build fc4de44 3台主机 192.168.55.51 host1 192.168.55.52 host2 192.168.55.53 host2 .部署Consul Docerk overlay 网络需要一个 key-value 数据库用于保存网络状态信息,包括 Network.Endpoint.IP 等.Consul.Etcd 和 ZooKeeper 都是 Docker 支持的…
简介 docker 在早前的时候没有考虑跨主机的容器通信,这个特性直到 docker 1.9 才出现.在此之前,如果希望位于不同主机的容器能够通信,一般有几种方法: 使用端口映射:直接把容器的服务端口映射到主机上,主机直接通过映射出来的端口通信 把容器放到主机所在的网段:修改 docker 的 ip 分配网段和主机一致,还要修改主机的网络结构 第三方项目:flannel,weave 或者 pipework 等,这些方案一般都是通过 SDN 搭建 overlay 网络达到容器通信的 随着 dock…
前提:已部署好docker服务服务预计部署情况如下10.0.0.134 Consul服务10.0.0.135 host1  主机名mcw510.0.0.134 host2  主机名mcw6host1与host2通过Consul这个key-value数据库,来报错网络状态信息,用于跨主机容器间通信.包括Network.Endpoint.IP等.其它数据库还可以使用Etcd,Zookeeper 拉取镜像,运行容器 [root@mcw4 ~]$ docker run -d -p 8500:8500 -…
PS:文章首发公众号,欢迎大家关注我的公众号:aCloudDeveloper,专注技术分享,努力打造干货分享平台,二维码在文末可以扫,谢谢大家. 上篇文章介绍了容器网络的单主机网络,本文将进一步介绍多主机网络,也就是跨主机的网络.总结下来,多主机网络解决方案包括但不限于以下几种:overlay.macvlan.flannel.weave.cacico 等,下面将分别一一介绍这几种网络, PS:本文仅从原理上对几种网络进行简单的对比总结,不涉及太多的细节. overlay 俗称隧道网络,它是基于…
前言:前面的部分一直都是单机跑docker,但实际生产环境不可能只用一台来跑.肯定会用到多台,因为他们都是内部私有ip,那么多台主机之间的容器如何通信?这个是个很头疼的问题!目前主流几种方法如下:1.使用路由机制打通网络2.使用Open vSwitch(OVS)打通网络3.使用flannel来打通网络4.使用Quagga来实现自动学习路由 第一种:使用路由机制打通网络使用Linux的路由来打通网络优点: 常规路由技术 使用传统网络技术 简单 高性能 缺点: 与现有网络融为一体 灵活性低 现在有两…
一.实验环境 机器 操作系统 安装服务 172.16.4.36 centos7 docker etcd flannel 172.16.4.37 centos7 docker etcd flanne (以上环境中:docker已安装好) 二.Flannel网络原理 Flannel是CoreOS团队针对Kubernetes设计的一个网络规划服务,简单来说,它的功能是让集群中的不同节点主机创建的Docker容器都具有全集群唯一的虚拟IP地址. 但在默认的Docker配置中,每个节点上的Docker服务…
overlay网络模型 无论是openstack还是docker都是先创建一个网络然后再创建虚机或者容器  并把创建的虚机或者容器运行在此网络中 Docker 提供了 overlay driver,使用户可以创建基于 VxLAN 的 overlay 网络.VxLAN 可将二层数据封装到 UDP 进行传输,VxLAN 提供与 VLAN 相同的以太网二层服务,但是拥有更强的扩展性和灵活性. Docerk overlay 网络需要一个 key-value 数据库用于保存网络状态信息  包括 Netwo…
使用consul 1,让两个网络环境下的容器互通,那么必然涉及到网络信息的同步,所以需要先配置一下consul. 直接运行下面命令.启动consul. docker run -d -p 8500:8500 -h consul --name consul progrium/consul -server -bootstrap 2,同步网络信息的工具安装好了,那么肯定需要容器能够使用这个同步工具,以便consul能够找到各个服务器的docker节点.修改各个节点 docker的启动配置文件/lib/s…
搭建ETCD集群 查看NODE1机器IP,并启动ETCD ubuntu@docker-node1:~$ ifconfig eth0 eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1450 inet 172.16.1.15 netmask 255.255.255.0 broadcast 172.16.1.255 inet6 fe80::f816:3eff:fe33:11a8 prefixlen 64 scopeid 0x20<li…
在前面详细讲解了几种网络模式:none,host,bridge,container.他们解决了单个主机间的容器的通信问题,并不能实现多个主机容器之间的通信. 跨主机网络方案包括两大类: 1,docker原生的:overlay和macvlan 2,第三方方案:flannel.weave和calico overlay Docker overlay网络需要一个key-value数据库用于保存网络状态信息,包括Network.Endpoint.IP等. consul.Etcd.Zookeeper都是Do…
前面已经学习了 Docker 的几种网络方案:none.host.bridge 和 joined 容器,它们解决了单个 Docker Host 内容器通信的问题.本章的重点则是讨论跨主机容器间通信的方案. 跨主机网络方案包括: docker 原生的 overlay 和 macvlan. 第三方方案:常用的包括 flannel.weave 和 calico. docker 网络是一个非常活跃的技术领域,不断有新的方案开发出来,那么要问个非常重要的问题了: 如此众多的方案是如何与 docker 集成…
跨 Docker 宿主机网络 overlay 类型 前言 a. 本文主要为 Docker的视频教程 笔记. b. 环境为 三台 CentOS 7.0 虚拟机 (Vmware Workstation 15 Player) c. 上一篇:跨 Docker 宿主机 macvlan 类型 主要原理 在一个容器中安装管理软件,负责管理容器的网络和通信,并配置其它容器与该容器连接,以形成规模. 实际操作 主要步骤:在 docker03 的宿主机上安装 consul,并配置 Docker 以实现管理功能,在…
容器网络 在前面的博客中已经详细讲解了几种网络方案: none, host, bridge,user-defined.但是他们只是解决了单个主机间的容器的通信问题,并不能实现多个主机容器之间的通信.本篇博客将详细介绍如何实现该功能. 跨主机网络方案包括两大类: docker原生的:overlay和macvlan 第三方方案:flannel.weave和calico 本篇博客将详细讲解overlay以及weave两种方案. overlay Docerk overlay 网络需要一个 key-val…
承接上文 本文基于上篇文章,详细的场景说明与分析在前篇随笔中业已记录,有兴趣可以移步 Docker跨服务器通信Overlay解决方案(上) Consul单实例 本文主旨 本文为Docker使用Consul集群实现Overlay网络,解决Docker跨服务器内网通信问题. 整体架构为:Nginx + 3 x Conul Consul集群搭建 环境说明 服务器OS 主机IP Docker版本 网卡名 主机名 Ubuntu Server 18.04 LTS 192.168.87.133 18.09.6…
容器网络 在前面的博客中已经详细讲解了几种网络方案: none, host, bridge,user-defined.但是他们只是解决了单个主机间的容器的通信问题,并不能实现多个主机容器之间的通信.本篇博客将详细介绍如何实现该功能. 跨主机网络方案包括两大类: docker原生的:overlay和macvlan 第三方方案:flannel.weave和calico 本篇博客将详细讲解overlay以及weave两种方案. overlay Docerk overlay 网络需要一个 key-val…
本文探讨Docker多主机网络的性能. 在过去的博文里,我测试过 Docker的网络 . MySQL服务器团队 提供了他们自己的结果,和我的观察是一致的. 本文里一系列的测试,想更多关注使用多主机的Docker网络.因为当我们搭建高可用(HA)环境(比如,使用Percona XtraDB Cluster)时,就会期望实例运行在不同的主机上. 本文测试的另一个原因是Docker最近发布了1.12版本,支持Swarm Mode.Swarm Mode本身很有意思--在这个版本里,Docker决定在编排…
继上篇文章:[Kubernetes]浅谈容器网络,自己给自己挖的坑,这篇文章来谈谈容器跨主机网络. 要理解容器"跨主通信"的原理,就要来谈谈 Flannel 这个项目. Flannel 项目是 CoreOS 公司主推的容器网络方案.提供容器网络功能的,分别是: VXLAN , host-gw , UDP . 这三种不同的实现,代表了三种容器跨主机网络的主流实现方法.这里主要讲 VXLAN 和 UDP 模式. 先从 UDP 模式讲起. 假设,我有两台宿主机: 宿主机 Node 1 上有一…
一.Open vSwitch    Open vSwitch(以下简称为OVS),英文全称:OpenVirtual Switch,顾名思义,Open vSwitch就是开放虚拟交换.我们可以把他理解成一种标准,它旨在通过编程扩展,使庞大的网络自动化(配置.管理.维护),同时还支持标准的管理接口和协议.   也可以把OVS理解成开源虚拟交换机,可以运行在各类虚拟化平台(如KVM,Xen)上的虚拟机交换机.在虚拟化平台上,OVS 可以为动态变化的端点提供 2 层交换功能,很好的控制虚拟网络中的访问策…
上篇文章介绍了如何使用docker部署Ceph分布式存储集群,本篇在此基础之上,介绍如何基于Ceph分布式存储集群实现docker跨主机共享数据卷. 1.环境准备 在原来的环境基础之上,新增一台centos7虚拟机,用来做Ceph的客户端,如下: hostname ip 备注 node1 192.168.56.111 ceph.rbd客户端 1.1 在111上安装docker(略): 1.2 在111上安装ceph.rbd客户端: 首先,在111上添加ceph源 vim /etc/yum.rep…
一.Docker主机间容器通信的解决方案 Docker网络驱动 Overlay: 基于VXLAN封装实现Docker原生Overlay网络 Macvlan: Docker主机网卡接口逻辑上分为多个子接口,每个子接口标识一个VLAN.容器接口直接连接Docker主机 网卡接口: 通过路由策略转发到另一台Docker主机 第三方网络项目       隧道方案 -- Flannel: 支持UDP和VLAN封装传输方式 -- Weave: 支持UDP(sleeve模式)和 VXLAN(优先fastdb模…
flannel是由CoreOS研究的一种覆盖网络(overlay network)网络工具,目的是帮助每一个host主机有一个完整的子网: 功能是:让集群中不同节点的主机创建的容器都有一个唯一的虚拟IP 工作原理:将TCP数据包装在另一种网络包里进行路由转发和通信,目前已经支持UDP,Vxlan,AWS,APC和GRE等路由转发的模式.默认节点间通过UDP进行转发 1.安装配置etcd etcd功能:与consul的功能差不多,维护主机间的路由表,flannel的配置信息全部存放在etcd里面,…
除了ovrlay,docker还开发了另一个支持跨主机容器的driver:macvlan macvlan本身是linu kernel模块,其功能是允许在同一物理网卡上配置多了MAC地址,即:多个interface,每个interface可以配置自己的ip.macvlan本身是一种网卡虚拟化技术,Docker用macvlan实现容器网络就不奇怪了 macvlan最大的优点是性能极好,相比其他方案,macvlan不需要创建Linux bridge,而是直接通过以太interface连接到物理网络.…
之前学习了单个host上的网络,我们知道单个host上的网络有:none,host,bridge和joined,他们解决了单个host上面的容器通信的问题:接下来我们讨论跨主机间容器通信的方案 跨主机的网络方案包括: 1.docker原生的overlay和macvlan 2.第三方方案:常用的包括flannel,weave,calico docker 网络是一种非常活跃的技术领域,不断有新方案开发出来: 这么多的方案是通过:libnetwork以及CNM与docker集成在一起的 libnetw…
Weave是weaveworks开发的容器网络解决方案.weave创建的虚拟网络可以将部署在多个主机上的容器连接起来.对于容器来说,weave就像一个巨大的网络交换机,容器可以直接通信,无需NAT和端口映射.除此之外,weave的DNS模块是容器可以通过hostname访问 weave不依赖分布式数据库(例如:consul和etcd)交换网络信息,每个主机上只需要运行weave组件就能建立起跨主机容器网络,weave网络能够穿透防火墙并运行在部分连接的网络上,weave支持加密网络接连,用户可以…
flannel是CoreOS开发的容器网络解决方案,flannel为每一个host分配一个subnet,容器从这些subnet中分配IP,这些IP可以在host之间路由,容器无需NAT和port mapping就可以跨主机通信. 每个subnet都是一个更大的IP池中划分的,flannel会在每个主机上运行一个叫flanned的agent,其职责就是从池子中分配subnet.为了在个主机之间共享,flannel用etcd(与consul类似的key-value分布式还素据库)存放网络状态,已分配…