场景:同一台宿主机的docker容器之间网络是联通的,但是不同宿主机之间的docker容器之间不能直接通信。在使用docker容器为不同宿主机部署分部署服务的时候,必须要实现不同宿主机的docker容器之间的网络互通,保证服务调用端能够直接访问服务。
软件版本:
centos:7.1
docker版本:1.11.1
openvswitch :2.3.0
测试虚拟机:
server1 : 172.16.230.105
server2 : 172.16.230.109
安装openvswitch
分别在server1和server2上安装openvswitch 。 openvswtich不能直接安装,需要在本地重新打包后安装。安装过程参考如下:
yum -y install wget openssl-devel kernel-devel yum groupinstall "Development Tools" cd ~ wget http://openvswitch.org/releases/openvswitch-2.3.0.tar.gz tar -xvf openvswitch-2.3.0.tar.gz mkdir -p ~/rpmbuild/SOURCES sed 's/openvswitch-kmod, //g' openvswitch-2.3.0/rhel/openvswitch.spec > openvswitch-2.3.0/rhel/openvswitch_no_kmod.spec cp openvswitch-2.3.0.tar.gz rpmbuild/SOURCES/ rpmbuild -bb --without check ~/openvswitch-2.3.0/rhel/openvswitch_no_kmod.spec yum localinstall ~/rpmbuild/RPMS/x86_64/openvswitch-2.3.0-1.x86_64.rpm mkdir /etc/openvswitch setenforce 0 systemctl start openvswitch.service systemctl status openvswitch.service -l systemctl enable openvswitch.service
在server配置ovs bridge 和 路由
在配置bridge之前需要首先规划好docker ip地址的分配,保证docker容器的ip地址够用。 此安装过程中docker地址分配方式为:
server1 docker : 172.17.1.0 / 24 , server2 docker : 172.17.2.0 /24 ,在server1和server2中各自可以同时运行253个docker实例。
server1 和server2中docker容器ip地址掩码为255.255.255.0 , 因此,server1和server2的ip地址属于不同的网段,他们之间如果要通信,需要配置gateway 。
server1配置
修改/proc/sys/net/ipv4/ip_forward的值为1,运行ip转发。虽然现在修改了此值,但是后边启动服务的时候,ip_forward的值又成了0 或着 这个值不允许通过vim命令直接修改, 可以通过sftp工具,直接替换该文件。
创建网桥kbr0,并删除docker0网桥。
ovs-vsctl add-br obr0 ovs-vsctl add-port obr0 gre0 -- set Interface gre0 type=gre options:remote_ip=172.16.230.105 brctl addbr kbr0 brctl addif kbr0 obr0 ip link set dev docker0 down ip link del dev docker0
配置kbr0网卡信息:vim /etc/sysconfig/network-scripts/ifcfg-kbr0
DEVICE=kbr0 ONBOOT=yes BOOTPROTO=static IPADDR=172.17.1.1 NETMASK=255.255.255.0 GATEWAY=172.17.1.0 USERCTL=no TYPE=Bridge IPV6INIT=no
配置路由信息: /etc/sysconfig/network-scripts/route-eth0 , 用于转发到其它宿主机上docker容器,其中eth0为真实的网卡设备名称,需要根据虚拟机网卡配置。
172.17.2.0/24 via 172.16.230.109 dev eth0
重启网络:systemctl restart network.service , 如果重启失败可以通过 cat /var/log/messages | grep network 查看错误日志。
server2配置
server2和server1的配置步骤相同,不同的配置为:
ovs-vsctl add-port obr0 gre0 -- set Interface gre0 type=gre options:remote_ip=172.16.230.109
/etc/sysconfig/network-scripts/ifcfg-kbr0 中 IPADDR=172.17.2.1 GATEWAY=172.17.2.0
/etc/sysconfig/network-scripts/route-eth0 中 172.17.1.0/24 via 172.16.230.105 dev eth0
设置docker容器网桥
直接修改/etc/systemd/system/docker.service ,添加参数 -b kbr0 , 重启docker服务。
ExecStart=/usr/bin/docke daemon --registry-mirror=https://u2ljumtr.mirrortaliyuncs.com -H fd:// -b kbr0
启动一个docker容器之后,查看ip地址是否在kbr0的ip地址范围内。
配置完成之后可以看到已经存在kbr0网桥
可能出现问题:
1. Bringing up interface kbr0: Error: Connection activation failed: Connection 'Bridge kbr0' is not available on the device kbr0 at this time
解决: 重启服务器
2. /etc/sysconfig/network-scripts/ifcfg-kbr0中必须带着DEVICE=kbr0
3. 不同宿主机的docker容器之间执行ping命令时 , 需要关闭防火墙
4. 网桥查看命令 brctl show ,需要安装yum install bridge-utils
参考地址:
http://ylw6006.blog.51cto.com/470441/1606239/
http://www.bubuko.com/infodetail-1006745.html
weave跨主机互连:http://blog.csdn.net/wangtaoking1/article/details/45244525
相关推荐
- **CPU负载影响**:宿主机的高负载可能会影响在同一主机上运行的其他容器,但通常不会导致线性关系,因为CFS会尽量平衡资源分配。 - **CPU亲和性**:通过CPU Affinity可以指定进程在哪些CPU核心上运行,有助于...
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
wrf转mp4播放器1.1.1
内容概要:本文档详细介绍了如何在Simulink中设计一个满足特定规格的音频带ADC(模数转换器)。首先选择了三阶单环多位量化Σ-Δ调制器作为设计方案,因为这种结构能在音频带宽内提供高噪声整形效果,并且多位量化可以降低量化噪声。接着,文档展示了具体的Simulink建模步骤,包括创建模型、添加各个组件如积分器、量化器、DAC反馈以及连接它们。此外,还进行了参数设计与计算,特别是过采样率和信噪比的估算,并引入了动态元件匹配技术来减少DAC的非线性误差。性能验证部分则通过理想和非理想的仿真实验评估了系统的稳定性和各项指标,最终证明所设计的ADC能够达到预期的技术标准。 适用人群:电子工程专业学生、从事数据转换器研究或开发的技术人员。 使用场景及目标:适用于希望深入了解Σ-Δ调制器的工作原理及其在音频带ADC应用中的具体实现方法的人群。目标是掌握如何利用MATLAB/Simulink工具进行复杂电路的设计与仿真。 其他说明:文中提供了详细的Matlab代码片段用于指导读者完成整个设计流程,同时附带了一些辅助函数帮助分析仿真结果。
国网台区终端最新规范
《基于YOLOv8的智慧农业水肥一体化控制系统》(包含源码、可视化界面、完整数据集、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计
GSDML-V2.33-LEUZE-AMS3048i-20170622.xml
微信小程序项目课程设计,包含LW+ppt
微信小程序项目课程设计,包含LW+ppt
终端运行进度条脚本
幼儿园预防肺结核教育培训课件资料
python,python相关资源
《基于YOLOv8的智慧校园电动车充电桩状态监测系统》(包含源码、可视化界面、完整数据集、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计
deepseek 临床之理性软肋.pdf
SM2258XT量产工具(包含16种程序),固态硬盘量产工具使用
RecyclerView.zip
水务大脑让水务运营更智能(23页)
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
大众捷达轿车前轮制动器设计
《基于YOLOv8的智能工厂压缩空气泄漏检测系统》(包含源码、可视化界面、完整数据集、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计