CN111324571A - 一种容器集群管理方法、装置及系统 - Google Patents
一种容器集群管理方法、装置及系统 Download PDFInfo
- Publication number
- CN111324571A CN111324571A CN202010073214.7A CN202010073214A CN111324571A CN 111324571 A CN111324571 A CN 111324571A CN 202010073214 A CN202010073214 A CN 202010073214A CN 111324571 A CN111324571 A CN 111324571A
- Authority
- CN
- China
- Prior art keywords
- container
- operation instruction
- tool
- management
- conversion
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/161—Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种容器集群管理方法、装置及系统,涉及通信技术领域,方法包括:转换工具获取容器编排引擎针对容器集群的第一操作指令,第一操作指令中至少包括需要执行操作指令的容器集群信息;转换工具将第一操作指令转换为与云计算管理平台中管理工具匹配的第二操作指令,第二操作指令中至少包括需要执行操作指令的容器集群信息以及具体的操作指令信息,第二操作指令用于指示云计算管理平台中的管理工具根据第二操作指令对容器集群进行操作。将容器编排引擎的最小资源管理单元的第一操作指令,转换为针对云计算管理平台中管理工具的最小资源管理单元的第二操作指令,能够进行容器集群的管理。
Description
技术领域
本发明实施例涉及通信技术领域,尤其涉及一种容器集群管理方法、装置及系统。
背景技术
随着容器技术的发展,容器技术和虚拟化技术已经成为一种被大家广泛认可的容器技术服务器资源共享方式,容器技术可以在按需构建容器技术操作系统实例的过程当中,为操作人员提供极大的灵活性。
现有技术中,由于云计算在处理过程中需要各种服务器资源共享,且需要构建容器技术操作系统实例,所以在云计算管理平台中需要管理大量的容器。
但是现有技术中在云计算管理平台中已经有多种组件能够实现对单一容器的管理,但是其自身没有能够对大规模容器集群进行编排调度的组件。
综上所述,现有技术中不能提供一种针对云计算管理平台中大规模容器的管理方法。
发明内容
本申请实施例提供一种容器集群管理方法、装置及系统,能够针对云计算管理平台中大规模容器进行管理。
一方面,本申请实施例提供一种容器集群管理方法,方法包括:
转换工具获取容器编排引擎针对容器集群的第一操作指令,所述第一操作指令中至少包括需要执行操作指令的容器集群信息,所述第一操作指令应用于所述容器编排引擎的最小资源管理单元;
所述转换工具将所述第一操作指令转换为与云计算管理平台中管理工具匹配的第二操作指令,所述第二操作指令中至少包括需要执行操作指令的容器集群信息以及具体的操作指令信息,所述第二操作指令应用于云计算管理平台中管理工具的最小资源管理单元,所述第二操作指令用于指示所述云计算管理平台中的管理工具根据所述第二操作指令对所述容器集群进行操作。
可选的,所述转换工具将所述第一操作指令转换为与云计算管理平台中管理工具匹配的第二操作指令,包括:
所述转换工具根据所述第一操作指令确定转换对象,将所述第一操作指令内容作为所述转换对象的对象参数;
所述转换工具通过云计算管理平台中管理工具的调用接口将所述转换对象的对象参数导入所述管理工具中,形成所述第二操作指令。
可选的,所述转换对象的对象参数中包括容器集群中各容器信息参数,所述转换工具通过云计算管理平台中管理工具的调用接口将所述转换对象的对象参数导入所述管理工具中,形成所述第二操作指令,包括:
所述转换工具将各容器信息参数导入所述管理工具中,并分别根据每个容器信息参数确定对应的第二操作指令。
可选的,所述转换工具将所述第二操作指令发送给云计算管理平台后,还包括:
所述转换工具将云计算管理平台中的管理工具对所述容器集群进行操作的操作结果作为所述容器集群的状态进行保存;
所述转换工具接收所述容器编排引擎发送的针对设定容器的状态查询请求;
所述转换工具根据所述状态查询请求在保存的容器集群操作结果中获取状态查询请求对应的查询结果;
所述转换工具将所述查询结果发送给所述容器编排引擎。
可选的,所述方法还包括:
所述转换工具接收所述云计算管理平台中的管理工具发送的容器状态消息,并根据所述容器状态消息更新容器集群的状态。
可选的,所述转换工具获取容器编排引擎针对容器集群的第一操作指令,包括:
所述转换工具并发的获取容器编排引擎针对容器集群的多个第一操作指令;
所述转换工具将所述第一操作指令转换为与云计算管理平台中管理工具匹配的第二操作指令,包括:
所述转换工具使用加锁机制,按照各第一操作指令的时间顺序,将各第一操作指令转换为对应的各第二操作指令。
可选的,所述转换工具获取容器编排引擎针对容器集群的第一操作指令前,还包括:
所述转换工具注册成为所述容器编排引擎中的一个节点。
一方面,本申请实施例提供一种容器集群管理系统,包括容器编排引擎、与所述容器编排引擎连接的转换工具,以及与所述转换工具连接的云计算管理平台中的管理工具;
所述容器编排引擎用于针对运行在所述云计算管理平台中的容器集群进行编排管理;
所述转换工具用于将所述容器编排引擎针对容器集群的第一操作指令转换为与所述云计算管理平台中管理工具匹配的第二操作指令;
所述云计算管理平台中管理工具用于执行所述第二操作指令。
一方面,本申请实施例还提供一种容器集群管理装置,包括:
获取单元,用于获取容器编排引擎针对容器集群的第一操作指令,所述第一操作指令中至少包括需要执行操作指令的容器集群信息,所述第一操作指令应用于所述容器编排引擎的最小资源管理单元;
转换单元,用于将所述第一操作指令转换为与云计算管理平台中管理工具匹配的第二操作指令,所述第二操作指令中至少包括需要执行操作指令的容器集群信息以及具体的操作指令信息,所述第二操作指令应用于云计算管理平台中管理工具的最小资源管理单元,所述第二操作指令用于指示所述云计算管理平台中的管理工具根据所述第二操作指令对所述容器集群进行操作。
可选的,所述转换单元具体用于:
根据所述第一操作指令确定转换对象,将所述第一操作指令内容作为所述转换对象的对象参数;
通过云计算管理平台中管理工具的调用接口将所述转换对象的对象参数导入所述管理工具中,形成所述第二操作指令。
可选的,所述转换对象的对象参数中包括容器集群中各容器信息参数,所述转换单元具体用于:
将各容器信息参数导入所述管理工具中,并分别根据每个容器信息参数确定对应的第二操作指令。
可选的,所述装置还包括:
查询单元,用于将云计算管理平台中的管理工具对所述容器集群进行操作的操作结果作为所述容器集群的状态进行保存;接收所述容器编排引擎发送的针对设定容器的状态查询请求;根据所述状态查询请求在保存的容器集群操作结果中获取状态查询请求对应的查询结果;将所述查询结果发送给所述容器编排引擎。
可选的,所述装置还包括:
更新单元,用于接收所述云计算管理平台中的管理工具发送的容器状态消息,并根据所述容器状态消息更新容器集群的状态。
可选的,所述获取单元具体用于:
并发的获取容器编排引擎针对容器集群的多个第一操作指令;
使用加锁机制,按照各第一操作指令的时间顺序,将各第一操作指令转换为对应的各第二操作指令。
可选的,所述装置还包括:
注册单元,用于注册成为所述容器编排引擎中的一个节点。
一方面,本申请实施例还提供一种容器集群管理系统,包括容器编排引擎、与所述容器编排引擎连接的转换工具,以及与所述转换工具连接的云计算管理平台中的管理工具;
所述容器编排引擎用于针对运行在所述云计算管理平台中的容器集群进行编排管理;
所述转换工具用于将所述容器编排引擎针对容器集群的第一操作指令转换为与所述云计算管理平台中管理工具匹配的第二操作指令;
所述云计算管理平台中管理工具用于执行所述第二操作指令。
一方面,本申请实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行计算机程序时实现上述任一种容器集群管理方法的步骤。
一方面,本申请实施例提供了一种计算机可读存储介质,其存储有可由计算机设备执行的计算机程序,当所述程序在计算机设备上运行时,使得所述计算机设备执行上述任一种容器集群管理方法的步骤。
本申请实施例提供的容器集群管理方法,可以将容器编排引擎针对容器编排引擎的最小资源管理单元的第一操作指令,转换为针对云计算管理平台中管理工具的最小资源管理单元的第二操作指令,由于容器编排引擎能够对容器集群进行管理,所以在转换为第二操作指令后,也能够使云计算管理平台中管理工具进行容器集群的管理。
通过转换工具将容器编排引擎和云计算管理平台中的管理工具融合后,对云计算管理平台而言,可以使用容器编排引擎的编排功能在云计算管理平台上部署和管理容器集群,使得云计算管理平台的用户,比如原有虚拟机用户无需更换云平台即可使用容器应用,提高了云计算管理平台在大规模容器管理方面的可用性;对容器编排引擎而言,其编排的计算资源与云计算管理平台的计算资源不再割裂,使用云计算管理平台作为基础设施即服务IaaS层,容器编排引擎可以将云计算管理平台的计算、存储、网络等资源池里的丰富资源当做自身资源池,容器编排引擎为最小资源管理单元分配计算资源时,将在云计算管理平台的资源池中寻找可用资源,之后通过转换工具完成指令转换并发送给管理工具,管理工具执行调度任务为每个容器分配计算资源,并通过转换工具将资源分配结果返回给容器编排引擎。
附图说明
为了更清楚地说明本发明实施例中的技术工具,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种容器集群管理系统的架构图示意图;
图2为本申请实施例提供的一种容器集群管理系统的架构图示意图;
图3为本申请实施例提供的一种容器集群管理系统的架构图示意图;
图4为本申请实施例提供的一种容器集群管理方法的流程示意图;
图5为本申请实施例提供的一种容器集群管理装置的结构示意图;
图6为本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
为了使本发明的目的、技术工具及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为了方便理解,下面对本申请实施例中涉及的名词进行解释:
容器:一种包含了完整的运行时环境的一种打包文件,指的是一个应用所需的全部依赖、类库、其他二进制文件、配置文件,它们统一被打入了一个包中。通过将应用平台和其依赖容器化,操作系统发行版本和其他基础环境造成的差异。一般使用Docker来指代容器。
云计算平台:也称为云平台,是指基于硬件资源和软件资源的服务,提供计算、网络和存储能力。云计算平台可以划分为3类:以数据存储为主的存储型云平台,以数据处理为主的计算型云平台以及计算和数据存储处理兼顾的综合云计算平台。云计算中讨论的服务包括基础设施即服务(IaaS),平台即服务(PaaS)和软件即服务(SaaS)三个层次的服务。平台即服务(PaaS)是云计算的重要组成部分,提供运算平台与解决工具服务。在云计算的典型层级中,PaaS层介于软件即服务与基础设施即服务之间。PaaS提供用户将云端基础设施部署与创建至客户端,或者借此获得使用编程语言、程序库与服务。用户不需要管理与控制云端基础设施(包含网络、服务器、操作系统或存储),但需要控制上层的应用程序部署与应用托管的环境。PaaS将软件研发的平台做为一种服务,以软件即服务(SaaS)模式交付给用户。PaaS提供软件部署平台,抽象掉了硬件和操作系统细节,可以无缝地扩展(scaling)。开发者只需要关注自己的业务逻辑,不需要关注底层。即PaaS为生成、测试和部署软件应用程序提供一个环境。
云计算管理平台:指的是能够对云计算相关组件进行管理的平台,一种常用的云计算管理平台为OpenStack,OpenStack是一个开源的云计算管理平台项目,是一系列软件开源项目的组合,可以通过包含OpenStack平台的各个工具或者项目处理计算、网络、存储、身份和镜像服务等核心云计算服务。还可将十余个可选项目捆绑到一起,创建独特的可部署云。在OpenStack中可以通过Zun、Nova Docker driver和Magnum工具支持容器技术。
容器编排引擎:在现代开发当中,整体式的应用早已成为过去时,如今的应用由数十乃至数百个松散结合的容器式组件构成,而这些组件需要通过相互间的协同合作,才能使既定的应用按照设计运作。容器编排是指对单独组件和应用层的工作进行组织的流程。
Kubernetes:是一个开源的容器编排引擎,用于管理云平台中多个主机上的容器化的应用,它支持自动化部署、大规模可伸缩、应用容器化管理。在生产环境中部署一个应用程序时,通常要部署该应用的多个实例以便对应用请求进行负载均衡。
Pod:是kubernetes系统的基础单元,是由用户创建或部署的最小组件,也是kubernetes系统上运行容器化应用的资源对象。Kubernetes集群中其他资源对象都是为pod这个资源对象做支撑来实现kubernetes管理应用服务的目的。
在大数据与虚拟化超融合技术的研究过程中发现,使用容器部署大数据应用时,需要的容器数量往往非常庞大,这些容器需要根据业务需求进行统一、动态的管理,随着大数据应用的容器化部署,如何在云计算管理平台上对数量庞大的容器进行高效、可靠地编排管理成为了研究重点。
现有技术中,针对容器的管理主要可以通过云计算管理平台中的管理工具进行管理,例如,OpenStack已经有多种组件能够实现对单一容器的管理,但是其自身没有能够对大规模容器集群进行编排调度的组件。
现有技术中还有一种对容器的管理方法,是通过容器编排引擎进行管理的,例如通过Kubernetes管理多个主机上的容器化的应用。Kubernetes支持自动化部署、大规模可伸缩、应用容器化管理。在生产环境中部署一个应用程序时,通常要部署该应用的多个实例以便对应用请求进行负载均衡。在Kubernetes中,我们可以创建多个容器,每个容器里面运行一个应用实例,然后通过内置的负载均衡策略,实现对这一组应用实例的管理、发现、访问,而这些细节都不需要运维人员去进行复杂的手工配置和处理。
从上述内容可知,现有技术中存在部分容器编排引擎能够管理容器集群,但是现有技术中还存在问题,就是虽然Kubernetes可以管理容器集群,但是由于容器编排引擎与云计算管理平台之间数据结构存在区别,不能直接使用容器编排引擎直接管理云计算管理平台中的容器集群,例如不能直接使用Kubernetes管理OpenStack中的容器集群。
基于上述现有技术的缺点,发明人首先分析了现有技术中云计算管理平台中的管理工具进行管理的过程,发明人认为云计算管理平台中至少可以使用容器资源管理工具、虚拟机管理工具以及容器集群部署管理工具三种工具进行管理。
具体的,容器资源管理工具是将容器作为一种资源进行管理的,通过协同云计算管理平台的其它服务来为用户提供简单的、统一的接口,用户可以通过这些接口来创建、管理容器。示例性的,在OpenStack中,Zun是一种可以将容器当资源进行管理的工具。
其次,虚拟机管理工具把容器看作一种虚拟机进行管理,对于容器的创建、启停操作都类似于虚拟机进行操作,示例性的,在OpenStack中,Nova Docker是一种虚拟机管理的工具。
再次,容器集群部署管理工具能够在云计算管理平台创建基于容器的服务,例如在OpenStack中,Magnumr是一种容器集群部署管理工具。
在了解了在云计算管理平台中的几种对于容器的管理工具后,发明人还确定了各种管理工具的缺点,首选在容器资源管理工具中,容器资源管理的对象是单个容器,无法对大规模容器集群进行编排调度。
其次在虚拟机管理工具中,对于容器的创建、启停操作都需要类似于虚拟机的操作管理过程,显然会导致容器的很多功能无法实现。
最后在容器集群部署管理工具中,组成的容器集群是运行在云计算管理平台的虚拟机中,会造成较大的资源浪费,并不是一种高效的容器管理工具。
在了解了云计算管理平台中的集中容器管理工具后,本发明的发明人还了解了容器编排引擎的工作原理,容器编排引擎具有完备的集群管理能力,多层次的安全防护和准入机制、多租户应用支撑能力、透明的服务注册和发现机制、内置只能负载均衡器、强大的故障发现和自我恢复能力、服务滚动升级和在线扩容能力、可扩展的资源自动调度机制以及多粒度的资源配额管理能力。示例性的,容器编排引擎可以是Kubernetes。
发明人构思,既然在云计算管理平台中可以使用容器资源管理工具进行容器编排调度,而容器编排引擎具有强大的管理能力,能否进行融合。
发明人发现,如果要进行融合,需要解决两个问题,第一个问题是如何实现容器编排引擎与云计算管理平台中容器资源管理工具间数据模型的相互转换。以容器编排引擎Kubernetes为例,Kubernetes所管理的对象是Pod,而在OpenStack中,容器资源管理工具所管理的对象是容器,二者为不同的数据模型,差异巨大,想要将Kubernetes与OpenStack进行融合,二者的互相转换是基础。
第二个问题是需要打通容器资源管理工具与容器编排引擎之间的功能对接。以容器编排引擎Kubernetes为例,Kubernetes能够对容器集群进行高效的编排管理,并不关心每个容器具体的创建删除;而OpenStack的容器资源管理工具可以直接对每个容器进行操作,将二者的功能进行对接融合,才能最终实现在OpenStack上对数量庞大的容器集群进行高效、可靠地编排管理。
基于上述构思,本申请实施例中提出一种转换工具,可以实现容器编排引擎与云计算管理平台中管理工具间数据模型的相互转换以及管理工具与容器编排引擎之间的功能对接。
具体的,在本申请实施例中,将容器编排引擎针对容器编排引擎的最小资源管理单元的第一操作指令,转换为针对云计算管理平台中管理工具的最小资源管理单元的第二操作指令,由于容器编排引擎能够对容器集群进行管理,所以在转换为第二操作指令后,也能够使云计算管理平台中管理工具进行容器集群的管理。
在介绍完本申请实施例的设计思想之后,下面对本申请实施例的技术工具的架构做一些简单介绍,需要说明的是,以下介绍的架构仅用于说明本申请实施例而非限定。在具体实施时,可以根据实际需要灵活地应用本申请实施例提供的技术工具。
为进一步说明本申请实施例提供的技术工具,下面结合附图以及具体实施方式对此进行详细的说明。虽然本申请实施例提供了如下述实施例或附图所示的方法操作步骤,但基于常规或者无需创造性的劳动在所述方法中可以包括更多或者更少的操作步骤。在逻辑上不存在必要因果关系的步骤中,这些步骤的执行顺序不限于本申请实施例提供的执行顺序。
参考图1,其为本申请实施例提供的一种容器集群管理系统100,该系统至少包括容器编排引擎101、与容器编排引擎101连接的转换工具102,以及与转换工具102连接的云计算管理平台103中的管理工具104。
在本申请实施例中,容器编排引擎101用于针对运行在云计算管理平台103中的容器集群进行编排管理;转换工具102用于将容器编排引擎101针对容器集群的第一操作指令转换为与云计算管理平台103中管理工具104匹配的第二操作指令;云计算管理平台103中管理工具104用于执行第二操作指令。
具体的,在本申请实施例中,容器编排引擎101能够对容器集群进行编排和管理,而云计算管理平台中管理工具只能对单一的容器进行管理,通过转换工具将容器编排引擎的容器集群管理功能与云计算管理平台中管理工具对容器的管理功能进行融合,实现了对云计算管理平台中的容器集群进行管理的过程。
在本申请实施例中,除了如图1所示的连接过程外,还可以通过结构化的展示转换工具、容器编排引擎以及云计算管理平台、管理工具之间的连接以及结构关系。
如图2所示,在本申请实施例中,最底层显示的是物理资源池,是各种物理硬件资源的合集,例如物理裸机、中央处理器CPU、内存、硬盘存储、网络交换机等。
在本申请实施例中,使用云计算管理平台来作为IaaS层的管理系统,来进行计算资源的管配。云计算管理平台也提供了管理工具,例如管理工具Zun。Zun封装了常见的容器,能够直接使用云计算管理平台管理的物理资源创建容器应用。可以充分发挥容器应用在计算性能方面的优势,容器应用使用的CPU、内存、网络、存储等资源通过云计算管理平台的统一资源调度协调器,可以和虚拟机应用在同一台物理服务器上使用不同的CPU、内存、存储资源。
如图2所示的结构中的最上层为容器编排引擎,来提供PaaS层的容器云平台,提供对容器应用的编排组织能力。容器编排引擎和云计算管理平台是两个异构系统,要容器编排引擎和云计算管理平台下的管理工具进行融合集成,需要进行系统中各种资源对象的格式统一和数据结构的转换。但是直接去修改两个系统组件的架构和源码,会对系统的其他部分组件功能和系统整体结构产生影响。因此架构设计中,采用中间插件的形式来完成如上所述的功能。采用中间组件转换工具来进行系统中数据结构的统一和转换,既不会对两个大型系统的架构产生影响,同时也能完成资源对象的对接,采用松耦合的架构完成容器云平台的设计和对接。
转换工具的目的是为了将容器编排引擎平滑连接到其他第三方云服务,即云计算管理平台,其作为容器编排引擎的工作节点来控制容器应用的启停,维护容器应用的状态。它允许容器编排引擎的工作节点由其他云服务提供商提供容器服务支持。转换工具的初始设计方案主要是将容器编排引擎应用程序接口API扩展到无服务器容器平台中,它具有可插拔的体系结构,并直接使用容器编排引擎原语,这两个特点使其易于构建。因为其组件的功能特点选型其为中间件的基础选型工具,并且其已经能够注册到容器编排引擎集群中作为一个工作节点,接收到容器编排引擎的管理指令,上报当前集群中容器服务应用的状态和节点资源使用情况。
所以如图2所示,在本申请实施例中,在底层物理资源池与最上层容器编排引擎之间还存在着转换工具,实现则了将底层物理资源池以及最上层容器编排引擎之间的功能融合的过程。
在本申请实施例中,转换工具可以是容器编排引擎中的一个节点,该节点可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
同样的,转换工具还可以具有数据库,该数据库可以是本地数据库,也可以是云数据库,在此不做赘述。
一种可选的实施例中,容器编排引擎可以是Kubernetes,云计算管理平台为OpenStack,转换工具为Virtual Kubelet,OpenStack中的管理工具为Zun。
当然,本申请实施例提供的系统架构并不限用于图1以及图2所示的系统结构,本申请实施例并不进行限制。为进一步说明本申请实施例提供的技术工具,下面结合附图以及具体实施方式对此进行详细的说明。虽然本申请实施例提供了如下述实施例或附图所示的方法操作步骤,但基于常规或者无需创造性的劳动在所述方法中可以包括更多或者更少的操作步骤。在逻辑上不存在必要因果关系的步骤中,这些步骤的执行顺序不限于本申请实施例提供的执行顺序。
下面具体阐述系统运行的过程,在本申请实施例中,容器编排引擎可以对运行在云计算管理平台的容器进行容器集群管理,在管理过程中,首先容器编排引擎需要向转换工具发送针对容器集群的第一操作指令,该指令至少包括需要执行操作指令的容器集群信息,即至少包括针对那些运行在云计算管理平台的容器进行操作。
一种可选的实施例中,容器集群信息为各容器的标识信息,例如容器集群为包括容器1、容器2以及容器3的集群,则将容器1、容器2以及容器3的标识信息加入到第一操作指令中。
在本申请实施例中,标识信息指的是容器的唯一性标识,在此不做具体限制,可以为各容器的物理地址或者物理设备的标识等。
另一种可选的实施例中,容器集群信息为该集群的标识信息,即容器1、容器2以及容器3构成容器集群1,则将容器集群1的标识信息加入到第一操作指令中,容器集群的标识信息也指的是容器集群的唯一性标识,在此不做限制。
可选的,在本申请实施例中,第一操作指令中除了包括容器集群信息以外,还需要包括针对容器集群的操作具体内容,即使需要新建容器、编排容器或者删除容器等操作,当然,对于容器集群的操作具体内容不限于上述几个操作内容,还可以包括对容器集群进行重启、关闭等操作。
转换工具在接收到容器编排引擎后,需要将第一操作指令转换为第二操作指令,但是由于第一操作指令是应用于容器编排引擎的最小资源管理单元的,第二操作指令是应用于云计算管理平台中管理工具的最小资源管理单元,所以在转换过程中,涉及到容器编排引擎以及管理工具之间的数据转换过程。
一种可选的实施例中,转换工具为每个第一操作指令确定一个转换对象,该转换对象既可以具有第一操作指令的数据内容,也可以具有第二操作指令的数据格式,所以在本申请实施例中,转换工具将第一操作指令内容作为转换对象的对象参数。
可以理解的是,在本申请实施例中,将第一操作指令中至少包括的容器集群信息也作为转换对象的对象参数,即对象参数中包括容器集群中各容器信息参数,并且,在本申请实施例中,对象参数中还包括对容器集群的操作指令。
示例性进行说明,若云计算管理平台中管理工具为Zun,容器编排引擎为Kubernetes,则通过构建转换对象ZunPod来实现第一操作指令到第二操作指令的转换。
ZunPod综合两者特点的数据结构,ZunPod至少包括了容器集群中各容器信息参数,具体的,各容器信息参数可以具体包括容器命名空间、容器名称、容器的元数据信息、容器的生命周期、容器所在节点信息、容器标识等信息。
由于Kubernetes的最小资源管理单元为Pod,则ZunPod包含了Pod命名空间、Pod名字、Pod的元数据信息、Pod的生命周期、Pod所在节点信息、容器Id等信息。
除此之外,还可以将第一操作指令中的其它信息赋值给ZunPod,并分析Pod中包含的容器的具体信息,随后将ZunPod转换成字符串对象存储到数据库中。
也就是说,在本申请实施例中,数据库中保存了每个ZunPod转换对象的各字符串以及各字符串的赋值,例如Namespaces字符串标识的是容器命名空间,而具体的命名空间的值就是Namespaces字符串标识的赋值。
在本申请实施例中,转换工具在根据第一操作指令确定转换对象以及转换对象的对象参数后,需要调用管理工具的调用接口,将转换对象的对象参数导入管理工具中。
一种可选的实施例中,调用表现层状态转化RESTful接口,将转换对象的对象参数导入管理工具中。
在本申请实施例中,转换工具在将转换对象的对象参数导入管理工具后,在数据库中新建该转换对象的新条目,保存转换对象以及转换对象的各对象参数。进一步的,云计算管理平台中管理工具的最小资源管理单元和各转换对象存在映射关系,即每个转换对象,对应云计算管理平台中管理工具的最小资源管理单元。
还有一种可选的实施例中,转换工具中还保存了第一操作指令对应的最小资源管理单元与转换对象、第二操作指令对应的最小资源管理单元的对应关系,示例性的,第一操作指令对应的最小资源管理单元为Pod,第二操作指令对应的最小资源管理单元为容器,转换对象为ZunPod,则保存了Pod、ZunPod以及容器之间的对应关系。
一种可选的实施例中,若转换工具接收到的是并发的第一操作指令,即容器编排引擎并发的发送了多个第一操作指令,则使用加锁机制,按照时间顺序,将各第一操作指令转换为第二操作指令,进一步地,可以在转换工具的数据库中按照时间顺序保存转换对象以及转换对象的对应关系。
在本申请实施例中,当转换工具将转换对象的对象参数导入所述管理工具中,形成所述第二操作指令后,则形成第二操作指令,可以理解为第二操作指令为第一操作指令的映射,即第一操作指令需要对容器集群进行操作,则第二操作指令也对容器集群中的各容器进行操作。
所以在本申请实施例中,分别根据每个容器信息参数确定对应的第二操作指令,也就是说,管理工具的管理对象是单个容器,对于容器编排引擎进行操作的容器集群,管理工具针对容器集群中的每个容器进行操作。
示例性的,第一操作指令是容器编排引擎针对容器1、容器2、容器3构成的容器集群1进行开启的指令,第一操作指令中包括的容器信息参数包括容器1的参数、容器2的参数、容器3的参数,则通过转换工具进行转换的过程中,分别针对容器1以及容器1的参数确定对应的第二操作指令,针对容器2以及容器2的参数确定对应的第二操作指令,针对容器3的参数确定对应的第二操作指令。
所以通过上述过程,管理工具能够针对每个第二操作指令对应的容器进行操作,没有改变管理工具的原有逻辑。
在本申请实施例中,当云计算管理平台中管理工具根据第二操作指令对各个容器进行操作后,将操作结果发送给转换工具,在转换工具的数据库中保存该操作结果。
当转换工具接收到容器编排引擎的查询请求后,将转换工具的数据库中保存的操作结果发送给转换工具。
一种可选的实施例中,由于转换工具中存储了转换对象与云计算管理平台中管理工具的最小资源管理单元的对应关系,所以在转换工具中也存储了最小资源管理单元的操作结果。
示例性的,在转换工具的数据库中,保存了如表1所示的各转换对象以及对应的管理工具的最小资源管理单元,在本申请实施例中,容器编排引擎的最小资源管理单元为Pod,管理工具为Zun,最小资源管理单元为容器,转换对象为ZunPod,则在表1中保存了Pod与ZunPod的对应关系,也保存了ZunPod对应的容器之间的对应关系,并进一步保存了各容器的状态信息,将容器的状态信息按照各ZunPod的参数类别进行保存,例如Namespaces,Labels,Name等参数类别进行保存。具体如表1所示。
表1
在本申请实施例中,若管理工具确定各容器的状态发生变化,即容器的参数类别的赋值发生改变或者该容器发生了编排变化或者该容器被停用或者被启用,则向转换工具发送容器状态消息,转换工具根据容器状态消息更新容器集群的状态。
在本申请实施例中,为了能够实现上述过程,除了实现了容器编排引擎与管理工具之间的数据转换,还进行了容器编排引擎与管理工具之间的功能转换。
具体的,在本申请实施例中,转换工具能够在容器编排引擎创建、删除、更新的过程中,都是将指令发布到容器编排集群的应用程序接口API上的。
所以一种可选的实施例中,若转换工具能够成为容器编排引擎中的一个节点,则可以监听API上指令。
一种可选的注册过程具体包括:
步骤S301,容器编排引擎中的主节点可以进行权限验证,权限验证的文件包括令牌文件和密钥文件,注册过程中,首先从主节点所在的服务器获取这两个文件的副本,并将这两个文件的副本拷贝到转换工具指定文件夹下。
步骤S302,在转换工具的操作系统的环境变量中设置容器编排引擎主节点的网际协议IP地址和端口。
步骤S303,转换工具在进行启动时,会从操作系统的环境变量中获取主节点的IP地址和端口,同时去指定目录下获取两个文件的副本拷贝;随后转换工具将权限验证的相关信息写入权限验证的数据结构,创建一个权限验证请求对象。
步骤S304,转换工具将权限验证对象和转换工具节点的基础信息一并发送到主节点所在IP地址的服务器的指定端口,主节点接收到验证请求对象后,对请求对象中包含的验证信息进行效验,验证成功则将转换工具节点的基础信息写入到主节点的数据库中,随后给转换工具节点发送验证注册成功的消息。
步骤S305,转换工具节点收到注册成功的消息,等待主节点发来的工作指令。主节点成功接受了转换工具的注册请求,将转换工具视为工作节点,之后的工作中,会给转换节点发送工作指令。
示例性的,以转换工具为Virtual Kubelet、容器编排器为Kubernete进行说明,Kubernetes中的master主节点,有进行权限验证的token文件和密钥文件,首先从master节点所在服务器,获取到这两个文件的副本,随后将这两个文件的副本,拷贝到VK所在服务器的指定文件夹下。需要在操作系统的环境变量中设置Kubernetes master节点的IP地址和服务请求端口。Virtual Kubelet服务进程在启动时,会去操作系统的环境变量中获取master的IP地址和服务请求端口,同时去指定目录下获取权限验证的token文件和密钥文件。随后Virtual Kubelet将权限验证的相关信息写入权限验证的数据结构,创建一个权限验证请求对象。
Virtual Kubelet将权限验证对象和Virtual Kubelet节点的基础信息一并发送到master节点所在IP地址的服务器的指定端口,master节点接收到验证请求对象后,对请求对象中包含的验证信息进行效验,验证成功则将Virtual Kubelet节点的基础信息写入到master节点的数据库中,随后给Virtual Kubelet节点发送验证注册成功的消息。
Virtual Kubelet节点收到注册成功的消息,等待master节点发来的工作指令。master节点成功接受了Virtual Kubelet的注册请求,将Virtual Kubelet视为工作节点,之后的工作中,会给Virtual Kubelet发送工作指令。
在本申请实施例中,转换工具作可以调用云计算管理平台的指令发送给管理工具的主节点,之后管理工具的主节点进行调度,完成对每个容器的具体操作。
示例性的,用户需要建立两个第一操作指令来实现一个容器也为应用,转换工具监听到两个第一操作指令后,确定了转换参数,并根据第一操作指令对转换参数进行赋值,将第一个第一操作指令中关于容器的信息提取出来,并调用云计算管理平台的API将容器创建请求发送给管理工具,第一个第一操作指令同理操作。管理工具的主服务器master接收到容器创建请求后,对两个容器进行调度,容器1被分配在了计算节点1,容器2被分配在了计算节点2。
通过上述内容可知,转换工具只是实现了容器编排引擎与管理工具之间的数据结构以及功能之间的转换,并不涉及对容器的分配的过程。
在介绍完上述系统的具体实现过程后,为了更好的解释本申请实施例中的系统处理过程,在此举例说明,在本申请实施例中,容器编排引擎为Kubernetes、转换工具为Virtual Kubelet、转换对象为ZunPod、云计算管理平台为OpenStack、管理工具为Zun。具体的架构图如图3所示,从图3中可以看出,整个系统分为三层,Kubernetes在最上层,负责编排容器实现服务注册、服务发现、负载均衡、故障发现、滚动升级等功能指令的发送,其操作对象是Pod。
中间层是Virtual Kubelet,负责实现Kubernetes和OpenStack Zun的数据模型转换和功能对接,将Kubernetes对Pod的操作转换成OpenStack Zun可以执行的命令。
最底层是OpenStack Zun,负责接收Virtual Kubelet翻译过的指令完成容器最终的创建、删除、更新等管理操作。
通过Virtual Kubelet将Kubernetes和OpenStack Zun融合后,对OpenStack而言,可以使用Kubernetes的编排功能在OpenStack上部署和管理容器集群,使得OpenStack平台的用户,比如原有虚拟机用户无需更换云平台即可使用容器应用,提高了OpenStack在大规模容器管理方面的可用性;对Kubernetes而言,其编排的计算资源与云计算管理平台的计算资源不再割裂,使用云计算管理平台作为IaaS层,Kubernets可以将云计算管理平台的计算、存储、网络等资源池里的丰富资源当做自身资源池,Kubernetes为Pod分配计算资源时,将在云计算管理平台的资源池中寻找可用资源,之后通过Virtual Kubelet完成指令转换并发送给Zun,Zun执行调度任务为每个容器分配计算资源,并通过Virtual Kubelet将资源分配结果返回给Kubernetes。
在使用Virtual Kubelet进行转换之前,首先需要将Virtual Kubelet注册到Kubernetes中,Virtual Kubelet作为Kubernetes的一个节点注册到Kubernetes集群当中,在使用Kubernetes创建、删除、更新、查找容器等资源对象时,最终命令都是发布到Kubernetes集群的API上的,Virtual Kubelet节点会监听这些API以得到相应的指令信息。
在进行注册后,Virtual Kubelet作为中间层,将对Pod的操作转换为对容器的操作,并将这些操作进行封装,调用云计算管理平台Zun的API把指令发送至Zun的主节点,之后Zun对容器进行调度,并完成对每个容器的具体操作。
需要注意的是,云计算管理平台和Kubernetes是不同的系统,云计算管理平台本身是Python语言所完成,Kubernetes是用go语言完成,两者的API无法进行直接的对接,可以使用go语言对接云计算管理平台的API,实现Virtual Kubelet对云计算管理平台资源管理的交互。
另一个注意的是,作为编排功能的一部分,Kubernetes会动态的管理Pod,当其发现Pod未按照约定进行工作时,例如Pod出现故障,Kubernetes会对Pod进行主动干预,这个功能需要容器自身状态信息及时同步给Kubernetes。为了实现这一功能,在VirtualKubelet中针对ZunPod设计了回馈机制,实现Zun管理的容器信息同步给Kubernetes。具体原理为:在约定的周期内,Virtual Kubelet调用Zun的API查询每个Pod对应的容器状态,并将状态写入数据库中的ZunPod表。然后,Virtual Kubelet会根据ZunPod的内容将容器状态信息转换为Pod状态信息,同步给Kubernetes。
基于上述容器集群管理系统的处理流程,本申请实施例提供一种容器集群管理方法,如图4所示,包括以下步骤:
步骤S401,转换工具获取容器编排引擎针对容器集群的第一操作指令,所述第一操作指令中至少包括需要执行操作指令的容器集群信息,所述第一操作指令应用于所述容器编排引擎的最小资源管理单元;
步骤S402,所述转换工具将所述第一操作指令转换为与云计算管理平台中管理工具匹配的第二操作指令,所述第二操作指令中至少包括需要执行操作指令的容器集群信息以及具体的操作指令信息,所述第二操作指令应用于云计算管理平台中管理工具的最小资源管理单元,所述第二操作指令用于指示所述云计算管理平台中的管理工具根据所述第二操作指令对所述容器集群进行操作。
可选的,所述转换工具将所述第一操作指令转换为与云计算管理平台中管理工具匹配的第二操作指令,包括:
所述转换工具根据所述第一操作指令确定转换对象,将所述第一操作指令内容作为所述转换对象的对象参数;
所述转换工具通过云计算管理平台中管理工具的调用接口将所述转换对象的对象参数导入所述管理工具中,形成所述第二操作指令。
可选的,所述转换对象的对象参数中包括容器集群中各容器信息参数,所述转换工具通过云计算管理平台中管理工具的调用接口将所述转换对象的对象参数导入所述管理工具中,形成所述第二操作指令,包括:
所述转换工具将各容器信息参数导入所述管理工具中,并分别根据每个容器信息参数确定对应的第二操作指令。
可选的,所述转换工具将所述第二操作指令发送给云计算管理平台后,还包括:
所述转换工具将云计算管理平台中的管理工具对所述容器集群进行操作的操作结果作为所述容器集群的状态进行保存;
所述转换工具接收所述容器编排引擎发送的针对设定容器的状态查询请求;
所述转换工具根据所述状态查询请求在保存的容器集群操作结果中获取状态查询请求对应的查询结果;
所述转换工具将所述查询结果发送给所述容器编排引擎。
可选的,所述方法还包括:
所述转换工具接收所述云计算管理平台中的管理工具发送的容器状态消息,并根据所述容器状态消息更新容器集群的状态。
可选的,所述转换工具获取容器编排引擎针对容器集群的第一操作指令,包括:
所述转换工具并发的获取容器编排引擎针对容器集群的多个第一操作指令;
所述转换工具将所述第一操作指令转换为与云计算管理平台中管理工具匹配的第二操作指令,包括:
所述转换工具使用加锁机制,按照各第一操作指令的时间顺序,将各第一操作指令转换为对应的各第二操作指令。
可选的,所述转换工具获取容器编排引擎针对容器集群的第一操作指令前,还包括:
所述转换工具注册成为所述容器编排引擎中的一个节点。
基于相同的技术构思,本申请实施例提供了一种容器集群管理装置500,如图5所示,包括:
获取单元501,用于获取容器编排引擎针对容器集群的第一操作指令,所述第一操作指令中至少包括需要执行操作指令的容器集群信息,所述第一操作指令应用于所述容器编排引擎的最小资源管理单元;
转换单元502,用于将所述第一操作指令转换为与云计算管理平台中管理工具匹配的第二操作指令,所述第二操作指令中至少包括需要执行操作指令的容器集群信息以及具体的操作指令信息,所述第二操作指令应用于云计算管理平台中管理工具的最小资源管理单元,所述第二操作指令用于指示所述云计算管理平台中的管理工具根据所述第二操作指令对所述容器集群进行操作。
可选的,所述转换单元502具体用于:
根据所述第一操作指令确定转换对象,将所述第一操作指令内容作为所述转换对象的对象参数;
通过云计算管理平台中管理工具的调用接口将所述转换对象的对象参数导入所述管理工具中,形成所述第二操作指令。
可选的,所述转换对象的对象参数中包括容器集群中各容器信息参数,所述转换单元502具体用于:
将各容器信息参数导入所述管理工具中,并分别根据每个容器信息参数确定对应的第二操作指令。
可选的,所述装置500还包括:
查询单元503,用于将云计算管理平台中的管理工具对所述容器集群进行操作的操作结果作为所述容器集群的状态进行保存;接收所述容器编排引擎发送的针对设定容器的状态查询请求;根据所述状态查询请求在保存的容器集群操作结果中获取状态查询请求对应的查询结果;将所述查询结果发送给所述容器编排引擎。
可选的,所述装置500还包括:
更新单元504,用于接收所述云计算管理平台中的管理工具发送的容器状态消息,并根据所述容器状态消息更新容器集群的状态。
可选的,所述获取单元501具体用于:
并发的获取容器编排引擎针对容器集群的多个第一操作指令;
使用加锁机制,按照各第一操作指令的时间顺序,将各第一操作指令转换为对应的各第二操作指令。
可选的,所述装置500还包括:
注册单元505,用于注册成为所述容器编排引擎中的一个节点。
基于相同的技术构思,本申请实施例提供了一种计算机设备,如图6所示,包括至少一个处理器601,以及与至少一个处理器连接的存储器602,本申请实施例中不限定处理器601与存储器602之间的具体连接介质,图6中处理器601和存储器602之间通过总线连接为例。总线可以分为地址总线、数据总线、控制总线等。
在本申请实施例中,存储器602存储有可被至少一个处理器601执行的指令,至少一个处理器601通过执行存储器602存储的指令,可以执行前述的容器集群管理方法中所包括的步骤。
其中,处理器601是计算机设备的控制中心,可以利用各种接口和线路连接终端设备的各个部分,通过运行或执行存储在存储器602内的指令以及调用存储在存储器602内的数据,从而获得客户端地址。可选的,处理器601可包括一个或多个处理单元,处理器601可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器601中。在一些实施例中,处理器601和存储器602可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
处理器601可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器602作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器602可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器602是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器602还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
基于相同的技术构思,本申请实施例提供了一种计算机可读存储介质,其存储有可由计算机设备执行的计算机程序,当所述程序在计算机设备上运行时,使得所述计算机设备执行容器集群管理方法的步骤。
上述计算机可读存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(MO)等)、光学存储器(例如CD、DVD、BD、HVD等)、以及半导体存储器(例如ROM、EPROM、EEPROM、非易失性存储器(NANDFLASH)、固态硬盘(SSD))等。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (11)
1.一种容器集群管理方法,其特征在于,所述方法包括:
转换工具获取容器编排引擎针对容器集群的第一操作指令,所述第一操作指令中至少包括需要执行操作指令的容器集群信息,所述第一操作指令应用于所述容器编排引擎的最小资源管理单元;
所述转换工具将所述第一操作指令转换为与云计算管理平台中管理工具匹配的第二操作指令,所述第二操作指令中至少包括需要执行操作指令的容器集群信息以及具体的操作指令信息,所述第二操作指令应用于云计算管理平台中管理工具的最小资源管理单元,所述第二操作指令用于指示所述云计算管理平台中的管理工具根据所述第二操作指令对所述容器集群进行操作。
2.根据权利要求1所述的方法,其特征在于,所述转换工具将所述第一操作指令转换为与云计算管理平台中管理工具匹配的第二操作指令,包括:
所述转换工具根据所述第一操作指令确定转换对象,将所述第一操作指令内容作为所述转换对象的对象参数;
所述转换工具通过云计算管理平台中管理工具的调用接口将所述转换对象的对象参数导入所述管理工具中,形成所述第二操作指令。
3.根据权利要求2所述的方法,其特征在于,所述转换对象的对象参数中包括容器集群中各容器信息参数,所述转换工具通过云计算管理平台中管理工具的调用接口将所述转换对象的对象参数导入所述管理工具中,形成所述第二操作指令,包括:
所述转换工具将各容器信息参数导入所述管理工具中,并分别根据每个容器信息参数确定对应的第二操作指令。
4.根据权利要求1所述的方法,其特征在于,所述转换工具将所述第二操作指令发送给云计算管理平台后,还包括:
所述转换工具将云计算管理平台中的管理工具对所述容器集群进行操作的操作结果作为所述容器集群的状态进行保存;
所述转换工具接收所述容器编排引擎发送的针对设定容器的状态查询请求;
所述转换工具根据所述状态查询请求在保存的容器集群操作结果中获取状态查询请求对应的查询结果;
所述转换工具将所述查询结果发送给所述容器编排引擎。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
所述转换工具接收所述云计算管理平台中的管理工具发送的容器状态消息,并根据所述容器状态消息更新容器集群的状态。
6.根据权利要求1所述的方法,其特征在于,所述转换工具获取容器编排引擎针对容器集群的第一操作指令,包括:
所述转换工具并发的获取容器编排引擎针对容器集群的多个第一操作指令;
所述转换工具将所述第一操作指令转换为与云计算管理平台中管理工具匹配的第二操作指令,包括:
所述转换工具使用加锁机制,按照各第一操作指令的时间顺序,将各第一操作指令转换为对应的各第二操作指令。
7.根据权利要求1所述的方法,其特征在于,所述转换工具获取容器编排引擎针对容器集群的第一操作指令前,还包括:
所述转换工具注册成为所述容器编排引擎中的一个节点。
8.一种容器集群管理系统,其特征在于,包括容器编排引擎、与所述容器编排引擎连接的转换工具,以及与所述转换工具连接的云计算管理平台中的管理工具;
所述容器编排引擎用于针对运行在所述云计算管理平台中的容器集群进行编排管理;
所述转换工具用于将所述容器编排引擎针对容器集群的第一操作指令转换为与所述云计算管理平台中管理工具匹配的第二操作指令;
所述云计算管理平台中管理工具用于执行所述第二操作指令。
9.一种容器集群管理装置,其特征在于,包括:
获取单元,用于获取容器编排引擎针对容器集群的第一操作指令,所述第一操作指令中至少包括需要执行操作指令的容器集群信息,所述第一操作指令应用于所述容器编排引擎的最小资源管理单元;
转换单元,用于将所述第一操作指令转换为与云计算管理平台中管理工具匹配的第二操作指令,所述第二操作指令中至少包括需要执行操作指令的容器集群信息以及具体的操作指令信息,所述第二操作指令应用于云计算管理平台中管理工具的最小资源管理单元,所述第二操作指令用于指示所述云计算管理平台中的管理工具根据所述第二操作指令对所述容器集群进行操作。
10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1~7任一权利要求所述方法的步骤。
11.一种计算机可读存储介质,其特征在于,其存储有可由计算机设备执行的计算机程序,当所述程序在计算机设备上运行时,使得所述计算机设备执行权利要求1~7任一权利要求所述方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010073214.7A CN111324571B (zh) | 2020-01-22 | 2020-01-22 | 一种容器集群管理方法、装置及系统 |
PCT/CN2020/104841 WO2021147288A1 (zh) | 2020-01-22 | 2020-07-27 | 一种容器集群管理方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010073214.7A CN111324571B (zh) | 2020-01-22 | 2020-01-22 | 一种容器集群管理方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111324571A true CN111324571A (zh) | 2020-06-23 |
CN111324571B CN111324571B (zh) | 2022-06-17 |
Family
ID=71172101
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010073214.7A Active CN111324571B (zh) | 2020-01-22 | 2020-01-22 | 一种容器集群管理方法、装置及系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111324571B (zh) |
WO (1) | WO2021147288A1 (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111966394A (zh) * | 2020-08-28 | 2020-11-20 | 珠海格力电器股份有限公司 | 基于etl的数据分析方法、装置、设备和存储介质 |
CN112148429A (zh) * | 2020-09-22 | 2020-12-29 | 江苏银承网络科技股份有限公司 | 用于管理容器编排引擎集群的信息处理方法及装置 |
CN112491984A (zh) * | 2020-11-13 | 2021-03-12 | 上海连尚网络科技有限公司 | 基于虚拟网桥的容器编排引擎集群管理系统 |
CN112579253A (zh) * | 2020-12-02 | 2021-03-30 | 科东(广州)软件科技有限公司 | 一种管理容器的方法及系统 |
CN113067850A (zh) * | 2021-02-20 | 2021-07-02 | 麒麟软件有限公司 | 一种多云场景下的集群编排系统 |
CN113064600A (zh) * | 2021-04-20 | 2021-07-02 | 支付宝(杭州)信息技术有限公司 | 部署应用的方法和装置 |
WO2021147288A1 (zh) * | 2020-01-22 | 2021-07-29 | 中国银联股份有限公司 | 一种容器集群管理方法、装置及系统 |
CN113419819A (zh) * | 2021-06-25 | 2021-09-21 | 重庆紫光华山智安科技有限公司 | 容器管理方法、装置、设备及介质 |
WO2023078194A1 (zh) * | 2021-11-05 | 2023-05-11 | 华为技术有限公司 | 通信方法和装置 |
CN117290076A (zh) * | 2023-11-24 | 2023-12-26 | 苏州盈数智能科技有限公司 | 一种易扩缩容的多并发任务派发的设备管理方法及系统 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114610368B (zh) * | 2022-03-28 | 2024-02-02 | 广域铭岛数字科技有限公司 | 一种平台工具链整合及维护方法、系统、设备和介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1879368A (zh) * | 2003-11-12 | 2006-12-13 | 思科技术公司 | 利用有序的加锁机制来维护诸如分组之类的项目的次序 |
US20160191623A1 (en) * | 2014-08-29 | 2016-06-30 | Aditya Vasudevan | Methods and systems of workload mobility across divergent platforms |
CN108108223A (zh) * | 2017-11-30 | 2018-06-01 | 国网浙江省电力公司信息通信分公司 | 基于Kubernetes的容器管理平台 |
US20190281112A1 (en) * | 2018-03-08 | 2019-09-12 | Nutanix, Inc. | System and method for orchestrating cloud platform operations |
CN110290189A (zh) * | 2019-06-17 | 2019-09-27 | 深圳前海微众银行股份有限公司 | 一种容器集群管理方法、装置及系统 |
US10498837B1 (en) * | 2016-08-11 | 2019-12-03 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Highly available private cloud service |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10977066B2 (en) * | 2018-04-06 | 2021-04-13 | Red Hat, Inc. | Virtual machine to container conversion and optimization |
CN108900651B (zh) * | 2018-06-22 | 2022-03-04 | 杭州才云科技有限公司 | 基于多租户环境的Kubernetes与Neutron对接方法、存储介质、设备 |
CN110532058B (zh) * | 2019-07-26 | 2022-07-15 | 济南浪潮数据技术有限公司 | 容器集群服务的管理方法、装置、设备及可读存储介质 |
CN111324571B (zh) * | 2020-01-22 | 2022-06-17 | 中国银联股份有限公司 | 一种容器集群管理方法、装置及系统 |
-
2020
- 2020-01-22 CN CN202010073214.7A patent/CN111324571B/zh active Active
- 2020-07-27 WO PCT/CN2020/104841 patent/WO2021147288A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1879368A (zh) * | 2003-11-12 | 2006-12-13 | 思科技术公司 | 利用有序的加锁机制来维护诸如分组之类的项目的次序 |
US20160191623A1 (en) * | 2014-08-29 | 2016-06-30 | Aditya Vasudevan | Methods and systems of workload mobility across divergent platforms |
US10498837B1 (en) * | 2016-08-11 | 2019-12-03 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Highly available private cloud service |
CN108108223A (zh) * | 2017-11-30 | 2018-06-01 | 国网浙江省电力公司信息通信分公司 | 基于Kubernetes的容器管理平台 |
US20190281112A1 (en) * | 2018-03-08 | 2019-09-12 | Nutanix, Inc. | System and method for orchestrating cloud platform operations |
CN110290189A (zh) * | 2019-06-17 | 2019-09-27 | 深圳前海微众银行股份有限公司 | 一种容器集群管理方法、装置及系统 |
Non-Patent Citations (1)
Title |
---|
蒋暕青: "OpenStack Zun组件详解", 《SDNLAB专注网络创新技术,HTTPS://WWW.SDNLAB.COM/20873.HTML>》 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021147288A1 (zh) * | 2020-01-22 | 2021-07-29 | 中国银联股份有限公司 | 一种容器集群管理方法、装置及系统 |
CN111966394A (zh) * | 2020-08-28 | 2020-11-20 | 珠海格力电器股份有限公司 | 基于etl的数据分析方法、装置、设备和存储介质 |
CN112148429A (zh) * | 2020-09-22 | 2020-12-29 | 江苏银承网络科技股份有限公司 | 用于管理容器编排引擎集群的信息处理方法及装置 |
CN112491984A (zh) * | 2020-11-13 | 2021-03-12 | 上海连尚网络科技有限公司 | 基于虚拟网桥的容器编排引擎集群管理系统 |
CN112579253A (zh) * | 2020-12-02 | 2021-03-30 | 科东(广州)软件科技有限公司 | 一种管理容器的方法及系统 |
CN112579253B (zh) * | 2020-12-02 | 2021-10-19 | 科东(广州)软件科技有限公司 | 一种管理容器的方法及系统 |
CN113067850A (zh) * | 2021-02-20 | 2021-07-02 | 麒麟软件有限公司 | 一种多云场景下的集群编排系统 |
CN113064600A (zh) * | 2021-04-20 | 2021-07-02 | 支付宝(杭州)信息技术有限公司 | 部署应用的方法和装置 |
CN113419819A (zh) * | 2021-06-25 | 2021-09-21 | 重庆紫光华山智安科技有限公司 | 容器管理方法、装置、设备及介质 |
CN113419819B (zh) * | 2021-06-25 | 2023-09-08 | 重庆紫光华山智安科技有限公司 | 容器管理方法、装置、设备及介质 |
WO2023078194A1 (zh) * | 2021-11-05 | 2023-05-11 | 华为技术有限公司 | 通信方法和装置 |
CN117290076A (zh) * | 2023-11-24 | 2023-12-26 | 苏州盈数智能科技有限公司 | 一种易扩缩容的多并发任务派发的设备管理方法及系统 |
CN117290076B (zh) * | 2023-11-24 | 2024-04-09 | 苏州盈数智能科技有限公司 | 一种易扩缩容的多并发任务派发的设备管理方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111324571B (zh) | 2022-06-17 |
WO2021147288A1 (zh) | 2021-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111324571B (zh) | 一种容器集群管理方法、装置及系统 | |
US20220229649A1 (en) | Conversion and restoration of computer environments to container-based implementations | |
US11829742B2 (en) | Container-based server environments | |
US11321130B2 (en) | Container orchestration in decentralized network computing environments | |
US10148736B1 (en) | Executing parallel jobs with message passing on compute clusters | |
US10303450B2 (en) | Systems and methods for a policy-driven orchestration of deployment of distributed applications | |
US8819672B2 (en) | Multi-image migration system and method | |
CN111641515B (zh) | Vnf的生命周期管理方法及装置 | |
CN111984269B (zh) | 提供应用构建服务的方法及应用构建平台 | |
US20120203823A1 (en) | Apparatus, systems and methods for deployment and management of distributed computing systems and applications | |
WO2022037612A1 (zh) | 提供应用构建服务的方法及应用构建平台、应用部署方法和系统 | |
CN106569880B (zh) | 一种Android应用间动态共享资源的方法及系统 | |
US10728169B1 (en) | Instance upgrade migration | |
Kehrer et al. | TOSCA-based container orchestration on Mesos: two-phase deployment of cloud applications using container-based artifacts | |
US11948005B2 (en) | Managed integration of constituent services of multi-service applications | |
US11941413B2 (en) | Managed control plane service | |
CN112199200B (zh) | 资源调度方法、装置、计算机设备和存储介质 | |
Tang et al. | Application centric lifecycle framework in cloud | |
Bonetta et al. | An architectural style for liquid web services | |
JP2024501005A (ja) | コンテナクラスタのための管理方法および装置 | |
Merzky et al. | Application level interoperability between clouds and grids | |
CN116028163A (zh) | 一种容器组的动态链接库调度方法、装置及存储介质 | |
Wang et al. | Reg: An ultra-lightweight container that maximizes memory sharing and minimizes the runtime environment | |
CN115525396A (zh) | 基于云原生的应用管理方法及装置 | |
US10417051B2 (en) | Synchronizing shared resources in an order processing environment using a synchronization component |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |