容器间通信控制方法及装置与流程

文档序号:11879481阅读:167来源:国知局
容器间通信控制方法及装置与流程

本发明实施例涉及通信技术领域,尤其涉及一种容器间通信控制方法及装置。



背景技术:

Docker是一个开源的应用容器引擎,在物理主机上安装Docker后,可在Docker的基础上承载多个容器,多个容器之间相互隔离,多个容器共享物理主机的操作系统,各容器可放置并执行不同的应用程序。

将安装有Docker容器的物理主机称为Docker服务器,例如Docker容器1在Docker服务器1中,Docker容器2在Docker服务器2中,当Docker容器1作为客户端需要访问Docker容器2时,Docker容器1创建请求报文,该请求报文的源IP地址是Docker服务器1的IP地址,目的IP地址是Docker服务器2的IP地址。

但是,当Docker容器2从Docker服务器2迁移到其他Docker服务器后,Docker容器1将无法与Docker容器2进行通信,降低了Docker容器之间通信的可靠性。



技术实现要素:

本发明实施例提供一种容器间通信控制方法及装置,以提高Docker容器之间通信的可靠性。

本发明实施例的一个方面是提供一种容器间通信控制方法,包括:

接收源Docker容器发送的第一请求,所述第一请求包括所述源Docker容器的第一地址信息、以及目标Docker容器的标识信息;

根据所述目标Docker容器的标识信息,获取所述目标Docker容器的第二地址信息;

将所述目标Docker容器的第二地址信息发送给所述源Docker容器,以使所述源Docker容器根据所述目标Docker容器的第二地址信息,向所述目标Docker容器发送通信报文。

本发明实施例的另一个方面是提供一种容器间通信控制装置,包括:

接收模块,用于接收源Docker容器发送的第一请求,所述第一请求包括所述源Docker容器的第一地址信息、以及目标Docker容器的标识信息;

获取模块,用于根据所述目标Docker容器的标识信息,获取所述目标Docker容器的第二地址信息;

发送模块,用于将所述目标Docker容器的第二地址信息发送给所述源Docker容器,以使所述源Docker容器根据所述目标Docker容器的第二地址信息,向所述目标Docker容器发送通信报文。

本发明实施例提供的容器间通信控制方法及装置,编排器中的地址解析协议模块根据目标Docker容器的标识信息,获取目标Docker容器的地址信息,并将目标Docker容器的地址信息发送给源Docker容器,以使源Docker容器根据目标Docker容器的地址信息与目标Docker容器进行通信,当目标Docker容器发生迁移,从一个Docker服务器迁移到了另一个Docker服务器,则另一个Docker服务器向地址解析协议模块上报目标Docker容器的标识信息和地址信息,保证了地址解析协议模块时刻存储有目标Docker容器的标识信息和地址信息,并将目标Docker容器的地址信息发送给源Docker容器,保证了Docker容器之间通信的可靠性。

附图说明

图1为本发明实施例提供的容器间通信控制方法流程图;

图2为本发明实施例提供的容器间通信控制方法适用的网络结构图;

图3为本发明另一实施例提供的容器间通信控制方法流程图;

图4为本发明实施例提供的容器间通信控制装置的结构图;

图5为本发明另一实施例提供的容器间通信控制装置的结构图。

具体实施方式

图1为本发明实施例提供的容器间通信控制方法流程图;图2为本发明实施例提供的容器间通信控制方法适用的网络结构图。本发明实施例针对当Docker容器2从Docker服务器2迁移到其他Docker服务器后,Docker容器1将无法与Docker容器2进行通信,降低了Docker容器之间通信的可靠性,提供了容器间通信控制方法,该方法具体步骤如下:

步骤S101、接收源Docker容器发送的第一请求,所述第一请求包括所述源Docker容器的第一地址信息、以及目标Docker容器的标识信息;

如图2所示,Docker容器21、Docker容器22和Docker引擎31位于Docker服务器11,Docker引擎32位于Docker服务器12,Docker容器22可从Docker服务器11迁移到Docker服务器12,编排器30可分别与Docker服务器11和Docker服务器12通信,编排器30包括地址解析协议模块40。

本实施例中,接收源Docker容器发送的第一请求之前之前,还包括:获取所述源Docker容器的标识信息和所述源Docker容器的第一地址信息的对应关系,以及所述目标Docker容器的标识信息和所述目标Docker容器的第二地址信息的对应关系。

本实施例中,用户可通过终端设备向编排器30发送配置命令,配置命令包括所需创建的Docker容器的个数,以及所需创建的Docker容器所在的Docker服务器的标识信息,例如,配置命令标识所需创建的Docker容器的个数是2,所需创建的Docker容器所在的Docker服务器的标识信息是Docker服务器11,则编排器30向Docker服务器11下发该配置命令,以使Docker服务器11创建Docker容器21和Docker容器22,具体的,Docker容器21的地址信息是202.0.0.m,标识信息是Cm,Docker容器22的地址信息是202.0.0.n,标识信息是Cn,Docker服务器11将Docker容器21的地址信息和标识信息、以及Docker容器22的地址信息和标识信息上报给编排器30中的地址解析协议模块40,地址解析协议模块40存储Docker容器21的地址信息202.0.0.m和标识信息Cm的对应关系,以及Docker容器22的地址信息202.0.0.n和标识信息Cn的对应关系。

Docker容器21是源Docker容器,Docker容器22是目标Docker容器,当Docker容器21需要访问Docker容器22时,Docker容器21向编排器30中的地址解析协议模块40发送第一请求,该第一请求包括Docker容器21的第一地址信息即202.0.0.m,以及Docker容器22的标识信息即Cn。

步骤S102、根据所述目标Docker容器的标识信息,获取所述目标Docker容器的第二地址信息。

编排器30中的地址解析协议模块40根据Docker容器22的标识信息即Cn,获取Docker容器22的第二地址信息即202.0.0.n。

步骤S103、将所述目标Docker容器的第二地址信息发送给所述源Docker容器,以使所述源Docker容器根据所述目标Docker容器的第二地址信息,向所述目标Docker容器发送通信报文。

地址解析协议模块40将Docker容器22的第二地址信息即202.0.0.n发送给Docker容器21,Docker容器21根据Docker容器22的第二地址信息即202.0.0.n,向Docker容器22发送通信报文。

本发明实施例编排器中的地址解析协议模块根据目标Docker容器的标识信息,获取目标Docker容器的地址信息,并将目标Docker容器的地址信息发送给源Docker容器,以使源Docker容器根据目标Docker容器的地址信息与目标Docker容器进行通信,当目标Docker容器发生迁移,从一个Docker服务器迁移到了另一个Docker服务器,则另一个Docker服务器向地址解析协议模块上报目标Docker容器的标识信息和地址信息,保证了地址解析协议模块时刻存储有目标Docker容器的标识信息和地址信息,并将目标Docker容器的地址信息发送给源Docker容器,保证了Docker容器之间通信的可靠性。

图3为本发明另一实施例提供的容器间通信控制方法流程图;在图1所示实施例的基础上,本实施例提供的容器间通信控制方法的步骤如下:

步骤S301、接收源Docker容器发送的第一请求,所述第一请求包括所述源Docker容器的第一地址信息、目标Docker容器的标识信息、以及第一随机数;

在本实施例中,当Docker容器21需要访问Docker容器22时,Docker容器21向编排器30中的地址解析协议模块40发送第一请求,该第一请求包括Docker容器21的第一地址信息即202.0.0.m,Docker容器22的标识信息即Cn,以及第一随机数,该第一随机数是Docker容器21和地址解析协议模块40本次通信的随机数。

步骤S302、将所述源Docker容器的第一地址信息与所述第一随机数进行关联存储;

地址解析协议模块40将Docker容器21的第一地址信息即202.0.0.m与第一随机数进行关联存储。

步骤S303、记录接收源Docker容器发送的第一请求时的时间信息;

另外,地址解析协议模块40记录接收Docker容器21发送的第一请求时的时间信息,该时间信息用于标识地址解析协议模块40接收到第一随机数的时间。

步骤S304、根据所述目标Docker容器的标识信息,获取所述目标Docker容器的第二地址信息;

步骤S305、将所述目标Docker容器的第二地址信息发送给所述源Docker容器,以使所述源Docker容器根据所述目标Docker容器的第二地址信息,向所述目标Docker容器发送通信报文;

步骤S304和步骤S102一致,步骤S305与步骤S103一致,具体方法此处不再赘述。

步骤S306、接收所述目标Docker容器发送的第二请求,所述第二请求包括所述源Docker容器的第一地址信息、以及第二随机数;

地址解析协议模块40将Docker容器22的第二地址信息即202.0.0.n发送给Docker容器21后,Docker容器21根据Docker容器22的第二地址信息,向Docker容器22发送通信报文,该通信报文中包括第二随机数,该第二随机数是Docker容器21和Docker容器22本次通信的随机数。

Docker容器22接收到Docker容器21发送的通信报文后,向地址解析协议模块40发送第二请求,该第二请求中包括Docker容器21的第一地址信息即202.0.0.m,以及该第二随机数。

步骤S307、确定所述第一随机数和所述第二随机数是否一致;

地址解析协议模块40确定Docker容器22发送的第二随机数和最后一次记录的Docker容器21发送的第一随机数是否一致。

步骤S308、若所述第一随机数和所述第二随机数一致,则根据所述源Docker容器的第一地址信息,获取所述源Docker容器的标识信息;

若Docker容器22发送的第二随机数和最后一次记录的Docker容器21发送的第一随机数一致,则地址解析协议模块40根据Docker容器21的第一地址信息即202.0.0.m,获取Docker容器21的标识信息即Cm。

若Docker容器22发送的第二随机数和最后一次记录的Docker容器21发送的第一随机数不一致,说明第二随机数是一个非法的数据,Docker容器22根据非法的数据骗取地址解析协议模块40中存储的Docker容器的标识信息。

步骤S309、将所述源Docker容器的标识信息发送给所述目标Docker容器,以使所述目标Docker容器根据所述源Docker容器的标识信息,确定所述源Docker容器和所述目标Docker容器之间的通信规则。

若Docker容器22发送的第二随机数和最后一次记录的Docker容器21发送的第一随机数一致,地址解析协议模块40将获取到的Docker容器21的标识信息即Cm发送给Docker容器22,Docker容器22根据Docker容器21的标识信息即Cm,确定Cm与自己的通信规则,若通信规则标识Cm与Cn可以通信,则Docker容器22接收Docker容器21发送的通信报文,若通信规则标识Cm与Cn不可以通信,则Docker容器22丢弃Docker容器21发送的通信报文。

本实施例通过地址解析协议模块根据目标Docker容器发送的第二随机数和最后一次记录的源Docker容器发送的第一随机数是否一致,确定目标Docker容器在骗取地址解析协议模块中存储的Docker容器的标识信息,提高了Docker容器之间通信的安全性。

图4为本发明实施例提供的容器间通信控制装置的结构图。本发明实施例提供的容器间通信控制装置可以执行容器间通信控制方法实施例提供的处理流程,如图4所示,容器间通信控制装置40包括接收模块41、获取模块42和发送模块43,其中,接收模块41用于接收源Docker容器发送的第一请求,所述第一请求包括所述源Docker容器的第一地址信息、以及目标Docker容器的标识信息;获取模块42用于根据所述目标Docker容器的标识信息,获取所述目标Docker容器的第二地址信息;发送模块43用于将所述目标Docker容器的第二地址信息发送给所述源Docker容器,以使所述源Docker容器根据所述目标Docker容器的第二地址信息,向所述目标Docker容器发送通信报文。

本发明实施例提供的容器间通信控制装置可以具体用于执行上述图1所提供的方法实施例,具体功能此处不再赘述。

本发明实施例通过编排器中的地址解析协议模块根据目标Docker容器的标识信息,获取目标Docker容器的地址信息,并将目标Docker容器的地址信息发送给源Docker容器,以使源Docker容器根据目标Docker容器的地址信息与目标Docker容器进行通信,当目标Docker容器发生迁移,从一个Docker服务器迁移到了另一个Docker服务器,则另一个Docker服务器向地址解析协议模块上报目标Docker容器的标识信息和地址信息,保证了地址解析协议模块时刻存储有目标Docker容器的标识信息和地址信息,并将目标Docker容器的地址信息发送给源Docker容器,保证了Docker容器之间通信的可靠性。

图5为本发明另一实施例提供的容器间通信控制装置的结构图。如图5所示,在图4所示实施例的基础上,获取模块42还用于获取所述源Docker容器的标识信息和所述源Docker容器的第一地址信息的对应关系,以及所述目标Docker容器的标识信息和所述目标Docker容器的第二地址信息的对应关系。

所述第一请求还包括第一随机数;容器间通信控制装置40还包括:存储模块44、记录模块45,其中,存储模块44用于将所述源Docker容器的第一地址信息与所述第一随机数进行关联存储;记录模块45用于记录接收源Docker容器发送的第一请求时的时间信息。

所述通信报文包括第二随机数;接收模块41还用于接收所述目标Docker容器发送的第二请求,所述第二请求包括所述源Docker容器的第一地址信息、以及所述第二随机数;容器间通信控制装置40还包括确定模块46,确定模块46用于确定所述第一随机数和所述第二随机数是否一致。

获取模块42还用于所述第一随机数和所述第二随机数一致时,根据所述源Docker容器的第一地址信息,获取所述源Docker容器的标识信息;发送模块43还用于将所述源Docker容器的标识信息发送给所述目标Docker容器,以使所述目标Docker容器根据所述源Docker容器的标识信息,确定所述源Docker容器和所述目标Docker容器之间的通信规则。

本发明实施例提供的容器间通信控制装置可以具体用于执行上述图3所提供的方法实施例,具体功能此处不再赘述。

本发明实施例通过地址解析协议模块根据目标Docker容器发送的第二随机数和最后一次记录的源Docker容器发送的第一随机数是否一致,确定目标Docker容器在骗取地址解析协议模块中存储的Docker容器的标识信息,提高了Docker容器之间通信的安全性。

综上所述,本发明实施例编排器中的地址解析协议模块根据目标Docker容器的标识信息,获取目标Docker容器的地址信息,并将目标Docker容器的地址信息发送给源Docker容器,以使源Docker容器根据目标Docker容器的地址信息与目标Docker容器进行通信,当目标Docker容器发生迁移,从一个Docker服务器迁移到了另一个Docker服务器,则另一个Docker服务器向地址解析协议模块上报目标Docker容器的标识信息和地址信息,保证了地址解析协议模块时刻存储有目标Docker容器的标识信息和地址信息,并将目标Docker容器的地址信息发送给源Docker容器,保证了Docker容器之间通信的可靠性;通过地址解析协议模块根据目标Docker容器发送的第二随机数和最后一次记录的源Docker容器发送的第一随机数是否一致,确定目标Docker容器在骗取地址解析协议模块中存储的Docker容器的标识信息,提高了Docker容器之间通信的安全性。

在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1