Docker集群多租户下虚拟Socket通信的方法技术

技术编号:20724107 阅读:56 留言:0更新日期:2019-03-30 17:31
本发明专利技术公开了一种Docker集群多租户下虚拟Socket通信的方法和系统,使容器内进程可调用Docker服务,允许对租户在Swarm集群范围内的所有资源进行操作,实现数据隔离,调用者无需身份认证,无需改造容器应用。其技术方案为:在多租户共享主机场景下,租户容器通过虚拟Docker Socket不能访问其他租户的容器,也无法通过创建特权容器等方式来实现特权提升,从而保证系统安全和租户数据安全。虚拟Docker Socket支持与Docker API兼容的Docker Swarm API,容器可通过在镜像内安装Docker CLI,以Shell脚本形式通过虚拟Docker Socket调用Docker/Docker Swarm服务。代理服务自动识别调用来源容器及所属租户,简化调用代码编写,并避免显示传入认证信息导致有泄漏的安全风险。

【技术实现步骤摘要】
Docker集群多租户下虚拟Socket通信的方法
本专利技术涉及DockerSwarm集群中实现的技术,具体涉及DockerSwarm集群多租户场景下的虚拟DockerSocket跨主机通信方法和系统。
技术介绍
在多租户共享Docker主机的情况下,容器管理平台通常禁止容器挂载DockerSocket后向主机上的Docker服务发送请求,因为这会导致租户越权访问到同主机上其他租户的容器,甚至获得主机系统操作权限。但目前大量容器需要调用Docker服务来实现服务发现等功能,禁止容器挂载DockerSocket后,此类容器就需要进行改造以使用容器管理平台提供的私有API作为替代,从而又带来厂商锁定等新问题。公有云平台通常采用虚拟机来实现多租户隔离,此时容器挂载DockerSocket虽然没有越权的问题,但由于通过DockerSocket只能访问到当前主机上的Docker服务,无法对集群内其他主机上的容器进行操作。举一个具体的例子,某容器应用集成了一个负载均衡组件(例如Nginx容器)来对多个服务容器做反向代理和负载均衡,该负载均衡组件的实现逻辑如下:以Nginx镜像为基础,添加一个服本文档来自技高网...

【技术保护点】
1.一种Docker集群多租户下虚拟Socket通信的系统,其特征在于,包括Docker Swarm管理器、多个Docker Swarm节点以及一计算机程序,所述计算机程序运行后执行以下的步骤:步骤1:虚拟Docker Socket技术在Docker Swarm节点上运行代理服务;步骤2:由该代理服务创建虚拟Docker Socket文件以替换真实Docker Socket文件;步骤3:Docker Swarm节点中的容器通过挂载的虚拟Docker Socket文件与代理服务通信,向代理服务发送Docker Swarm API调用;步骤4:该代理服务获取调用端系统凭据及进程ID,识别调用来源对...

【技术特征摘要】
1.一种Docker集群多租户下虚拟Socket通信的系统,其特征在于,包括DockerSwarm管理器、多个DockerSwarm节点以及一计算机程序,所述计算机程序运行后执行以下的步骤:步骤1:虚拟DockerSocket技术在DockerSwarm节点上运行代理服务;步骤2:由该代理服务创建虚拟DockerSocket文件以替换真实DockerSocket文件;步骤3:DockerSwarm节点中的容器通过挂载的虚拟DockerSocket文件与代理服务通信,向代理服务发送DockerSwarmAPI调用;步骤4:该代理服务获取调用端系统凭据及进程ID,识别调用来源对应的容器,将容器ID加入到HTTP请求头中,并代理请求到DockerSwarm管理器中的容器管理平台的DockerSwarmAPI访问端点;步骤5:该代理服务通过API调用获取容器对应的租户及该租户下的所有容器列表;步骤6:该代理服务通过某一应用服务的名称或标签获取到该应用服务下的容器列表。2.根据权利要求1所述的Docker集群多租户下虚拟Socket通信的系统,其特征在于,所述计算机程序运行的步骤还包括步骤6之后的:步骤7:当容器里需要创建一个容器或应用时,该代理服务创建容器的API请求到容器管理平台,再由容器管理平台调度容器创建任务到某一DockerSwarm节点上的节点代理chiwen-agent组件上,由该节点代理chiwen-agent组件调用DockerAPI来创建容器...

【专利技术属性】
技术研发人员:金旻颢
申请(专利权)人:上海酷栈科技有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1