CN113852573A - 一种容器跨宿主机的通信方法、装置、设备及介质 - Google Patents
一种容器跨宿主机的通信方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN113852573A CN113852573A CN202111211493.XA CN202111211493A CN113852573A CN 113852573 A CN113852573 A CN 113852573A CN 202111211493 A CN202111211493 A CN 202111211493A CN 113852573 A CN113852573 A CN 113852573A
- Authority
- CN
- China
- Prior art keywords
- host
- cluster
- creating
- virtual ipv4
- sweep
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
- 238000004891 communication Methods 0.000 title claims abstract description 60
- 238000000034 method Methods 0.000 title claims abstract description 39
- 238000004590 computer program Methods 0.000 claims description 10
- 241000322338 Loeseliastrum Species 0.000 description 6
- 238000013508 migration Methods 0.000 description 5
- 230000005012 migration Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 241000109539 Conchita Species 0.000 description 1
- 244000035744 Hura crepitans Species 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/60—Software-defined switches
- H04L49/602—Multilayer or multiprotocol switching, e.g. IP switching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/251—Translation of Internet protocol [IP] addresses between different IP versions
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种容器跨宿主机的通信方法、装置、设备及介质,包括:基于各宿主机的ipv6地址所绑定的网口分别创建各所述宿主机的虚拟ipv4地址;通过各所述宿主机中的主宿主机,并基于所述主宿主机的所述虚拟ipv4地址创建swarm集群;将各所述宿主机中的非主宿主机加入所述swarm集群;基于所述swarm集群,并基于第一虚拟ipv4网段创建overlay网络;在各所述宿主机中基于所述overlay网络创建docker容器,以便各所述docker容器通过所述overlay网络进行跨宿主机通信。能够在不引入第三方网络插件的情况下,实现ipv6网络环境下docker容器跨宿主机通信。
Description
技术领域
本申请涉及容器技术领域,特别涉及一种容器跨宿主机的通信方法、装置、设备及介质。
背景技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。随着ipv4地址枯竭,ipv6的快速发展,现在越来越多的企业和个人开始着手使用ipv6地址作为服务器运行的网络环境,而docker作为应用最广的应用容器引擎,在纯ipv6网络环境下的支持做的不够好,特别是容器之间需要进行跨宿主机通信的时候,而docker自身的swarm网络不支持ipv6。
目前,为了解决上述问题,常见的做法是引入第三方网络插件,如:calico,calico是支持ipv6的。但是这种方式存在很多弊端,比如:1、部署集成复杂,需要额外安装calico、etcd等服务组件,2、calico在纯ipv6网络环境下,容器跨宿主机通信的地址是ipv6的地址,ipv4的地址无法跨宿主机通信,3、运行在容器中的应用需要支持ipv6,而市面上很多主流的应用尚不支持ipv6环境运行,这对于应用的迁移是一项巨大的工作量。
发明内容
有鉴于此,本申请的目的在于提供一种容器跨宿主机的通信方法、装置、设备及介质,能够在不引入第三方网络插件的情况下,实现ipv6网络环境下docker容器跨宿主机通信。其具体方案如下:
第一方面,本申请公开了一种容器跨宿主机的通信方法,包括:
基于各宿主机的ipv6地址所绑定的网口分别创建各所述宿主机的虚拟ipv4地址;
通过各所述宿主机中的主宿主机,并基于所述主宿主机的所述虚拟ipv4地址创建swarm集群;
将各所述宿主机中的非主宿主机加入所述swarm集群;
基于所述swarm集群,并基于第一虚拟ipv4网段创建overlay网络;
在各所述宿主机中基于所述overlay网络创建docker容器,以便各所述docker容器通过所述overlay网络进行跨宿主机通信。
可选的,所述基于各宿主机的ipv6地址所绑定的网口分别创建各所述宿主机的虚拟ipv4地址,包括:
为各所述宿主机配置相同的第二虚拟ipv4网段;其中,所述第二虚拟ipv4网段为与所述第一虚拟ipv4网段不同的ipv4网段;
基于各宿主机的ipv6地址所绑定的网口分别在所述第二虚拟ipv4网段中创建各所述宿主机的虚拟ipv4地址;
其中,不同的所述宿主机的所述虚拟ipv4地址不同。
可选的,所述基于各宿主机的ipv6地址所绑定的网口分别创建各所述宿主机的虚拟ipv4地址之前,还包括:
向各所述宿主机发送网口获取指令,以获取各所述宿主机的ipv6地址所绑定的网口。
可选的,所述基于所述主宿主机的所述虚拟ipv4地址创建swarm集群之前,还包括:
在各所述宿主机中配置docker服务,并启动所述docker服务。
可选的,所述基于所述主宿主机的所述虚拟ipv4地址创建swarm集群,包括:
基于所述主宿主机的所述虚拟ipv4地址确定swarm集群的广播地址和监听地址;
基于所述广播地址和所述监听地址创建swarm集群。
可选的,所述基于所述swarm集群,并基于第一虚拟ipv4网段创建overlay网络,包括:
在所述各宿主机中的任一宿主机上基于所述swarm集群,并基于第一虚拟ipv4网段创建overlay网络。
可选的,所述基于所述主宿主机的所述虚拟ipv4地址创建swarm集群之后,还包括:
获取所述主宿主机生成的集群加入命令;
相应的,所述将各所述宿主机中的非主宿主机加入所述swarm集群,包括:
在各所述宿主机中的非主宿主机中执行所述集群加入命令,以将所述非主宿主机加入所述swarm集群。
第二方面,本申请公开了一种容器跨宿主机通信的装置,包括:
虚拟ipv4地址创建模块,用于基于各宿主机的ipv6地址所绑定的网口分别创建各所述宿主机的虚拟ipv4地址;
swarm集群创建模块,用于通过各所述宿主机中的主宿主机,并基于所述主宿主机的所述虚拟ipv4地址创建swarm集群;
swarm集群加入模块,用于将各所述宿主机中的非主宿主机加入所述swarm集群;
overlay网络创建模块,用于基于所述swarm集群,并基于第一虚拟ipv4网段创建overlay网络;
docker容器创建模块,用于在各所述宿主机中基于所述overlay网络创建docker容器,以便各所述docker容器通过所述overlay网络进行跨宿主机通信。
第三方面,本申请公开了一种电子设备,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现前述的容器跨宿主机的通信方法。
第四方面,本申请公开了一种计算机可读存储介质,用于保存计算机程序,所述计算机程序被处理器执行时实现前述的容器跨宿主机的通信方法。
可见,本申请先基于各宿主机的ipv6地址所绑定的网口分别创建各所述宿主机的虚拟ipv4地址,之后通过各所述宿主机中的主宿主机,并基于所述主宿主机的所述虚拟ipv4地址创建swarm集群,并将各所述宿主机中的非主宿主机加入所述swarm集群,然后基于所述swarm集群,并基于第一虚拟ipv4网段创建overlay网络,最后在各所述宿主机中基于所述overlay网络创建docker容器,以便各所述docker容器通过所述overlay网络进行跨宿主机通信。也即,本申请基于ipv6地址创建各宿主机的虚拟ipv4地址,并基于主宿主机的虚拟ipv4地址创建swarm集群,并基于虚拟ipv4网段创建overlay网络,基于该overlay网络创建docker容器,这样,docker容器运行在虚拟的ipv4网络环境中,宿主机对外服务仍然使用ipv6地址,但是容器之间使用虚拟ipv4网络即overlay网络通信,能够在不引入第三方网络插件的情况下,实现ipv6网络环境下docker容器跨宿主机通信。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种容器跨宿主机的通信流程图;
图2为本申请公开的一种具体的容器跨宿主机的通信方法流程图;
图3为本申请公开的一种容器跨宿主机的通信装置结构示意图;
图4为本申请公开的一种电子设备结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,现有技术通常是引入第三方网络插件,如:calico,calico是支持ipv6的。但是这种方式存在很多弊端,比如:1、部署集成复杂,需要额外安装calico、etcd等服务组件,2、calico在纯ipv6网络环境下,容器跨宿主机通信的地址是ipv6的地址,ipv4的地址无法跨宿主机通信,3、运行在容器中的应用需要支持ipv6,而市面上很多主流的应用尚不支持ipv6环境运行,这对于应用的迁移是一项巨大的工作量。为此,本申请提供了一种容器跨宿主机的通信方案,能够在不引入第三方网络插件的情况下,实现ipv6网络环境下docker容器跨宿主机通信。
参见图1所示,本申请实施例公开了一种容器跨宿主机的通信方法,包括:
步骤S11:基于各宿主机的ipv6地址所绑定的网口分别创建各所述宿主机的虚拟ipv4地址;
在具体的实施方式中,向各所述宿主机发送网口获取指令,以获取各所述宿主机的ipv6地址所绑定的网口;为各所述宿主机配置相同的第二虚拟ipv4网段;其中,所述第二虚拟ipv4网段为与所述第一虚拟ipv4网段不同的ipv4网段;基于各宿主机的ipv6地址所绑定的网口分别在所述第二虚拟ipv4网段中创建各所述宿主机的虚拟ipv4地址;其中,不同的所述宿主机的所述虚拟ipv4地址不同。
比如,本申请实施例可以通过ip a命令获取宿主机的ipv6地址所绑定的网口。当然,还有其他命令可以获取宿主机的ipv6地址所绑定的网口,在此不做限定。
其中,本申请中的宿主机均为纯ipv6网络环境的服务器,可以为云主机,虚拟机,物理服务器等,作为docker容器的宿主机。纯纯ipv6网络环境即网络里面只有ipv6网络没有ipv4网络的网络环境。
下面,以在两台宿主机形成的集群为例,利用linux命令创建虚拟ipv4地址:
为集群的各宿主机配置相同的第二虚拟ipv4网段,并在该第二虚拟ipv4网段中为各宿主机创建不同的虚拟ipv4地址,具体的:
在宿主机1中创建虚拟ipv4地址为11.11.11.11,采用命令如下:
ifconfig enp24s0f0:0 11.11.11.11up
在宿主机2中创建虚拟ipv4地址为11.11.11.12,采用命令如下:
ifconfig enp24s0f0:0 11.11.11.12up
在另一种具体的实施方式中,也可以采用命令:ip addr add 11.11.11.11/24devenp24s0f0;ip addr add 11.11.11.12/24dev enp24s0f0。
其中,enp24s0f0表示宿主机的ipv6地址所绑定的网口,可通过ip a命令获取。11.11.11.11为宿主机1的虚拟ipv4地址。11.11.11.12为宿主机2的虚拟ipv4地址。创建出的虚拟ipv4网络地址只对配置了相同虚拟网段的宿主机互通。对未配置相同虚拟ipv4网络地址的宿主机不可见。
进一步的,本申请实施例在各所述宿主机中配置docker服务,并启动所述docker服务。
也即,本申请实施例可以安装配置docker使其支持swarm网络,并启动docker服务,其中,关于docker的安装步骤参考官方手册即可,这里不再进行赘述阐述。
步骤S12:通过各所述宿主机中的主宿主机,并基于所述主宿主机的所述虚拟ipv4地址创建swarm集群。
在具体的实施方式中,基于所述主宿主机的所述虚拟ipv4地址确定swarm集群的广播地址和监听地址;基于所述广播地址和所述监听地址创建swarm集群。
其中,主宿主机为多台宿主机中用户指定的主机器。创建swarm集群的命令如下:
docker swarm init--advertise-addr 11.11.11.11--listen-addr11.11.11.11:2377
其中,在创建swarm集群的时候,advertise-addr(广播地址)采用当前机器用虚拟出来的虚拟ipv4地址,不能使用ipv6的地址。同样,listen-addr(监听地址)也基于虚拟ipv4地址。
步骤S13:将各所述宿主机中的非主宿主机加入所述swarm集群。
在具体的实施方式中,可以获取所述主宿主机生成的集群加入命令;相应的,所述将各所述宿主机中的非主宿主机加入所述swarm集群,包括:在各所述宿主机中的非主宿主机中执行所述集群加入命令,以将所述非主宿主机加入所述swarm集群。
具体的,集群加入命令为docker swarm join--token[token字符串][主宿主机虚拟ip]:2377,该命令会在上述步骤S12执行之后输出,只需将输出的该命令复制到,或者发送到待加入集群的其他宿主机上执行,其他宿主机即可加入swarm集群。
步骤S14:基于所述swarm集群,并基于第一虚拟ipv4网段创建overlay网络;
在具体的实施方式中,可以在所述各宿主机中的任一宿主机上基于所述swarm集群,并基于第一虚拟ipv4网段创建overlay网络。
例如:创建名叫mynet的overlay网络;
创建swarm集群之后,需要创建一个自定义的overlay网络,该网络是容器之间通信所使用的网络,在swarm集群中任一台主机上执行即可。命令如下:
docker network create--subnet 172.19.0.0/16--driver overlay--attachable mynet
其中,172.19.0.0/16为docker容器中所使用的虚拟局域网ipv4的网段。也即第一虚拟ipv4网段,只需保证该网段不和宿主机上面的第二虚拟ipv4网段相同导致冲突即可。
步骤S15:在各所述宿主机中基于所述overlay网络创建docker容器,以便各所述docker容器通过所述overlay网络进行跨宿主机通信。
在具体的实施方式中,在每个宿主机上创建一个基于mynet网络的docker容器,命令如下:
docker run--net mynet-tid centos bash
其中--net表示指定启动的docker容器使用的网络,centos表示启动容器的基础镜像。这样就实现了在纯ipv6网络环境下,docker容器的跨宿主机通信。
需要指出的是,在纯ipv6环境中,现有采用第三方网络插件实现docker容器跨宿主机通信的方案技术门槛复杂度偏高,并且使用第三方网络插件之后容器之间的通信地址是ipv6地址,而目前仍有相当一部分软件并无法在ipv6下稳定运行,比如:hadoop。这就导致这种方案虽然实现了docker容器的跨宿主机通信,但是却无法将现有的不支持ipv6的应用迁移到该网络环境中。如果需要迁移往往需要投入大量的人力成本,还不一定能解决这个原应用移植到ipv6环境中的问题。这对于需要迁移的软件系统而言,是一项非常大成本的挑战。而本申请在宿主机上创建虚拟ipv4地址,让docker使用该虚拟ipv4地址创建swarm集群,并基于该集群创建一个自定义的网络,基于该自定义网络创建容器。这样,使用虚拟的ipv4网络地址,将容器运行在虚拟的ipv4的网络环境中,相当于容器运行在一个虚拟机的网络沙箱中,对外服务的时候仍然使用ipv6地址,但是在容器内部使用虚拟的ipv4地址。简单明了,通俗易懂,技术门槛比较低,只需要docker的入门技术人员即可操作,且原ipv4的应用几乎可以无需改动即可迁移到ipv6环境,使用docker原生的swarm网络,稳定性有保证。
例如,参见图2所示,图2为本申请实施例提供的一种具体的容器跨宿主机的通信方法流程图。包括宿主机1和宿主机2,宿主机1作为主宿主机,宿主机1和宿主机2分别创建ipv4的虚拟IP,并配置docker,宿主机1创建swarm集群,宿主机2加入swarm集群,宿主机1创建overlay网络,宿主机1和宿主机2基于overlay网络创建容器,容器通过overlay网络实现跨宿主通信。
可见,本申请实施例先基于各宿主机的ipv6地址所绑定的网口分别创建各所述宿主机的虚拟ipv4地址,之后通过各所述宿主机中的主宿主机,并基于所述主宿主机的所述虚拟ipv4地址创建swarm集群,并将各所述宿主机中的非主宿主机加入所述swarm集群,然后基于所述swarm集群,并基于第一虚拟ipv4网段创建overlay网络,最后在各所述宿主机中基于所述overlay网络创建docker容器,以便各所述docker容器通过所述overlay网络进行跨宿主机通信。也即,本申请基于ipv6地址创建各宿主机的虚拟ipv4地址,并基于主宿主机的虚拟ipv4地址创建swarm集群,并基于虚拟ipv4网段创建overlay网络,基于该overlay网络创建docker容器,这样,docker容器运行在虚拟的ipv4网络环境中,宿主机对外服务仍然使用ipv6地址,但是容器之间使用虚拟ipv4网络即overlay网络通信,能够在不引入第三方网络插件的情况下,实现ipv6网络环境下docker容器跨宿主机通信。
参见图3所示,本申请实施例公开了一种容器跨宿主机的通信装置,包括:
虚拟ipv4地址创建模块11,用于基于各宿主机的ipv6地址所绑定的网口分别创建各所述宿主机的虚拟ipv4地址;
swarm集群创建模块12,用于通过各所述宿主机中的主宿主机,并基于所述主宿主机的所述虚拟ipv4地址创建swarm集群;
swarm集群加入模块13,用于将各所述宿主机中的非主宿主机加入所述swarm集群;
overlay网络创建模块14,用于基于所述swarm集群,并基于第一虚拟ipv4网段创建overlay网络;
docker容器创建模块15,用于在各所述宿主机中基于所述overlay网络创建docker容器,以便各所述docker容器通过所述overlay网络进行跨宿主机通信。
可见,本申请实施例先基于各宿主机的ipv6地址所绑定的网口分别创建各所述宿主机的虚拟ipv4地址,之后通过各所述宿主机中的主宿主机,并基于所述主宿主机的所述虚拟ipv4地址创建swarm集群,并将各所述宿主机中的非主宿主机加入所述swarm集群,然后基于所述swarm集群,并基于第一虚拟ipv4网段创建overlay网络,最后在各所述宿主机中基于所述overlay网络创建docker容器,以便各所述docker容器通过所述overlay网络进行跨宿主机通信。也即,本申请基于ipv6地址创建各宿主机的虚拟ipv4地址,并基于主宿主机的虚拟ipv4地址创建swarm集群,并基于虚拟ipv4网段创建overlay网络,基于该overlay网络创建docker容器,这样,docker容器运行在虚拟的ipv4网络环境中,宿主机对外服务仍然使用ipv6地址,但是容器之间使用虚拟ipv4网络即overlay网络通信,能够在不引入第三方网络插件的情况下,实现ipv6网络环境下docker容器跨宿主机通信。
其中,虚拟ipv4地址创建模块11,具体用于为各所述宿主机配置相同的第二虚拟ipv4网段;其中,所述第二虚拟ipv4网段为与所述第一虚拟ipv4网段不同的ipv4网段;基于各宿主机的ipv6地址所绑定的网口分别在所述第二虚拟ipv4网段中创建各所述宿主机的虚拟ipv4地址;
其中,不同的所述宿主机的所述虚拟ipv4地址不同。
所述装置,还包括网口获取模块,用于向各所述宿主机发送网口获取指令,以获取各所述宿主机的ipv6地址所绑定的网口。
所述装置还包括docker服务配置模块,用于在各所述宿主机中配置docker服务,并启动所述docker服务。
swarm集群创建模块12,具体用于基于所述主宿主机的所述虚拟ipv4地址确定swarm集群的广播地址和监听地址;基于所述广播地址和所述监听地址创建swarm集群。
overlay网络创建模块14,具体用于在所述各宿主机中的任一宿主机上基于所述swarm集群,并基于第一虚拟ipv4网段创建overlay网络。
swarm集群加入模块13,具体用于获取所述主宿主机生成的集群加入命令;在各所述宿主机中的非主宿主机中执行所述集群加入命令,以将所述非主宿主机加入所述swarm集群。
参见图4所示,本申请实施例公开了一种电子设备20,包括处理器21和存储器22;其中,所述存储器22,用于保存计算机程序;所述处理器21,用于执行所述计算机程序,前述实施例公开的容器跨宿主机的通信方法。
关于上述容器跨宿主机的通信方法的具体过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
并且,所述存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,存储方式可以是短暂存储或者永久存储。
另外,所述电子设备20还包括电源23、通信接口24、输入输出接口25和通信总线26;其中,所述电源23用于为所述电子设备20上的各硬件设备提供工作电压;所述通信接口24能够为所述电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;所述输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
进一步的,本申请实施例还公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述实施例公开的容器跨宿主机的通信方法。
关于上述容器跨宿主机的通信方法的具体过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的一种容器跨宿主机的通信方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种容器跨宿主机的通信方法,其特征在于,包括:
基于各宿主机的ipv6地址所绑定的网口分别创建各所述宿主机的虚拟ipv4地址;
通过各所述宿主机中的主宿主机,并基于所述主宿主机的所述虚拟ipv4地址创建swarm集群;
将各所述宿主机中的非主宿主机加入所述swarm集群;
基于所述swarm集群,并基于第一虚拟ipv4网段创建overlay网络;
在各所述宿主机中基于所述overlay网络创建docker容器,以便各所述docker容器通过所述overlay网络进行跨宿主机通信。
2.根据权利要求1所述的容器跨宿主机的通信方法,其特征在于,所述基于各宿主机的ipv6地址所绑定的网口分别创建各所述宿主机的虚拟ipv4地址,包括:
为各所述宿主机配置相同的第二虚拟ipv4网段;其中,所述第二虚拟ipv4网段为与所述第一虚拟ipv4网段不同的ipv4网段;
基于各宿主机的ipv6地址所绑定的网口分别在所述第二虚拟ipv4网段中创建各所述宿主机的虚拟ipv4地址;
其中,不同的所述宿主机的所述虚拟ipv4地址不同。
3.根据权利要求1所述的容器跨宿主机的通信方法,其特征在于,所述基于各宿主机的ipv6地址所绑定的网口分别创建各所述宿主机的虚拟ipv4地址之前,还包括:
向各所述宿主机发送网口获取指令,以获取各所述宿主机的ipv6地址所绑定的网口。
4.根据权利要求1所述的容器跨宿主机的通信方法,其特征在于,所述基于所述主宿主机的所述虚拟ipv4地址创建swarm集群之前,还包括:
在各所述宿主机中配置docker服务,并启动所述docker服务。
5.根据权利要求1所述的容器跨宿主机的通信方法,其特征在于,所述基于所述主宿主机的所述虚拟ipv4地址创建swarm集群,包括:
基于所述主宿主机的所述虚拟ipv4地址确定swarm集群的广播地址和监听地址;
基于所述广播地址和所述监听地址创建swarm集群。
6.根据权利要求1所述的容器跨宿主机的通信方法,其特征在于,所述基于所述swarm集群,并基于第一虚拟ipv4网段创建overlay网络,包括:
在所述各宿主机中的任一宿主机上基于所述swarm集群,并基于第一虚拟ipv4网段创建overlay网络。
7.根据权利要求1至6所述的容器跨宿主机的通信方法,其特征在于,所述基于所述主宿主机的所述虚拟ipv4地址创建swarm集群之后,还包括:
获取所述主宿主机生成的集群加入命令;
相应的,所述将各所述宿主机中的非主宿主机加入所述swarm集群,包括:
在各所述宿主机中的非主宿主机中执行所述集群加入命令,以将所述非主宿主机加入所述swarm集群。
8.一种容器跨宿主机的通信装置,其特征在于,包括:
虚拟ipv4地址创建模块,用于基于各宿主机的ipv6地址所绑定的网口分别创建各所述宿主机的虚拟ipv4地址;
swarm集群创建模块,用于通过各所述宿主机中的主宿主机,并基于所述主宿主机的所述虚拟ipv4地址创建swarm集群;
swarm集群加入模块,用于将各所述宿主机中的非主宿主机加入所述swarm集群;
overlay网络创建模块,用于基于所述swarm集群,并基于第一虚拟ipv4网段创建overlay网络;
docker容器创建模块,用于在各所述宿主机中基于所述overlay网络创建docker容器,以便各所述docker容器通过所述overlay网络进行跨宿主机通信。
9.一种电子设备,其特征在于,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至7任一项所述的容器跨宿主机的通信方法。
10.一种计算机可读存储介质,其特征在于,用于保存计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的容器跨宿主机的通信方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111211493.XA CN113852573A (zh) | 2021-10-18 | 2021-10-18 | 一种容器跨宿主机的通信方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111211493.XA CN113852573A (zh) | 2021-10-18 | 2021-10-18 | 一种容器跨宿主机的通信方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113852573A true CN113852573A (zh) | 2021-12-28 |
Family
ID=78978704
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111211493.XA Withdrawn CN113852573A (zh) | 2021-10-18 | 2021-10-18 | 一种容器跨宿主机的通信方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113852573A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115314437A (zh) * | 2022-06-16 | 2022-11-08 | 阿里巴巴(中国)有限公司 | 容器虚拟网络通信方法和容器虚拟网络 |
CN115543549A (zh) * | 2022-12-01 | 2022-12-30 | 中国电子科技集团公司第十五研究所 | 一种应用运行效果与宿主机一致的容器 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101068189A (zh) * | 2007-05-18 | 2007-11-07 | 清华大学 | 在IPv6中用主机间隧道支持IPv4应用程序的方法 |
CN110012125A (zh) * | 2019-04-01 | 2019-07-12 | 优刻得科技股份有限公司 | 集群网络通信方法、装置、存储介质和设备 |
CN111600972A (zh) * | 2020-05-15 | 2020-08-28 | 咪咕视讯科技有限公司 | 双栈地址的配置方法、服务器和可读存储介质 |
WO2021175152A1 (zh) * | 2020-03-05 | 2021-09-10 | 北京金山云网络技术有限公司 | 容器集群系统、容器控制台和服务器 |
-
2021
- 2021-10-18 CN CN202111211493.XA patent/CN113852573A/zh not_active Withdrawn
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101068189A (zh) * | 2007-05-18 | 2007-11-07 | 清华大学 | 在IPv6中用主机间隧道支持IPv4应用程序的方法 |
CN110012125A (zh) * | 2019-04-01 | 2019-07-12 | 优刻得科技股份有限公司 | 集群网络通信方法、装置、存储介质和设备 |
WO2021175152A1 (zh) * | 2020-03-05 | 2021-09-10 | 北京金山云网络技术有限公司 | 容器集群系统、容器控制台和服务器 |
CN111600972A (zh) * | 2020-05-15 | 2020-08-28 | 咪咕视讯科技有限公司 | 双栈地址的配置方法、服务器和可读存储介质 |
Non-Patent Citations (2)
Title |
---|
吉格管理员: "Docker禁用IPV6", Retrieved from the Internet <URL:https://forums.docker.com/t/docker-disable-ipv6/62467> * |
舒米勒: "Docker篇(七): 如何实现 Docker 容器 的跨主机通讯?", pages 1 - 14, Retrieved from the Internet <URL:https://mdnice.com/writing/4c76664b160f48dab32a565499e696be> * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115314437A (zh) * | 2022-06-16 | 2022-11-08 | 阿里巴巴(中国)有限公司 | 容器虚拟网络通信方法和容器虚拟网络 |
CN115314437B (zh) * | 2022-06-16 | 2024-03-01 | 阿里巴巴(中国)有限公司 | 容器虚拟网络通信方法和容器虚拟网络 |
CN115543549A (zh) * | 2022-12-01 | 2022-12-30 | 中国电子科技集团公司第十五研究所 | 一种应用运行效果与宿主机一致的容器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11411828B2 (en) | Host network analyzer | |
US9910765B2 (en) | Providing testing environments for software applications using virtualization and a native hardware layer | |
US10541868B2 (en) | System and method for automatically updating bios setup options | |
CN108780410B (zh) | 计算系统中的容器的网络虚拟化 | |
US9588807B2 (en) | Live logical partition migration with stateful offload connections using context extraction and insertion | |
US9286103B2 (en) | Method and apparatus for providing a test network as an IP accessible cloud service | |
US8830870B2 (en) | Network adapter hardware state migration discovery in a stateful environment | |
US9311140B2 (en) | Method and apparatus for extending local area networks between clouds and migrating virtual machines using static network addresses | |
US9430256B2 (en) | Method and apparatus for migrating virtual machines between cloud computing facilities using multiple extended local virtual networks and static network addresses | |
US20170060628A1 (en) | Virtual machine migration within a hybrid cloud system | |
US8549187B1 (en) | System and method of MAC address assignment using IP addresses | |
US9841988B1 (en) | Updating service virtual machines using a new image that is certified | |
CN107357660A (zh) | 一种虚拟资源的分配方法及装置 | |
US20170155569A1 (en) | Test case based virtual machine (vm) template generation | |
CN110995561B (zh) | 基于容器技术的虚拟网络数据通信交互方法与系统 | |
US10579488B2 (en) | Auto-calculation of recovery plans for disaster recovery solutions | |
US10452430B2 (en) | Live migration of virtual computing instances between data centers | |
CN113852573A (zh) | 一种容器跨宿主机的通信方法、装置、设备及介质 | |
US11425054B1 (en) | User-configured multi-location service deployment and scaling | |
CN109743205B (zh) | 一种云平台os网络管理方法、装置及服务器 | |
US20240155023A1 (en) | Method and system for implementing bare metal inspection process, device, and storage medium | |
US20190334862A1 (en) | Seamless Network Characteristics For Hardware Isolated Virtualized Environments | |
Loddo et al. | Marionnet: a virtual network laboratory and simulation tool | |
CN115033348A (zh) | 一种对虚拟机和容器统一管理方法、系统、设备及介质 | |
Ariyanto et al. | Performance analysis of network emulator based on the use of resources in virtual laboratory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20211228 |
|
WW01 | Invention patent application withdrawn after publication |