CN116954810A - 容器应用实例的创建方法、***、存储介质及程序产品 - Google Patents

容器应用实例的创建方法、***、存储介质及程序产品 Download PDF

Info

Publication number
CN116954810A
CN116954810A CN202210399836.8A CN202210399836A CN116954810A CN 116954810 A CN116954810 A CN 116954810A CN 202210399836 A CN202210399836 A CN 202210399836A CN 116954810 A CN116954810 A CN 116954810A
Authority
CN
China
Prior art keywords
virtual machine
container
management component
virtual
application instance
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.)
Pending
Application number
CN202210399836.8A
Other languages
English (en)
Inventor
周亮宇
吴尚儒
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202210399836.8A priority Critical patent/CN116954810A/zh
Publication of CN116954810A publication Critical patent/CN116954810A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)

Abstract

本申请实施例提供了一种容器应用实例的创建方法、***、存储介质及程序产品,涉及计算机和容器技术领域。所述方法应用于容器应用管理***中,容器应用管理***包括管控集群和节点集群,管控集群中包括虚拟机管理组件,节点集群中包括多个物理机,所述方法包括:虚拟机管理组件在目标物理机上创建一个虚拟机,虚拟机配置有容器管理组件,目标物理机是多个物理机中的一个物理机;容器管理组件在虚拟机中创建一个容器应用实例,容器应用实例包括至少一个容器;其中,每个容器应用实例独占一个虚拟机,且不同虚拟机之间互相隔离。本申请实施例提供的技术方案,能够提升不同容器应用实例之间的独立性,从而提升容器应用实例的隐私性和安全性。

Description

容器应用实例的创建方法、***、存储介质及程序产品
技术领域
本申请实施例涉及计算机和容器技术领域,特别涉及一种容器应用实例的创建方法、***、存储介质及程序产品。
背景技术
容器技术,是将单个操作***的资源划分到孤立的组中,以便更好的在孤立的组之间平衡有冲突的资源使用需求的技术。
在相关技术中,容器应用管理***中包括多个节点,每个节点中可以运行有多个容器应用实例,该多个容器应用实例共享该节点中的所有资源。但是,这会导致同一节点中的容器应用实例之间产生资源矛盾,例如,若一部分容器应用实例产生过多的读写请求,会影响其他容器应用实例的读写速度。
发明内容
本申请实施例提供了一种容器应用实例的创建方法、***、存储介质及程序产品,能够提升不同容器应用实例之间的独立性。所述技术方案如下:
根据本申请实施例的一个方面,提供了一种容器应用实例的创建方法,应用于容器应用管理***中,所述容器应用管理***包括管控集群和节点集群,所述管控集群中包括虚拟机管理组件,所述节点集群中包括多个物理机;所述方法包括:
所述虚拟机管理组件在目标物理机上创建一个虚拟机,所述虚拟机配置有容器管理组件,所述目标物理机是所述多个物理机中的一个物理机;
所述容器管理组件在所述虚拟机中创建一个容器应用实例,所述容器应用实例包括至少一个容器;其中,每个容器应用实例独占一个虚拟机,且不同虚拟机之间互相隔离。
根据本申请实施例的一个方面,提供了一种容器应用管理***,所述容器应用管理***包括管控集群和节点集群,所述管控集群中包括虚拟机管理组件,所述节点集群中包括多个物理机;
所述虚拟机管理组件,用于在目标物理机上创建一个虚拟机,所述虚拟机配置有容器管理组件,所述目标物理机是所述多个物理机中的一个物理机;
所述容器管理组件,用于在所述虚拟机中创建一个容器应用实例,所述容器应用实例包括至少一个容器;其中,每个容器应用实例独占一个虚拟机,且不同虚拟机之间互相隔离。
根据本申请实施例的一个方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序由处理器加载并执行以实现上述任意一个或多个主体所执行的容器应用实例的创建方法。
根据本申请实施例的一个方面,提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述任意一个或多个主体所执行的容器应用实例的创建方法。
本申请实施例提供的技术方案可以包括如下有益效果:
每需要运行一个容器应用实例时,通过虚拟机管理组件在目标物理机上创建一个虚拟机,并在这一个虚拟机中创建这一个容器应用实例,这样,每个容器应用实例都可以独占一个虚拟机,虚拟机与虚拟机之间是隔离的,从而将不同的容器应用实例之间隔离开,使得各个容器应用实例都可以在各自的虚拟机中运行,不同容器应用实例之间互不影响,从而提升了不同容器应用实例之间的独立性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
图1是本申请一个实施例提供的容器应用管理***的示意图;
图2是本申请一个实施例提供的容器应用实例的创建方法的流程图;
图3是本申请另一个实施例提供的容器应用实例的创建方法的流程图;
图4是本申请一个实施例提供的容器应用实例的创建***的框图;
图5是本申请另一个实施例提供的容器应用实例的创建***的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的方法的例子。
首先,对本申请实施例涉及的一些名词进行介绍:
容器应用管理***Kubernetes(简称k8s):一种容器操作平台,其可以实现将若干个容器组合成一个服务及动态地分配容器运行的主机等功能,为用户使用容器提供了极大的便利。Kubernetes可以是开源也可以不开源。
容器应用实例Pod:Kubernetes的基本调度单元称为“pod”。通过该种抽象类别可以把更高级别的抽象内容增加到容器化组件。一个pod一般包含一个或多个容器,这样可以保证它们一直位于主机上,并且可以共享资源。Kubernetes中的每个pod都被分配一个唯一的(在集群内的)IP地址,这样就可以允许应用程序使用同一端口,而避免了发生冲突的问题。
APIServer(Application Programming Interface Server,接口服务器):APIServer是一个关键组件,并使用Kubernetes API和JSON over HTTP(Hyper TextTransfer Protocol超文本传输协议)来提供Kubernetes的内部和外部接口。APIServer处理和验证REST请求(如获取(get)资源,添加(post)资源,更新(put)资源以及删除(delete)资源),并更新API对象的状态etcd(一个分布式键值对存储***),从而允许客户端在Worker节点(工作节点)之间配置工作负载和容器。
虚拟节点(VK,Virtual Kubelet):是开源Kubernetes的一个实现方案,它虚拟地链接Kubernetes和其他平台的API。虚拟节点的主要场景是支持Kubernetes API扩展到ACI(Applied Computational Intel,计算智能的应用)和Fargate(黑洞拦截)等无服务器容器平台中。从Kubernetes APIServer的角度来看,虚拟节点可以在其他地方调度容器,例如在云服务器API中、而不是在节点上调度容器。可选地,虚拟节点具有可插拔的体系结构。
云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
云技术基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络***的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台***进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的***后盾支撑,只能通过云计算来实现。
云计算(cloud computing)是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用***能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。
在一些实施例中,云计算的基础能力提供商会建立云计算资源池平台(简称云平台,一般称为IaaS(Infrastructure as a Service,基础设施即服务)),在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作***)、存储设备、网络设备。
按照逻辑功能划分,在IaaS层上可以部署PaaS(Platform as a Service,平台即服务)层,PaaS层之上再部署SaaS(Software as a Service,软件即服务)层,也可以直接将SaaS部署在IaaS上。PaaS为软件运行的平台,如数据库、web容器等。SaaS为各式各样的业务软件,如web门户网站、***器等。一般来说,SaaS和PaaS相对于IaaS是上层。
请参考图1,其示出了本申请一个实施例提供的容器应用管理***的示意图。如图1所示,容器应用管理***10可以包括:管控集群11和节点集群12。
管控集群11用于管控节点集群12。管控集群可以是服务器。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
管控集群11中包括虚拟机管理组件(eklet)13,负责虚拟机的生命周期管理。
节点集群12中包括多个物理机14,用于运行容器应用实例15。可选地,物理机14中可以运行有一个或多个虚拟机16;每个虚拟机16中包括一个容器应用实例15和一个容器管理组件(eklet-agent)17,虚拟机16用于运行其中的容器管理组件17,容器管理组件17负责容器应用实例15中的容器的生命周期管理。可选地,可以给容器应用实例15配安全组实现网络安全和告警(network policy)。可选地,容器管理组件17通过直连接口服务器的方式,完成容器应用实例的状态上报、容器应用实例的事件上报、同步容器应用实例更新、同步configmap、secret更新、同步集群内service更新、负责创建相关ipvs规则。可选地,容器管理组件17对外只通过一个端口(如9100端口)暴露运行数据,不暴露其他端口及操作。每个容器应用实例15中包括至少一个容器18。在一些实施例中,物理机14可以是上文介绍的服务器,也可以是终端。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。物理机14与管控集群11可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
在一些实施例中,管控集群11还包括接口服务器19、调度器(Scheduler)20和支撑组件(EKS Server,Elastic Kubernetes Service Server)21。其中,接口服务器19用于实现管控集群11中各组件之间的数据交互和通信;调度器20用于确定容器应用实例15所在的虚拟节点和目标物理机;支撑组件21用于创建容器应用实例15。可选地,客户端与接口服务器19之间建立有通信连接。
在一些实施中,节点集群12中还包括至少一个虚拟节点22,每个虚拟节点22对应于至少一个物理机14。在一些实施例中,每个虚拟机16中还包括容器网络接口(ContainerNetwork Interface)23和日志收集器(Log Collector)24,容器网络接口23用于实现容器应用实例15与外界的网络通信,日志收集器24用于收集容器应用实例15的运行日志。
下面,通过几个实施例对本申请技术方案进行介绍说明。
请参考图2,其示出了本申请一个实施例提供的容器应用实例的创建方法的流程图。在本实施例中,以该方法应用于上文图1实施例介绍的容器应用管理***中来举例说明。可选地,容器应用管理***包括管控集群和节点集群,管控集群中包括虚拟机管理组件,节点集群中包括多个物理机,该方法可以包括如下几个步骤(201~202):
步骤201,虚拟机管理组件在目标物理机上创建一个虚拟机,虚拟机配置有容器管理组件。
其中,目标物理机是多个物理机中的一个物理机。
在一些实施例中,位于管控集群中的虚拟机管理组件,可以通过其他组件在节点集群中的一个物理机(即目标物理机)上创建一个虚拟机,用于为一个容器应用实例提供运行环境。可选地,该虚拟机中配置有容器管理组件,用于管理运行该虚拟机中的容器。
可选地,虚拟机被创建后,自动配置并运行容器管理组件(即虚拟机镜像自启动容器管理组件)。
可选地,虚拟机的实现与设计可以包括但不限于以下至少一项:基于tlinux5.4内核;优化操作***启动速度:优化磁盘加密、随机数生成等模块的加载;内置日志采集、GPU驱动、各类文件存储的客户端等组件,按需开启;开放privileged特权模式,允许用户变更内核参数。
步骤202,容器管理组件在虚拟机中创建一个容器应用实例。
在一些实施例中,容器应用实例包括至少一个容器。因而,容器应用实例可以看作是容器的集合。可选地,位于同一个容器应用实例中的至少一个容器用于实现同一个实例(如某个应用程序对应的一个实例)。
其中,每个容器应用实例独占一个虚拟机,且不同虚拟机之间互相隔离。可选地,镜像拉取、容器rootfs创建、日志采集,皆在虚拟机内实现。也即,一个虚拟机仅运行一个容器应用实例,不同容器应用实例分别运行在不同虚拟机中,从而使得不同的容器应用实例所在的运行环境/操作***是相互独立、互不相干的。因而,每个虚拟机都可以看作是一个沙箱(sandbox)。容器管理组件与其创建的容器应用实例位于同一个虚拟机/沙箱中。
在一些实施例中,容器管理组件对容器应用实例中包含的容器的运行状态进行检查,在检查出运行状态存在问题的目标容器的情况下,重启目标容器。从而及时排除容器的运行故障、并减少部分容器运行异常时对容器应用实例整体运行情况的影响,提升容器和容器应用实例的运行效率。
在一些实施例中,虚拟机管理组件在基于与容器管理组件之间的心跳信息,确定出虚拟机运行故障的情况下,执行针对虚拟机的重建流程。可选地,虚拟机管理组件与容器管理组件之间建立有通信连接(如gRPC(Remote Procedure Calls,远程过程调用协议)连接)。在一些实施例中,虚拟机可能会发生故障,如网络故障。可选地,容器管理组件定期向虚拟机管理组件上报心跳信息,若虚拟机管理组件未能及时接收到心跳信息或接收到虚拟机发生故障的信息,可以认为虚拟机运行故障;之后,虚拟机管理组件可以执行针对虚拟机的重建流程,即重建一个虚拟机来运行对应的容器应用实例。从而降低虚拟机运行故障对容器应用实例运行的影响、提升容器应用实例的运行效率。
可选地,虚拟机运行故障之后,将运行故障的虚拟机删除,再执行虚拟机管理组件在目标物理机上创建一个虚拟机、容器管理组件在虚拟机中创建一个容器应用实例的过程。
在一些实施例中,容器应用实例相关的所有组件均在虚拟机中运行。
在一些实施例中,容器应用实例相关的部分组件可以在虚拟机外运行。
综上所述,本申请实施例提供的技术方案中,每需要运行一个容器应用实例时,通过虚拟机管理组件在目标物理机上创建一个虚拟机,并在这一个虚拟机中创建这一个容器应用实例,这样,每个容器应用实例都可以独占一个虚拟机,虚拟机与虚拟机之间是隔离的,从而将不同的容器应用实例之间隔离开,使得各个容器应用实例都可以在各自的虚拟机中运行,不同容器应用实例之间互不影响,从而提升了不同容器应用实例之间的独立性,进而提升容器应用实例的隐私性和安全性。
另外,本申请实施例中,由于一个容器应用实例独占一个虚拟机,在重建一个虚拟机的过程中,只会影响一个容器应用实例而不会影响其他容器应用实例,从而提升了***整体的运行效率。
请参考图3,其示出了本申请另一个实施例提供的容器应用实例的创建方法的流程图。在本实施例中,以该方法应用于上文图1实施例介绍的容器应用管理***中来举例说明。该方法可以包括如下几个步骤(301~311):
步骤301,接口服务器接收来自客户端的资源声明。
可选地,资源声明用于创建容器应用实例。在一些实施例中,接口服务器与客户端之间建立有通信连接。客户端在有需要的情况下,可以生成资源声明并向接口服务器发送该资源声明,以创建容器应用实例。
步骤302,调度器通过监测接口服务器获取资源声明。
在一些实施例中,调度器可以持续监测接口服务器,因而在接口服务器接收到上述资源声明之后,调度器可以通过监测接口服务器从接口服务器中获取资源声明。
步骤303,调度器根据各个虚拟节点的剩余计算资源,确定资源声明对应的调度结果,并向接口服务器发送调度结果。
在一些实施例中,调度结果用于指示在目标虚拟节点的目标物理机上创建容器应用实例。在一些实施例中,虚拟节点可以理解为计算资源,当虚拟节点中的部分计算资源被分配给某个任务/实例时,这部分计算资源属于被占用的计算资源,被占用的计算资源在接触占用之前无法用于运行其他任务/实例;当虚拟节点中的部分计算资源未被占用的情况下,这些计算资源可以称为是虚拟节点的剩余计算资源。
在一些实施例中,调度器可以查询各个虚拟节点的剩余计算,并选择一个剩余计算资源充足的虚拟节点中作为容器应用实例对应的虚拟节点。具体地,虚拟节点可以对应有至少一个物理机;虚拟节点的剩余计算资源,可以指示虚拟节点对应的各个物理机的剩余计算资源。调度器可以从至少一个物理机中选择一个剩余计算资源充足的物理机(即剩余计算资源满足容器应用实例的运行需求的物理机)作为目标物理机,目标物理机用于承载容器运用实例。
在一些实施例中,虚拟节点的剩余计算资源包含在虚拟节点的标签信息中;虚拟机管理组件定期从支撑组件获取各个虚拟节点的剩余计算资源,在虚拟节点的标签信息中添加或更新虚拟节点的剩余计算资源。可选地,支撑组件持续检测/获取虚拟节点的计算资源使用情况,虚拟机管理组件与支撑组件之间存在通信连接,虚拟机管理组员可以定期从支撑组件获取各个虚拟节点的计算资源使用情况,并在虚拟节点的标签信息中添加或更新虚拟节点的计算资源使用情况。
在一些实施例中,虚拟节点的计算资源使用情况,可以包括虚拟节点中已被占用的计算资源的量、剩余的计算资源的量;进一步地,虚拟节点的计算资源使用情况还可以指示虚拟节点对应的各个物理机被占用的计算资源的量、剩余的计算资源的量。
可选地,虚拟节点的标签信息保存在管控集群中的存储***中。在一些实施例中,该存储***可以是分布式存储***(如etcd***)。
在一些实施例中,调度器通过接口服务器访问上述存储***,以获取虚拟节点的标签信息,从而可以获取到虚拟节点对应的各个物理机被占用的计算资源的量、剩余的计算资源的量,从而从多个物理机中选取一个物理机作为目标物理机,目标物理机剩余的计算资源的量需要满足容器应用实例的运行需求。
步骤304,虚拟机管理组件通过监测接口服务器获取调度结果,并根据调度结果生成虚拟机创建请求。
可选地,虚拟机创建请求用于请求在目标物理机上创建虚拟机。在一些实施例中,虚拟机管理组件可以通过持续监测接口服务器,从接口服务器中获取调度结果,并根据该调度结果生成虚拟机创建请求。
步骤305,虚拟机管理组件向支撑组件发送虚拟机创建请求。
步骤306,支撑组件根据虚拟机创建请求,在目标物理机上创建一个虚拟机。
在一些实施例中,虚拟机创建请求中携带有目标物理机的标识。
步骤307,容器管理组件在虚拟机中创建一个容器应用实例。
该步骤307的部分内容与上述图2实施例中的步骤202的内容相同或相近,此处不再赘述。
在一些实施例中,容器管理组件获取容器应用实例的运行信息;通过与接口服务器之间建立的直接通信连接,向接口服务器发送运行信息;或者,向虚拟机管理组件发送运行信息,虚拟机管理组件向接口服务器转发运行信息。
在一些实施例中,容器管理组件与接口服务器之间可以建立有直接通信连接,从而使得容器管理组件与接口服务器之间可以直接进行数据交互和通信。例如,容器管理组件可以将运行信息直接发送给接口服务器,而无需虚拟机管理组件转发,从而提升容器管理组件与接口服务器之间的运行效率。
在一些实施例中,由于容器管理组件与虚拟机管理组件之间建立有通信连接、虚拟机管理组件与接口服务器之间建立有通信连接,容器管理组件可以先将运行信息发送给虚拟机管理组件,再由虚拟机管理组件将运行信息转发给接口服务器。
在一些实施例中,容器应用实例的网络命名空间与容器管理组件的网络命名空间隔离。也即,容器应用实例的网络命名与容器管理组件的网络命名需要有所区分,避免容器应用实例和容器管理组件与外界的网络连接产生冲突,而影响容器管理组件与虚拟机管理组件之间的通信,或影响容器应用实例与客户端之间的通信,从而降低网络通信异常的概率。进一步地,由于容器应用实例不使用host network(虚拟机网络),避免业务容器更改iptables(IP信息包过滤***)后影响管控面组件(即管控集群中的组件)的流量,如istio的sidecar,即避免业务网络规则影响管控集群中的组件。
在一些实施例中,容器管理组件使用虚拟机的网卡,直接与客户端建立通信连接,无需中间物理设备转发,从而节省转发导致的资源和能源损耗。
在一些实施例中,响应于容器应用实例停止运行,支撑组件删除虚拟机。若容器应用实例停止运行,容器管理组件会将容器应用实例停止运行的消息直接或间接发送至接口服务器;由于支撑组件持续监测接口服务器,支撑组件会获取到容器应用实例停止运行的消息并删除虚拟机,从而及时解除不必要的计算资源占用,进而提升计算资源的利用效率。
步骤308,接口服务器获取来自于客户端的数据获取请求,数据获取请求用于请求获取目标数据。
在一些实施例中,在容器应用实例被创建之后,容器应用实例可以在虚拟机中运行并在运行过程中产生一些数据。客户端在需要获取容器应用实例产生的数据的情况下,可以生成数据获取请求,并将该数据获取请求发送至接口服务器。可选地,数据获取请求携带有容器应用实例的标识,用于请求获取目标数据。
其中,目标数据可以是各种类型的数据,因而,通过虚拟机管理组件和容器管理组件之间的连接可以实现为各种类型的接口,如logs(查询容器管理组件日志)、exec(登录容器管理组件执行命令)、cadvisor(获取容器管理组件的运行信息)、port forward(端口转发)等接口。
步骤309,虚拟机管理组件通过监测接口服务器获取数据获取请求,并向数据获取请求对应的容器管理组件发送数据获取请求。
在一些实施例中,接口服务器或虚拟机管理组件可以根据该数据获取请求,确定其需要获取的是哪个容器应用实例的数据,虚拟机管理组件再将数据获取请求发送至相应的容器管理组件。
步骤310,数据获取请求对应的容器管理组件向虚拟机管理组件发送目标数据。
步骤311,虚拟机管理组件向接口服务器发送目标数据,接口服务器向客户端转发目标数据。
综上所述,本申请实施例提供的技术方案中,根据虚拟节点的剩余的计算资源来确定在哪个物理机上创建容器应用实例,并且本申请实施例是在确实需要运行一个新的容器应用实例的情况下,才占用计算资源来创建虚拟机以运行容器应用实例;且在容器应用实例停止运行后就随即删除相应的虚拟机,从而减少虚拟机不运行任何容器应用实例确占用计算资源的情况。也就是说,本申请实施例提供的技术方案中,虚拟机按需创建、无需即毁,实现了弹性扩容,不会或很少会有多余的空置虚拟机,进而提升虚拟机的利用效率。且由于在虚拟机级别实现了良好的隔离效果,减轻了容器使用者的运维负担。
下述为本申请***实施例,可以用于执行本申请方法实施例。对于本申请***实施例中未披露的细节,请参照本申请方法实施例。
请参考图4,其示出了本申请一个实施例提供的容器应用管理***的框图。该容器应用管理***具有实现上述容器应用实例的创建方法示例的功能。所述容器应用管理***400包括管控集群和节点集群,所述管控集群中包括虚拟机管理组件410,所述节点集群中包括多个物理机,所述容器应用管理***400还包括容器管理组件420。
所述虚拟机管理组件410,用于在目标物理机上创建一个虚拟机,所述虚拟机配置有容器管理组件420,所述目标物理机是所述多个物理机中的一个物理机。
所述容器管理组件420,用于在所述虚拟机中创建一个容器应用实例,所述容器应用实例包括至少一个容器;其中,每个容器应用实例独占一个虚拟机,且不同虚拟机之间互相隔离。
在一些实施例中,所述节点集群还包括支撑组件430。
所述虚拟机管理组件410,用于向支撑组件430发送虚拟机创建请求,所述虚拟机创建请求用于请求在所述目标物理机上创建虚拟机。
所述支撑组件430,用于根据所述虚拟机创建请求,在所述目标物理机上创建一个虚拟机。
在一些实施例中,所述管控集群中还包括接口服务器440和调度器450。
所述接口服务器440,用于接收来自客户端的资源声明,所述资源声明用于创建所述容器应用实例。
所述调度器450,用于通过监测所述接口服务器440获取所述资源声明;根据各个虚拟节点的剩余计算资源,确定所述资源声明对应的调度结果,并向所述接口服务器发送所述调度结果,所述调度结果用于指示在目标虚拟节点的目标物理机上创建所述容器应用实例。
所述虚拟机管理组件410,还用于通过监测所述接口服务器440获取所述调度结果,并根据所述调度结果生成所述虚拟机创建请求。
在一些实施例中,所述虚拟节点的剩余计算资源包含在所述虚拟节点的标签信息中;所述虚拟机管理组件410,还用于定期从所述支撑组件获取各个所述虚拟节点的剩余计算资源,在所述虚拟节点的标签信息中添加或更新所述虚拟节点的剩余计算资源。
在一些实施例中,所述接口服务器440,还用于获取来自于客户端的数据获取请求,所述数据获取请求用于请求获取目标数据。
所述虚拟机管理组件410,还用于通过监测所述接口服务器440获取所述数据获取请求,并向所述数据获取请求对应的容器管理组件420发送所述数据获取请求。
所述数据获取请求对应的容器管理组件420,用于向所述虚拟机管理组件410发送所述目标数据。
所述虚拟机管理组件410,还用于向所述接口服务器440发送所述目标数据,所述接口服务器440向所述客户端转发所述目标数据。
在一些实施例中,所述支撑组件430,还用于响应于所述容器应用实例停止运行,删除所述虚拟机。
在一些实施例中,所述容器管理组件420,还用于对所述容器应用实例中包含的容器的运行状态进行检查,在检查出所述运行状态存在问题的目标容器的情况下,重启所述目标容器。
在一些实施例中,所述容器管理组件420,还用于:
获取所述容器应用实例的运行信息;
通过与接口服务器之间建立的直接通信连接,向所述接口服务器发送所述运行信息;或者,向所述虚拟机管理组件发送所述运行信息,所述虚拟机管理组件向所述接口服务器转发所述运行信息。
在一些实施例中,所述虚拟机管理组件410,还用于在基于与所述容器管理组件420之间的心跳信息,确定出所述虚拟机运行故障的情况下,执行针对所述虚拟机的重建流程。
在一些实施例中,所述容器应用实例的网络命名空间与所述容器管理组件的网络命名空间隔离。
综上所述,本申请实施例提供的技术方案中,每需要运行一个容器应用实例时,通过虚拟机管理组件在目标物理机上创建一个虚拟机,并在这一个虚拟机中创建这一个容器应用实例,这样,每个容器应用实例都可以独占一个虚拟机,虚拟机与虚拟机之间是隔离的,从而将不同的容器应用实例之间隔离开,使得各个容器应用实例都可以在各自的虚拟机中运行,不同容器应用实例之间互不影响,从而提升了不同容器应用实例之间的独立性。
在一些实施例中,还提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集在被处理器执行时以实现上述任意一个或多个主体所执行的容器应用实例的创建方法。
可选地,该计算机可读存储介质可以包括:ROM(Read-Only Memory,只读存储器)、RAM(Random-Access Memory,随机存储器)、SSD(Solid State Drives,固态硬盘)或光盘等。其中,随机存取记忆体可以包括ReRAM(Resistance Random Access Memory,电阻式随机存取记忆体)和DRAM(Dynamic Random Access Memory,动态随机存取存储器)。
在一些实施例中,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述任意一个或多个主体所执行的容器应用实例的创建方法。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。
以上所述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (20)

1.一种容器应用实例的创建方法,其特征在于,应用于容器应用管理***中,所述容器应用管理***包括管控集群和节点集群,所述管控集群中包括虚拟机管理组件,所述节点集群中包括多个物理机;所述方法包括:
所述虚拟机管理组件在目标物理机上创建一个虚拟机,所述虚拟机配置有容器管理组件,所述目标物理机是所述多个物理机中的一个物理机;
所述容器管理组件在所述虚拟机中创建一个容器应用实例,所述容器应用实例包括至少一个容器;其中,每个容器应用实例独占一个虚拟机,且不同虚拟机之间互相隔离。
2.根据权利要求1所述的方法,其特征在于,所述虚拟机管理组件在目标物理机上创建一个虚拟机,包括:
所述虚拟机管理组件向支撑组件发送虚拟机创建请求,所述虚拟机创建请求用于请求在所述目标物理机上创建虚拟机;
所述支撑组件根据所述虚拟机创建请求,在所述目标物理机上创建一个虚拟机。
3.根据权利要求2所述的方法,其特征在于,所述管控集群中还包括接口服务器和调度器;所述方法还包括:
所述接口服务器接收来自客户端的资源声明,所述资源声明用于创建所述容器应用实例;
所述调度器通过监测所述接口服务器获取所述资源声明;
所述调度器根据各个虚拟节点的剩余计算资源,确定所述资源声明对应的调度结果,并向所述接口服务器发送所述调度结果,所述调度结果用于指示在目标虚拟节点的目标物理机上创建所述容器应用实例;
所述虚拟机管理组件通过监测所述接口服务器获取所述调度结果,并根据所述调度结果生成所述虚拟机创建请求。
4.根据权利要求3所述的方法,其特征在于,所述虚拟节点的剩余计算资源包含在所述虚拟节点的标签信息中;所述方法还包括:
所述虚拟机管理组件定期从所述支撑组件获取各个所述虚拟节点的剩余计算资源,在所述虚拟节点的标签信息中添加或更新所述虚拟节点的剩余计算资源。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
所述接口服务器获取来自于客户端的数据获取请求,所述数据获取请求用于请求获取目标数据;
所述虚拟机管理组件通过监测所述接口服务器获取所述数据获取请求,并向所述数据获取请求对应的容器管理组件发送所述数据获取请求;
所述数据获取请求对应的容器管理组件向所述虚拟机管理组件发送所述目标数据;
所述虚拟机管理组件向所述接口服务器发送所述目标数据,所述接口服务器向所述客户端转发所述目标数据。
6.根据权利要求2所述的方法,其特征在于,所述方法还包括:
响应于所述容器应用实例停止运行,所述支撑组件删除所述虚拟机。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述方法还包括:
所述容器管理组件对所述容器应用实例中包含的容器的运行状态进行检查,在检查出所述运行状态存在问题的目标容器的情况下,重启所述目标容器。
8.根据权利要求1至6任一项所述的方法,其特征在于,所述方法还包括:
所述容器管理组件获取所述容器应用实例的运行信息;
所述容器管理组件通过与接口服务器之间建立的直接通信连接,向所述接口服务器发送所述运行信息;或者,向所述虚拟机管理组件发送所述运行信息,所述虚拟机管理组件向所述接口服务器转发所述运行信息。
9.根据权利要求1至6任一项所述的方法,其特征在于,所述方法还包括:
所述虚拟机管理组件在基于与所述容器管理组件之间的心跳信息,确定出所述虚拟机运行故障的情况下,执行针对所述虚拟机的重建流程。
10.根据权利要求1至6任一项所述的方法,其特征在于,所述容器应用实例的网络命名空间与所述容器管理组件的网络命名空间隔离。
11.一种容器应用管理***,其特征在于,所述容器应用管理***包括管控集群和节点集群,所述管控集群中包括虚拟机管理组件,所述节点集群中包括多个物理机;
所述虚拟机管理组件,用于在目标物理机上创建一个虚拟机,所述虚拟机配置有容器管理组件,所述目标物理机是所述多个物理机中的一个物理机;
所述容器管理组件,用于在所述虚拟机中创建一个容器应用实例,所述容器应用实例包括至少一个容器;其中,每个容器应用实例独占一个虚拟机,且不同虚拟机之间互相隔离。
12.根据权利要求11所述的***,其特征在于,
所述虚拟机管理组件,用于向支撑组件发送虚拟机创建请求,所述虚拟机创建请求用于请求在所述目标物理机上创建虚拟机;
所述支撑组件,用于根据所述虚拟机创建请求,在所述目标物理机上创建一个虚拟机。
13.根据权利要求12所述的***,其特征在于,所述管控集群中还包括接口服务器和调度器;
所述接口服务器,用于接收来自客户端的资源声明,所述资源声明用于创建所述容器应用实例;
所述调度器,用于通过监测所述接口服务器获取所述资源声明;根据各个虚拟节点的剩余计算资源,确定所述资源声明对应的调度结果,并向所述接口服务器发送所述调度结果,所述调度结果用于指示在目标虚拟节点的目标物理机上创建所述容器应用实例;
所述虚拟机管理组件,还用于通过监测所述接口服务器获取所述调度结果,并根据所述调度结果生成所述虚拟机创建请求。
14.根据权利要求13所述的***,其特征在于,所述虚拟节点的剩余计算资源包含在所述虚拟节点的标签信息中;
所述虚拟机管理组件,还用于定期从所述支撑组件获取各个所述虚拟节点的剩余计算资源,在所述虚拟节点的标签信息中添加或更新所述虚拟节点的剩余计算资源。
15.根据权利要求13所述的***,其特征在于,
所述接口服务器,还用于获取来自于客户端的数据获取请求,所述数据获取请求用于请求获取目标数据;
所述虚拟机管理组件,还用于通过监测所述接口服务器获取所述数据获取请求,并向所述数据获取请求对应的容器管理组件发送所述数据获取请求;
所述数据获取请求对应的容器管理组件,用于向所述虚拟机管理组件发送所述目标数据;
所述虚拟机管理组件,还用于向所述接口服务器发送所述目标数据,所述接口服务器向所述客户端转发所述目标数据。
16.根据权利要求12所述的***,其特征在于,所述支撑组件,还用于响应于所述容器应用实例停止运行,删除所述虚拟机。
17.根据权利要求11至16任一项所述的***,其特征在于,所述容器管理组件,还用于对所述容器应用实例中包含的容器的运行状态进行检查,在检查出所述运行状态存在问题的目标容器的情况下,重启所述目标容器。
18.根据权利要求11至16任一项所述的***,其特征在于,所述容器管理组件,还用于:
获取所述容器应用实例的运行信息;
通过与接口服务器之间建立的直接通信连接,向所述接口服务器发送所述运行信息;或者,向所述虚拟机管理组件发送所述运行信息,所述虚拟机管理组件向所述接口服务器转发所述运行信息。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序由处理器加载并执行以实现如上述权利要求1至10任一项中任意一个或多个主体所执行的方法。
20.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序存储在计算机可读存储介质中,处理器从所述计算机可读存储介质读取并执行所述计算机程序,以实现如权利要求1至10任一项中任意一个或多个主体所执行的方法。
CN202210399836.8A 2022-04-15 2022-04-15 容器应用实例的创建方法、***、存储介质及程序产品 Pending CN116954810A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210399836.8A CN116954810A (zh) 2022-04-15 2022-04-15 容器应用实例的创建方法、***、存储介质及程序产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210399836.8A CN116954810A (zh) 2022-04-15 2022-04-15 容器应用实例的创建方法、***、存储介质及程序产品

Publications (1)

Publication Number Publication Date
CN116954810A true CN116954810A (zh) 2023-10-27

Family

ID=88458956

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210399836.8A Pending CN116954810A (zh) 2022-04-15 2022-04-15 容器应用实例的创建方法、***、存储介质及程序产品

Country Status (1)

Country Link
CN (1) CN116954810A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117270916A (zh) * 2023-11-21 2023-12-22 北京凌云雀科技有限公司 一种基于Istio的Sidecar热更新方法及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117270916A (zh) * 2023-11-21 2023-12-22 北京凌云雀科技有限公司 一种基于Istio的Sidecar热更新方法及装置
CN117270916B (zh) * 2023-11-21 2024-02-06 北京凌云雀科技有限公司 一种基于Istio的Sidecar热更新方法及装置

Similar Documents

Publication Publication Date Title
CN107181808B (zh) 一种私有云***及运行方法
US8930409B2 (en) System and method for supporting named operations in a distributed data grid
CN109976667B (zh) 一种镜像管理方法、装置及***
Verma et al. An efficient data replication and load balancing technique for fog computing environment
CN112104723B (zh) 一种多集群的数据处理***及方法
US9870247B2 (en) System and method for dynamic provisioning of applications
CN113296792B (zh) 存储方法、装置、设备、存储介质和***
US20080140857A1 (en) Service-oriented architecture and methods for direct invocation of services utilizing a service requestor invocation framework
US20080140759A1 (en) Dynamic service-oriented architecture system configuration and proxy object generation server architecture and methods
CN114787781A (zh) 用于启用高可用性受管理故障转移服务的***和方法
Netto et al. Koordinator: A service approach for replicating docker containers in kubernetes
WO2012125144A1 (en) Systems and methods for sizing resources in a cloud-based environment
CN112698838B (zh) 多云容器部署***及其容器部署方法
CN112751847A (zh) 接口调用请求的处理方法、装置、电子设备及存储介质
CN115757611A (zh) 大数据集群切换方法、装置、电子设备及存储介质
CN115086166A (zh) 计算***、容器网络配置方法及存储介质
CN116805946A (zh) 一种消息请求处理方法、装置、电子设备及存储介质
CN116954810A (zh) 容器应用实例的创建方法、***、存储介质及程序产品
CN114579250A (zh) 一种构建虚拟集群的方法、装置及存储介质
CN110049081A (zh) 用于搭建及使用高可用性Docker私库的方法和***
US10917292B2 (en) Architectural design to enable bidirectional service registration and interaction among clusters
US10896077B2 (en) Messaging abstraction layer for integration with message oriented middleware platforms
CN114615268B (zh) 基于Kubernetes集群的服务网络、监控节点、容器节点及设备
CN113472638B (zh) 边缘网关控制方法及***、装置、电子设备、存储介质
CN111905361B (zh) 游戏服务***、游戏处理方法、存储介质及设备

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