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

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介:

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

 

环境介绍:

Server1: 192.168.115.5/24  

Server2: 192.168.115.6/24 

 

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

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

wKiom1S-I_Hh2bgsAAGXa1qq8Rw744.jpg

Server1Server2上分别安装open vswitch

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 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-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
  
# 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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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-kbr0
ONBOOT=yes
BOOTPROTO=static
IPADDR=172.17.2.1
NETMASK=255.255.255.0
GATEWAY=172.17.2.0
USERCTL=no
TYPE=Bridge
IPV6INIT=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

本文转自斩月博客51CTO博客,原文链接http://blog.51cto.com/ylw6006/1606239如需转载请自行联系原作者


ylw6006

相关文章
|
4天前
|
Linux Docker 容器
更改docker容器中的时间而不影响宿主机
更改docker容器中的时间而不影响宿主机
|
6天前
|
消息中间件 网络协议 Linux
用docker方式 安装rabbitmq 并配置MQTT
用docker方式 安装rabbitmq 并配置MQTT
15 0
|
6天前
|
存储 安全 数据中心
【Docker 专栏】Docker 容器与宿主机的资源隔离机制
【5月更文挑战第8天】Docker容器利用Namespace和Cgroups实现资源隔离,保证CPU、内存、网络和存储的独立,提升资源利用率和系统安全性。资源隔离有助于简化应用部署与管理,但也带来资源竞争、监控管理及安全挑战。理解并善用资源隔离机制能实现更高效、安全的容器运行。随着技术进步,Docker容器资源隔离将持续优化。
【Docker 专栏】Docker 容器与宿主机的资源隔离机制
|
6天前
|
运维 KVM 虚拟化
Docker详解(十五)——Docker静态IP地址配置
Docker详解(十五)——Docker静态IP地址配置
19 3
|
6天前
|
运维 Linux Docker
Docker详解(十三)——Docker容器的内存和磁盘I/O限制配置
Docker详解(十三)——Docker容器的内存和磁盘I/O限制配置
19 1
|
6天前
|
存储 运维 Linux
Docker详解(十)——Docker容器CPU资源限额配置
Docker详解(十)——Docker容器CPU资源限额配置
24 3
|
6天前
|
XML Java 数据格式
如何配置IoC容器?
【4月更文挑战第30天】如何配置IoC容器?
20 0
|
6天前
|
Linux 网络安全 Docker
【Linux】-docker配置容器并打包成镜像
【Linux】-docker配置容器并打包成镜像
|
6天前
|
存储 安全 数据安全/隐私保护
【Docker 专栏】Docker 容器化应用的备份与恢复策略
【5月更文挑战第9天】本文探讨了Docker容器化应用的备份与恢复策略,强调了备份在数据保护、业务连续性和合规要求中的关键作用。内容涵盖备份的重要性、内容及方法,推荐了Docker自带工具和第三方工具如Portainer、Velero。制定了备份策略,包括频率、存储位置和保留期限,并详细阐述了恢复流程及注意事项。文章还提及案例分析和未来发展趋势,强调了随着技术发展,备份与恢复策略将持续演进,以应对数字化时代的挑战。
【Docker 专栏】Docker 容器化应用的备份与恢复策略
|
1天前
|
Prometheus 监控 Cloud Native
构建高效稳定的Docker容器监控体系
【5月更文挑战第20天】 在微服务架构日益普及的今天,Docker作为其重要的实现技术之一,承载着大量应用的运行。然而,随之而来的是对于容器健康状态、资源使用情况以及性能指标的监控需求急剧增加。本文旨在探讨构建一个高效且稳定的Docker容器监控体系,不仅涵盖了监控工具的选择与配置,还详细阐述了监控数据的分析与处理流程。通过精心设计的监控策略和实时响应机制,我们能够确保系统的稳定性,并及时发现及处理潜在的问题。