8- 跨主机连接
8.1- 使用网桥实现跨主机连接
8.1.1- 网桥原理
8.1.2- 实战
环境:
Host1 : br0 10.0.0.2 (ubuntu18)
Host2 : br0 10.0.0.3 (ubuntu18)
1. apt-get install bridge-utils -y
2. vi /etc/network/interfaces
auto br0
iface br0 inet static
address 10.0.0.2
netmask 255.255.255.0
gateway 10.0.0.1
bridge_ports eth0
3. Host1 修改/etc/default/docker
-b=br0
--fixed-cidr=10.0.0.64/26
4. Host2 修改/etc/default/docker
-b=br0
--fixed-cidr=10.0.0.128/26
8.1.3- 总结
有点:
配置简单,不依赖第三方软件。
缺点:
- 与主机在同一网段,需要小心划分IP地址范围。
- 需要有网段控制权,在生产环境中不易实现。
- 不易管理
- 兼容性不佳
【PS】导致生产环境中一般不使用网桥模式
8.2- Open vSwitch模式
8.2.1- ovs介绍
_ _ _ Open vSwitch 是一个高质量、多层虚拟交换机,使用开源Apache2.0 许可协议,由Nicira Networks 开发,主要实现代码为可移植的C代码。目的是让大规模网络自动化可以通过编程 扩展,同时仍然支持标准的管理接口和协议(例如 NetFlow, sFlow, SPAN, RSPAN,CLI,LACP,802.1ag)
8.2.2- ovs原理
8.2.3- gre隧道
_ _ _ GRE: 通用路由协议封装。
隧道技术(Tunneling) 是一种通过互联网络的技术设施在网络之间传递数据的方式。使用隧道传递的数据(或负载)可以是不同的数据帧或者包。隧道协议将其他协议的数据帧或包重新封装然后通过隧道发送。新的帧头提供路由信息,以便通过互联网传递被封装的负载数据。
简单总结就是:点对点的再封装,实现不同网段之间的通信。
8.2.4- 实战
环境:
Host1: 192.168.59.103 (ubuntu18)
Host2: 192.168.59.104 (ubuntu18)
步骤:
- 安装ovs:
apt-get install openvswitch-switch -y - 安装网桥管理工具
apt-get install bridge-utlis -y - 建立OVS网桥
- 添加GRE连接
- 配置docker容器虚拟网桥
- 为虚拟网桥添加OVS接口
- 添加不同docker容器网段路由
例如:
HOST1
8.3- weave模式
8.3.1- weave介绍
_ _ _ 语意: 编辑
建立一个虚拟的网络,用于将运行在不同主机的Docker容器连接起来。
8.3.2- 实战
步骤:
- 安装weave
- 启动weave
weave launch - 连接不同主机
- 通过weave启动容器
例如:
【ps】:使用weave时实际上会运行一个weave的容器
另外一台宿主机:
weave lauche ip(第一台宿主机的ip)
运行容器:
weave run ip -it --name images
weave run 192.168.1.2/24 -it ubuntu /bin/bash