热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

配置Docker多台宿主机间的容器互联

如果要在生产和测试环境大规模采用docker技术,首先就需要解决不同物理机建的docker容器互联问题。本文介绍在centos7环境下采用openvswitch实现不同物理服务器上的do

如果要在生产和测试环境大规模采用docker技术,首先就需要解决不同物理机建的docker容器互联问题。本文介绍在centos7环境下采用open vswitch实现不同物理服务器上的docker容器互联的配置。

 

环境介绍:

Server1: 192.168.115.5/24  

Server2: 192.168.115.6/24 

 

一:在Server1Server2上分别用rpm方式安装docker并启动服务

# yum list *docker*
# yum -y install docker
# service docker start
Redirecting to /bin/systemctl start  docker.service

wKiom1S-I_Hh2bgsAAGXa1qq8Rw744.jpg

Server1Server2上分别安装open vswitch

# yum -y install wget openssl-devel kernel-devel# yum groupinstall "Development Tools"# adduser ovswitch# su - ovswitch$ wget http://openvswitch.org/releases/openvswitch-2.3.0.tar.gz$ tar -zxvpf 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 $ exit # yum localinstall /home/ovswitch/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

wKioL1S-JPCgVO1JAA_49emGvvo761.jpg

三:Server1Server2上建立OVS Bridge并配置路由

Server1: docker容器内网ip网段172.17.1.0/24

# cat /proc/sys/net/ipv4/ip_forward 1# ovs-vsctl add-br obr0# ovs-vsctl add-port obr0 gre0 -- set Interface gre0 type=gre options:remote_ip=192.168.115.5  # brctl addbr kbr0 # brctl addif kbr0 obr0 # ip link set dev docker0 down # ip link del dev docker0 # vi /etc/sysconfig/network-scripts/ifcfg-kbr0OnBOOT=yesBOOTPROTO=staticIPADDR=172.17.1.1NETMASK=255.255.255.0GATEWAY=172.17.1.0USERCTL=noTYPE=BridgeIPV6INIT=no # cat /etc/sysconfig/network-scripts/route-ens32 172.17.2.0/24 via 192.168.115.6 dev ens32# systemctl  restart network.service

wKiom1S-JGLztcVOAAkVfvfiakg521.jpgwKioL1S-JUKhpM98AAMPTzyeXDA526.jpg

Server2: docker容器内网ip网段172.17.2.0/24

# cat /proc/sys/net/ipv4/ip_forward 1# ovs-vsctl add-br obr0# ovs-vsctl add-port obr0 gre0 -- set Interface gre0 type=gre options:remote_ip=192.168.115.6  # brctl addbr kbr0 # brctl addif kbr0 obr0 # ip link set dev docker0 down # ip link del dev docker0 # vi /etc/sysconfig/network-scripts/ifcfg-kbr0OnBOOT=yesBOOTPROTO=staticIPADDR=172.17.2.1NETMASK=255.255.255.0GATEWAY=172.17.2.0USERCTL=noTYPE=BridgeIPV6INIT=no # cat /etc/sysconfig/network-scripts/route-ens32 172.17.1.0/24 via 192.168.115.5 dev ens32 # systemctl  restart network.service

wKiom1S-JJ3DpEGhAAk8rJcGxhs651.jpgwKioL1S-JYSi2UT_AAM9JNqom84252.jpg

:启动容器测试

Server1和Server2上修改docker启动的虚拟网卡绑定为kbr0,重启docker进程

wKiom1S-JMvzlMcuAAGyypVRvSs783.jpg

Server1:

# docker run -idt --name test1 registry.fjhb.cn/centos6 /bin/bash 

wKioL1S-JbCSshcMAAYrxbYbJzU457.jpg

Server2:

# docker run -idt --name test2 registry.fjhb.cn/centos6 /bin/bash

wKiom1S-JRujzHceAAffwv6cFsU079.jpg


Server1:

wKioL1S-JgKi_26TAALMRW9LYKQ999.jpg

本文出自 “斩月” 博客,谢绝转载!


推荐阅读
  • 在CentOS 7上部署WebRTC网关Janus
    在CentOS 7上部署WebRTC网关Janus ... [详细]
  • 本文详细介绍了在Linux操作系统上安装和部署MySQL数据库的过程,包括必要的环境准备、安装步骤、配置优化及安全设置等内容。 ... [详细]
  • 调试利器SSH隧道
    在开发微信公众号或小程序的时候,由于微信平台规则的限制,部分接口需要通过线上域名才能正常访问。但我们一般都会在本地开发,因为这能快速的看到 ... [详细]
  • 本文详细介绍了如何搭建一个高可用的MongoDB集群,包括环境准备、用户配置、目录创建、MongoDB安装、配置文件设置、集群组件部署等步骤。特别关注分片、读写分离及负载均衡的实现。 ... [详细]
  • 本文详细介绍了如何在ARM架构的目标设备上部署SSH服务端,包括必要的软件包下载、交叉编译过程以及最终的服务配置与测试。适合嵌入式开发人员和系统集成工程师参考。 ... [详细]
  • 在CentOS上部署和配置FreeSWITCH
    在CentOS系统上部署和配置FreeSWITCH的过程涉及多个步骤。本文详细介绍了从源代码安装FreeSWITCH的方法,包括必要的依赖项安装、编译和配置过程。此外,还提供了常见的配置选项和故障排除技巧,帮助用户顺利完成部署并确保系统的稳定运行。 ... [详细]
  • 本文详细介绍了如何在Oracle VM VirtualBox中实现主机与虚拟机之间的数据交换,包括安装Guest Additions增强功能,以及如何利用这些功能进行文件传输、屏幕调整等操作。 ... [详细]
  • 本文介绍了SIP(Session Initiation Protocol,会话发起协议)的基本概念、功能、消息格式及其实现机制。SIP是一种在IP网络上用于建立、管理和终止多媒体通信会话的应用层协议。 ... [详细]
  • CentOS下ProFTPD的安装与配置指南
    本文详细介绍在CentOS操作系统上安装和配置ProFTPD服务的方法,包括基本配置、安全设置及高级功能的启用。 ... [详细]
  • Web动态服务器Python基本实现
    Web动态服务器Python基本实现 ... [详细]
  • 本文介绍了如何在两个Oracle数据库(假设为数据库A和数据库B)之间设置DBLink,以便能够从数据库A中直接访问和操作数据库B中的数据。文章详细描述了创建DBLink前的必要准备步骤以及具体的创建方法。 ... [详细]
  • 为了在Hadoop 2.7.2中实现对Snappy压缩和解压功能的原生支持,本文详细介绍了如何重新编译Hadoop源代码,并优化其Native编译过程。通过这一优化,可以显著提升数据处理的效率和性能。此外,还探讨了编译过程中可能遇到的问题及其解决方案,为用户提供了一套完整的操作指南。 ... [详细]
  • 小王详解:内部网络中最易理解的NAT原理剖析,挑战你的认知极限
    小王详解:内部网络中最易理解的NAT原理剖析,挑战你的认知极限 ... [详细]
  • 在腾讯云服务器上部署Nginx的详细指南中,首先需要确保安装必要的依赖包。如果这些依赖包已安装,可直接跳过此步骤。具体命令包括 `yum -y install gcc gcc-c++ wget net-tools pcre-devel zlib-devel`。接下来,本文将详细介绍如何下载、编译和配置Nginx,以确保其在腾讯云服务器上顺利运行。此外,还将提供一些优化建议,帮助用户提升Nginx的性能和安全性。 ... [详细]
  • 在Linux环境下编译安装Heartbeat时,常遇到依赖库缺失的问题。为确保顺利安装,建议预先通过yum安装必要的开发库,如glib2-devel、libtool-ltdl-devel、net-snmp-devel、bzip2-devel和ncurses-devel等。这些库是编译过程中不可或缺的组件,能够有效避免编译错误,确保Heartbeat的稳定运行。 ... [详细]
author-avatar
再度重相逢jc_866
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有