一种Docker实现系统及其通信方法

文档序号:9618773阅读:477来源:国知局
一种Docker实现系统及其通信方法
【技术领域】
[0001] 本申请涉及云计算技术领域,尤其涉及一种Docker实现系统及其通信方法。
【背景技术】
[0002] Docker是一个开源的应用容器引擎,允许开发者打包应用到容器中,适合大规模 分布式应用和大数据处理应用场景。
[0003] 图1示出了现有技术中Docker管理环境的架构示意图,如图所示,包括:控制节 点、容器库、配置/服务发现存储系统以及多台容器节点。其中,
[0004] (1)控制节点实现了对外的调用接口和集群内资源调度功能;
[0005] (2)容器库实现了容器的注册和发布功能,在部署容器时可直接从容器库中将相 关的容器移动待部署的机器上;
[0006] (3)配置/服务发现存储系统用于共享配置并实现服务发现功能;
[0007] (4)容器节点用于实际运行Docker容器。
[0008] 具体的,在每台容器节点上运行了本地容器管理模块、代理模块,其中,
[0009] (1)本地容器管理模块用于与控制节点通信,并根据控制节点的指令在本地创建 容器组,容器组可以包含一个或多个容器;
[0010] (2)代理模块用于解决同一宿主机相同服务端口冲突的问题,还具备service转 发服务端口来对外提供服务的能力。
[0011] 目前,Docker管理环境中的这些组件通常部署在一个数据中心内部的多台物理网 络互通的物理服务器或多台虚拟机上。由于管理环境部署于同一个局域网内,各物理服务 器或虚拟机之间没有安全隔离机制,不同用户的应用通过容器进行隔离,因此,用户的应用 存在被其他用户攻击的风险。
[0012] 现有技术不足在于:
[0013] Docker管理环境中用户的应用通过容器隔离,存在一定安全风险。

【发明内容】

[0014] 本申请实施例提出了一种Docker实现系统及其通信方法,以解决现有技术中用 户的应用通过容器隔离,存在一定安全风险的技术问题。
[0015] 本申请实施例提供了一种Docker实现系统,包括管理虚拟私有云VPC和用户VPC, 每个VPC中包含虚拟路由装置和虚拟机,其中,
[0016] 所述管理VPC包括用户VPC管理模块、控制节点、容器库和配置服务发现存储系 统,所述用户VPC管理模块、控制节点、容器库和配置服务发现存储系统与所述管理VPC的 虚拟路由装置连接;
[0017] 所述用户VPC的虚拟机上部署有本地容器管理模块、代理模块和容器container, 所述虚拟机与所述用户VPC的虚拟路由装置连接,所述容器用于存放所述用户的应用;
[0018] 所述管理VPC的虚拟路由装置与所述用户VPC的虚拟路由装置存在安全隧道。
[0019] 本申请实施例提供了上述系统的通信方法,包括如下步骤:
[0020] 所述控制节点发送消息至所述管理VPC的虚拟路由装置,所述消息中包括用户 VPC信息及其虚拟机信息;
[0021] 所述管理VPC的虚拟路由装置根据所述用户VPC信息确定消息发送的隧道,将所 述消息发送至所述隧道,所述隧道的终点为所述用户VPC的虚拟路由装置;
[0022] 所述用户VPC的虚拟路由装置根据所述用户VPC的虚拟机信息确定所述消息的目 标地址,将所述消息发送至所述用户VPC的虚拟机;
[0023] 所述用户VPC的虚拟机将所述消息传递至所述虚拟机的本地容器管理模块。
[0024] 本申请实施例提供了上述系统的另一种通信方法,包括如下步骤:
[0025] 所述本地容器管理模块发送消息至所述用户VPC的虚拟路由装置,所述消息中包 括管理VPC信息及其虚拟机信息;
[0026] 所述用户VPC的虚拟路由装置根据所述管理VPC信息确定消息发送的隧道,将所 述消息发送至所述隧道,所述隧道的终点为所述管理VPC的虚拟路由装置;
[0027] 所述管理VPC的虚拟路由装置根据所述管理VPC的虚拟机信息确定所述消息的目 标地址,将所述消息发送至所述管理VPC的虚拟机;
[0028] 所述管理VPC的虚拟机将所述消息传递至所述虚拟机的控制节点。
[0029] 有益效果如下:
[0030] 本申请实施例所提供的Docker实现系统及其通信方法,包括管理VPC和用户VPC, 每个VPC中包含虚拟路由装置和虚拟机,所述管理VPC与用户VPC通过各自的虚拟路由装 置之间的安全隧道进行通信,由管理VPC统一管理用户VPC,形成安全的管理网络,由于管 理VPC与用户VPC建立安全隧道,所述用户VPC与所述管理VPC通过安全隧道进行通信,用 户VPC之间不能互相访问,从而起到了隔离作用,减少了用户的应用被其他用户攻击的风 险,提高了系统安全性。
【附图说明】
[0031] 下面将参照附图描述本申请的具体实施例,其中:
[0032] 图1示出了现有技术中Docker管理环境部署的架构示意图;
[0033] 图2示出了现有技术中以Kubernetes为例的Docker管理环境示意图;
[0034] 图3示出了本申请实施例中Docker实现系统的结构示意图一;
[0035] 图4示出了本申请实施例中Docker实现系统的结构示意图二;
[0036] 图5示出了本申请实施例中Docker实现系统的通信方法实施的流程示意图;
[0037] 图6示出了本申请实施例中控制节点与本地容器管理模块之间的交互示意图;
[0038] 图7示出了本申请实施例中Docker实现系统的另一种通信方法实施的流程示意 图;
[0039] 图8示出了本申请实施例中本地容器管理模块与控制节点之间的交互示意图;
[0040] 图9示出了本申请实施例中Docker实现系统的结构示意图三。
【具体实施方式】
[0041] 为了使本申请的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性 实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是 所有实施例的穷举。并且在不冲突的情况下,本说明中的实施例及实施例中的特征可以互 相结合。
[0042] 发明人在发明过程中注意到:
[0043] 目前Kubernetes为常用的Docker容器集群管理系统,它为容器化的应用提供了 资源调度、部署运行、服务发现、扩容缩容等功能。
[0044] 图2示出了现有技术中以Kubernetes为例的Docker管理环境示意图,如图所 不,Docker管理环境可以包括控制节点Kubernetes master、容器库Docker registry、 高可用的键值存储系统ET⑶(一个分布式强一致性的key/value存储)和多台容器节点 Kubernetes node。
[0045] 在 kubernetes 中,kubernetes master 实现了 API 服务器 server、副本控制器 replication controllers、调度器 scheduler 等功能模块,其中:
[0046] API server作为kubernetes系统的入口,封装了核心对象的增加、删除、修改、查 询操作,以RESTFul接口方式提供给外部客户和内部组件调用。它维护的REST对象将持久 化到ET⑶。
[0047] Replication Controller实现复制多个Pod副本,往往一个应用需要多个Pod 来支撑,并且可以保证其复制的副本数,即使副本所调度分配的主宿机出现异常,通过 Replication Controller可以保证在其它主宿机启用同等数量的Pod。
[0048] scheduler负责集群的资源调度,为新建的pod分配机器。
[0049] 在容器节点上运行了本地容器管理模块kubelet、代理模块proxy,其中:
[0050] 本地容器管理模块用于与控制节点(Master)通信,并根据控制节点的指令在 本地创建容器组可以包含一个容器或多个相关的容器;在kubernetes中,通常以容器组 (P0D)为单位来进行调度;
[0051] 代理模块(Proxy)用于解决同一主宿机的相同服务端口冲突的问题,还提供了 Service转发服务端口对外提供服务的能力。
[0052] 这些组件可以部署在一个数据中心内部的多台物理网络互通的物理服务区或虚 拟机上。具体的,可以将其中某些组件部署在相同的物理机或虚拟机上,例如,将控制节点 和容器库放在相同的物理机或虚拟机上,配置/服务发现存储系统在3个或3个以上的物 理机或虚拟机上独立集群部署。
[0053] 综上可以看出,现有Docker运行环境大多是部署在同一局域网内的物理机或虚 拟机上,彼此之间可以直接通信,不同的用户的应用可以通过容器container隔离。但这种 方式可能存在用户的应用被其他用户攻击的风险,不能防止来自容器的入侵,安全性较低, 对于资源隔离要求高、安全性要求高的多租户场景并不适用。
[0054] 为了解决上述问题,本申请实施例提出将容器container与虚拟私有云VPC结合 起来,通过VPC的机制弥补容器所固有的安全缺陷,也即,将不同用户的应用放在不同VPC 的虚拟机上,同一用户的不同应用使用container隔离,以提高安全性。
[0055] 本申请实施例提出的container与VPC结合的结构,即基于VPC部署用户的 Docker,每个用户的容器部署在单独的VPC中保障不同用户的容器被严格的隔离起来。
[0056] 要实现这样的目的,最直接的方法可以是在每个VPC中独立部署一套完整的 Docker环境,即每个VPC中部署一套控制节点、容器库、配置/服务发现存储系统以及多台 容器节点。
[0057] 但发明人又注意到,由于控制节点、容器库、配置/服务发现存储系统需要占用独 立的虚拟机,多套VPC分别部署完整的Docker环境浪费较多的资源;同时,一些企业用户 为了实现企业内部不同部门的隔离,可能需要同时配置多个VPC,每个VPC内均部署完整的 Docker环境会导致资源浪费、成本较高。
[0058] 基于此,本申请实施例提出了一种Docker实现系统及其通信方法,下面进行详细 说明。
[0059
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1