Docker多主机网络 OpenvSwitch
一、Open vSwitch
Open vSwitch(以下简称为OVS),英文全称:OpenVirtual Switch,顾名思义,Open vSwitch就是开放虚拟交换。我们可以把他理解成一种标准,它旨在通过编程扩展,使庞大的网络自动化(配置、管理、维护),同时还支持标准的管理接口和协议。
也可以把OVS理解成开源虚拟交换机,可以运行在各类虚拟化平台(如KVM,Xen)上的虚拟机交换机。在虚拟化平台上,OVS 可以为动态变化的端点提供 2 层交换功能,很好的控制虚拟网络中的访问策略、网络隔离、流量监控等等。
二、利用Open vSwitch 构建Docker多主机网络
2.1 规划docker网段
默认的docker0的网段是 172.17.0.0/16,我们需要为每一个docker主机的docker0网段重新划分一个新网段
| 节点 | IP | docker0网段 |
| openvswitch01 | 172.16.200.218 | 172.17.1.0/24 |
| openvswitch02 | 172.16.200.223 | 172.16.2.0/24 |
2.2 安装OVS
两台机器上都要安装
wget http://downloads.naulinux.ru/pub/NauLinux/7x/x86_64/Extras/RPMS/Projects/OpenFlow/openvswitch-2.5.0-2.el7.x86_64.rpm yum -y localinstall openvswitch-2.5.0-2.el7.x86_64.rpm # 启动
systemctl start openvswitch # 查看状态
systemctl status openvswitch # 开机自启
systemctl enable openvswitch
2.3 修改docker0默认网段
vim /lib/systemd/system/docker.service #节点1
ExecStart=/usr/bin/dockerd --bip=172.17.1.1/24 # 节点2
ExecStart=/usr/bin/dockerd --bip=172.17.2.1/24 systemctl daemon-reload systemctl restart docker

2.4 创建网桥并激活
两边都操作
ovs-vsctl add-br br0 ip link set dev br0 up
2.5 建立gre隧道
# 节点1
ovs-vsctl add-port br0 gre0 -- set Interface gre0 type=gre options:remote_ip=172.16.200.223 # 如果有多个节点,需要添加多条greX(gre0,gre1,...) ## 将docker0加入br0
brctl addif docker0 br0 # 节点2
ovs-vsctl add-port br0 gre0 -- set Interface gre0 type=gre options:remote_ip=172.16.200.218 brctl addif docker0 br0
查看建立的隧道

查看docker0网段


2.6 添加静态路由
在两个节点上新建docker容器,并验证互通性


可见,两个节点中的IP地址分别为 172.17.1.0/24 网段和 172.17.2.0/24网段,目前他们还不能相互通信

添加静态路由
# 两个节点 ip route add 172.17.0.0/16 dev docker0
验证:


可以互通
注:以上配置重启就部分会消失,可以设置脚本启动加载
# 启动br0网桥
ip link set dev br0 up # 将docker0添加到br0中
brctl addif docker0 br0 # 添加静态路由
ip route add 172.17.0.0/16 dev docker0 # 添加到/etc/rc.local
Docker多主机网络 OpenvSwitch的更多相关文章
- docker多主机网络方案
本文探讨Docker多主机网络的性能. 在过去的博文里,我测试过 Docker的网络 . MySQL服务器团队 提供了他们自己的结果,和我的观察是一致的. 本文里一系列的测试,想更多关注使用多主机的D ...
- Docker跨主机网络——overlay
前言 在Docker网络--单host网络一文中,我为大家总结了Docker的单机网络相关知识和操作,单机网络比较容易.本文我为大家总结Docker跨主机通信相关知识.同样本文大部分内容以CloudM ...
- Docker 单主机网络
PS:欢迎大家关注我的公众号:aCloudDeveloper,专注技术分享,努力打造干货分享平台,二维码在文末可以扫,谢谢大家. 当容器逐步向容器集群,容器云技术演进的时候,一个不得不面对的问题就是各 ...
- Docker 多主机网络总结(非常全)
PS:文章首发公众号,欢迎大家关注我的公众号:aCloudDeveloper,专注技术分享,努力打造干货分享平台,二维码在文末可以扫,谢谢大家. 上篇文章介绍了容器网络的单主机网络,本文将进一步介绍多 ...
- Docker 跨主机网络方案分析
PS:文章首发公众号,欢迎大家关注我的公众号:aCloudDeveloper,专注技术分享,努力打造干货分享平台,二维码在文末可以扫,谢谢大家. 上篇文章介绍了容器网络的单主机网络,本文将进一步介绍多 ...
- Docker多主机网络
网络术语概念 二层交换技术:工作在OSI七层网络模型的第二层,通过MAC地址进行帧转发 三层交换技术:也称为IP交换技术,工作在OSI七层网络模型的第三层,通过IP地址进行包转发.它解决了局域网中网段 ...
- Docker 跨主机网络
Docker提供两种原生的跨主机网络: Overlay 和 Macvlan libnetwork & CNM libnetwork 是 docker 容器网络库,最核心的内容是其定义的 C ...
- docker单主机网络
当你安装Docker时,它会自动创建三个网络.你可以使用以下docker network ls命令列出这些网络: [root@localhost ~]# docker network ls NETWO ...
- Docker 跨主机网络 overlay(十六)
目录 一.跨主机网络概述 二.准备 overlay 环境 1.环境描述 2.创建 consul 3.修改 docker 配置文件 4.准备就绪 三.创建 overlay 网络 1.在 host1 中创 ...
随机推荐
- 调试存储过程:ORA-0131 Insufficient privileges
http://www.cnblogs.com/empty01/p/5568250.html
- C++ 函数 引用
一.引用的概念 引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样.引用的声明方法: 类型标识符 &引用名 = 目标变量名: 为一个变量起一个别名.假如有一个变量a,想给 ...
- 互评Beta版本-SkyHunter
基于NABCD评论作品,及改进建议 1.根据(不限于)NABCD评论作品的选题; N(Need,需求):飞机大战题材的游戏对80,90后的人来说算是童年的记忆,可以在闲暇之余打开电脑玩一会儿.但是 ...
- (第七周)评论alpha发布
本人所在组:奋斗吧兄弟 按课上展示组的顺序对其他组进行点评: 1. 新蜂 项目:游戏俄罗斯方块 界面完善,已经实现了游戏的基本功能.可以对图形进行变换形状,进行位置移动,可以加快下落的速度,并对一整 ...
- SqlServer中的dbo是什么意思
出处:http://andylin02.iteye.com/blog/486296 SqlServer中的dbo是什么意思? DBO是每个数据库的默认用户,具有所有者权限,即DbOwner 通过用DB ...
- 个人作业2——APP案例分析
产品:网易LOFTER(乐乎) 网易LOFTER是网易旗下图片社交APP,产品覆盖web及移动各端. 网易LOFTER社区内汇聚了多领域的品质生活家与生活达人,包含女神.明星.穿搭.文具.旅行.美 ...
- 对it行业的一些看法
随着世界产业转移的加速,欧美.日本等发达国家将大量的软件开发业务转移到中国.印度等国家,随之而来的是这些国家对it人才的急切需求! 对比国内的大学生就业形势而言,无疑是it相关专业的毕业生就业压力较少 ...
- v-html的应用
var app=new Vue({ el: '#app', data:{ link:'<a href="#">这是一个连接</a>' },}) <di ...
- centos升级内核(rpm方式)
#rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org 如果失败的话多试几次,感觉网络不是很好#rpm -ivh http://www. ...
- zabbix自定义监控阿里云RDS服务
zabbix自定义监控rds zabbix通过阿里云api 自动发现.监控阿里云RDS-Mysql数据库 注意事项 脚本会收集RDS别名, 不要默认别名 不要使用中文别名(zabbix不识别) ...