CN111614490B - 基于顶级容器集群对托管容器集群的管理***及方法 - Google Patents
基于顶级容器集群对托管容器集群的管理***及方法 Download PDFInfo
- Publication number
- CN111614490B CN111614490B CN202010355978.5A CN202010355978A CN111614490B CN 111614490 B CN111614490 B CN 111614490B CN 202010355978 A CN202010355978 A CN 202010355978A CN 111614490 B CN111614490 B CN 111614490B
- Authority
- CN
- China
- Prior art keywords
- cluster
- node
- resource
- master
- container
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0893—Assignment of logical groups to network elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/0816—Configuration setting characterised by the conditions triggering a change of settings the condition being an adaptation, e.g. in response to network events
-
- 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)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
- Container, Conveyance, Adherence, Positioning, Of Wafer (AREA)
Abstract
本公开实施例提供一种基于顶级容器集群对托管容器集群的管理***、基于顶级容器集群对托管容器集群中主节点的管理方法及电子设备。顶级容器集群包括:至少一个顶级主节点和至少一个顶级计算节点,所述顶级计算节点用于部署和运行容器pod,所述顶级主节点用于对所述顶级计算节点进行控制;所述托管容器集群包括:至少一个主节点和至少一个计算节点,所述计算节点用于部署和运行容器pod,所述主节点用于对所述计算节点进行控制;所述托管容器集群中的主节点以容器pod的形式运行在所述顶级容器集群的顶级计算节点中。根据本公开实施例,可以减少顶级容器集群对托管容器集群中主节点的管理复杂度。
Description
技术领域
本公开涉及容器管理技术领域,更具体地,涉及一种基于顶级容器集群对托管容器集群的管理***,一种基于顶级容器集群对托管容器集群中主节点的管理方法,一种基于顶级容器集群对托管容器集群中主节点的管理***、一种电子设备以及一种计算机可读存储介质。
背景技术
Kubernetes是基于容器的集群管理***,Kubernetes集群主要包括两个部分:主节点master node和与主节点通信连接的计算节点work node。其中,计算节点上部署有容器pod,主节点负责对计算节点进行控制和管理。
托管容器集群Kubernetes Cluster是指将用户虚拟私有云(VirtualPrivateCloud,VPC)内的主节点master node部署在云计算服务商的VPC内,并使得主节点master node能够与用户VPC内的计算节点work node进行通信。为了实现对托管容器集群Kubernetes Cluster的管理,会在云服务提供商的VPC内搭建用于管理托管容器集群Kubernetes Cluster的k8s集群,称为顶级容器集群top Kubernetes Cluster。在顶级容器集群top Kubernetes Cluster中,包括顶级主节点top master node和与其通信连接的顶级计算节点top work node,顶级主节点top master node负责控制和管理顶级计算节点top work node。
在现有的顶级容器集群top Kubernetes Cluster创建托管容器集群KubernetesCluster的主节点master node所需的所有资源的方案中,存在API接口的频繁调用的现象,从而导致前后端的交互次数多,接口设计复杂,且需要单独开发顶级容器集群topKubernetes Cluster的服务,也会导致实现逻辑的增加。因此,有必要针对上述现有技术中存在的至少一个问题进行改进。
发明内容
本公开实施例的一个目的是提供一种基于顶级容器集群对托管容器集群中主节点的管理的新的技术方案。
根据本公开的第一方面,提供了一种基于顶级容器集群对托管容器集群的管理***,其中,所述顶级容器集群包括:至少一个顶级主节点和至少一个顶级计算节点,所述顶级计算节点用于部署和运行容器pod,所述顶级主节点用于对所述顶级计算节点进行控制;所述托管容器集群包括:至少一个主节点和至少一个计算节点,所述计算节点用于部署和运行容器pod,所述主节点用于对所述计算节点进行控制;所述托管容器集群中的主节点以容器pod的形式运行在所述顶级容器集群的顶级计算节点中。
根据本公开的第二方面,提供了一种基于顶级容器集群对托管容器集群中主节点的管理方法,其中,所述顶级容器集群包括:至少一个顶级主节点和至少一个顶级计算节点,所述顶级计算节点用于部署和运行容器pod,所述顶级主节点用于对所述顶级计算节点进行控制;所述托管容器集群包括:至少一个主节点和至少一个计算节点,所述计算节点用于部署和运行容器pod,所述主节点用于对所述计算节点进行控制;所述托管容器集群中的主节点以容器pod形式运行在所述顶级容器集群的顶级计算节点中;
所述至少一个顶级计算节点中有一个部署有集群自定义资源控制器,所述集群自定义资源控制器用于管理其他所述顶级计算节点中的集群自定义资源,所述托管容器集群中的主节点所对应的容器pod被预定义为一种集群自定义资源;
所述集群自定义资源控制器通过以下方法管理其他所述顶级计算节点中以容器pod形式运行的所述主节点:
监听所述主节点是否发生预定义事件;
当所述预定义事件发生,启动与所述预定义事件对应的资源配置任务以对所述主节点进行管理。
可选地,所述预定义事件包括主节点创建事件、主节点删除事件和主节点更新事件中的任一个或多个。
可选地,所述当所述预定义事件发生,启动与所述预定义事件对应的资源配置任务以对所述主节点进行管理,包括:
当所述主节点创建事件发生时,启动资源配置创建任务,所述资源配置创建任务用于:
创建主节点的master deployment资源,master service资源,namespace资源以及secret资源;
为所述主节点配置对应的弹性网卡及路由信息;以及
为所述托管容器集群配置存储服务集群。
可选地,所述为所述主节点服务配置对应的弹性网卡及路由信息,包括:
在所述master deployment资源所在的宿主机上创建并挂载所述弹性网卡,并将所述弹性网卡的IP地址绑定至所述主节点上;以及,
为所述master deployment资源中的容器pod配置所述路由信息。
可选地,所述当所述预定义事件发生,启动与所述预定义事件对应的资源配置任务以对所述主节点进行管理,包括:
当所述主节点删除事件发生时,启动资源配置删除任务,所述资源配置删除任务用于:
删除所述主节点的master deployment资源,master service资源,namespace资源以及secret资源。
可选地,所述当所述预定义事件发生,启动与所述预定义事件对应的资源配置任务以对所述主节点进行管理,包括:
当所述主节点更新事件发生时,启动资源配置更新任务,所述资源配置更新任务用于:
根据所述主节点更新事件更新所述主节点的master deployment资源,masterservice资源,namespace资源和/或secret资源。
根据本公开的第三方面,提供了一种基于顶级容器集群对托管容器集群中主节点的管理***,其中,所述顶级容器集群包括:至少一个顶级主节点和至少一个顶级计算节点,所述顶级计算节点用于部署和运行容器pod,所述顶级主节点用于对所述顶级计算节点进行控制;所述托管容器集群包括:至少一个主节点和至少一个计算节点,所述计算节点用于部署和运行容器pod,所述主节点用于对所述计算节点进行控制;所述托管容器集群中的主节点以容器pod形式运行在所述顶级容器集群的顶级计算节点中;
所述至少一个顶级计算节点中有一个部署有集群自定义资源控制器,所述集群自定义资源控制器用于管理其他所述顶级计算节点中的集群自定义资源,所述托管容器集群中的主节点所对应的容器pod被预定义为一种集群自定义资源;
所述集群自定义资源控制器用于管理其他所述顶级计算节点中以容器pod形式运行的所述主节点;所述集群自定义资源控制器中包括:
监听模块,用于监听所述主节点是否发生预定义事件;
启动模块,用于当所述预定义事件发生,启动与所述预定义事件对应的资源配置任务以对所述主节点进行管理。
根据本公开的第四方面,提供了一种电子设备,所述电子设备包括:
存储器,用于存储可执行命令;
处理器,用于在所述可执行命令的控制下,执行如本公开的第二方面中任一项所述的基于顶级容器集群对托管容器集群中主节点的管理方法。
根据本公开的第五方面,提供了一种计算机可读存储介质,存储有可执行指令,所述可执行指令被处理器执行时如本公开的第二方面中任一项所述的基于顶级容器集群对托管容器集群中主节点的管理方法。
根据本公开的一个实施例,可以减少顶级容器集群对托管容器集群中主节点的管理的复杂度。
通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。
附图说明
被结合在说明书中并构成说明书的一部分的附图示出了本公开的实施例,并且连同其说明一起用于解释本公开的原理。
图1是现有的k8s集群的架构示意图;
图2是现有的托管容器集群的架构示意图;
图3为可以应用根据本公开实施例的基于顶级容器集群对托管容器集群中主节点的管理方法的服务器的结构示意图;
图4是根据本公开实施例的基于顶级容器集群对托管容器集群中主节点的管理方法的流程示意图;
图5是根据本公开实施例的顶级容器集群的架构示意图;
图6是根据本公开实施例的基于顶级容器集群对托管容器集群中主节点的管理***的结构示意图;
图7根据本公开实施例的电子设备的原理框图。
具体实施方式
现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人物已知的技术、方法和设备可能不作详细讨论,但在适当情况下,该技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
<应用环境>
在云计算的商业模式下,用户可以借助云计算服务提供商的平台轻松搭建k8s集群。由于云计算服务商通常在同一资源池内通过虚拟化技术为多个用户提供服务,如图1所示,为了实现用户之间的隔离,通常,将每个用户的k8s集群创建在其VPC网络环境中,用户可以通过云服务提供商平台中的控制台对其k8s集群内的主节点进行管理。
在这种模式下,如果用户的k8s集群出现问题,需要用户将密钥授权给云服务提供商,以使云服务提供商的运维人员通过密钥的加密解密的方式登陆到用户的VPC内进行操作以解决问题。可想而知,当用户量很大时,用户管理复杂度会逐渐增大,人力成本及时间成本也随之增加。
为降低用户管理复杂度,现有技术采用的解决办法是:将用户VPC内的主节点部署在云计算服务商的VPC内,并通过网络技术的改进使得主节点能够与用户VPC内的计算节点进行通信,从而形成了如图2所示的托管容器集群Kubernetes Cluster的架构。
进一步地,云服务提供商为了实现对托管容器集群Kubernetes Cluster的管理,在云服务提供商的VPC内搭建了用于管理托管容器集群Kubernetes Cluster的k8s集群,为了便于描述,在本公开中,称之为顶级容器集群top Kubernetes Cluster。该顶级容器集群top Kubernetes Cluster中包括顶级主节点top master node和与其通信连接的顶级计算节点top work node,其中,顶级计算节点top work node上部署有容器pod,该容器pod用于管理托管容器集群Kubernetes Cluster中的主节点,以使托管容器集群KubernetesCluster中的主节点master node以pod的方式运行,在此,为了区别于托管容器集群Kubernetes Cluster中的pod,本公开中,将顶级计算节点top work node上的pod称为Master pod,顶级主节点top master node负责对顶级计算节点top work node进行控制和管理。
在顶级容器集群top Kubernetes Cluster中创建托管容器集群KubernetesCluster的主节点所需的所有资源时,需要分别调用k8s集群的应用程序(Application,API)接口创建资源,如master deployment,master service,secret配置信息等资源均需要单独调用k8s集群的API接口以创建对应的资源。另外,托管容器集群KubernetesCluster中的每一个主节点master node所对应的Master pod的创建都需要单独调用顶级容器集群top Kubernetes Cluster的API接口,这种频繁的接口调用会导致前后端的交互次数多,接口设计复杂。
另外,托管容器集群Kubernetes Cluster中的主节点master node所对应的Master pod创建后,平台层需要单独开发服务,并将开发的该服务运行在顶级容器集群topKubernetes Cluster中,该服务用于为Master pod完成弹性网卡(Elastic NetworkInterfaces,ENI)的创建、挂载以及路由信息的更新。该服务需要监听所有masterdeployment的创建,并判断是否是为托管容器集群Kubernetes Cluster的主节点masternode创建的。这导致服务性能不佳,且额外开发一个后端服务也会导致实现逻辑的增加。
因此,本公开实施例提出一种基于自定义资源类型机制(Custom ResourceDefinition,CRD)的基于顶级容器集群top Kubernetes Cluster对托管容器集群Kubernetes Cluster中主节点的管理方法,通过将托管容器集群Kubernetes Cluster的主节点master node所对应的容器pod预定义为一种集群自定义资源,命名为cluster-crd,并针对cluster-crd开发对应的集群自定义资源控制器Cluster CRD Controller,将该集群自定义资源控制器Cluster CRD Controller运行在顶级容器集群top KubernetesCluster中的一个顶级计算节点top work node上,以监听顶级容器集群top KubernetesCluster的其他顶级计算节点中托管容器集群Kubernetes Cluster的主节点master node的集群自定义资源cluster-crd的创建事件、删除事件和更新事件,从而可以在不修改kubernetes源码或创建自定义API server的情况下,在kubernetes API中增加新的资源类型,大大提高了kubernetes的扩展能力。
<硬件配置>
图3为可以应用根据本公开实施例的基于顶级容器集群对托管容器集群中主节点的管理方法的服务器的组成结构示意图。
如图3所示,该服务器101可以是刀片服务器、机架式服务器等形式,也可以是部署在云端的服务器集群。在一些实施例中,每个服务器可以包括硬件,软件,或用于执行服务器所支持或实现的合适功能的内嵌逻辑组件或两个或多个此类组件的组合。
在一个例子中,服务器101也可以是一台计算机。该服务器101可以是物理机,也可以是虚拟机。
服务器101的具体配置可以包括但不限于:处理器1011、存储器1012、接口装置1013、通信装置1014、输入装置1015、输出装置1016。处理器1011可以包括但不限于中央处理器CPU、微处理器MCU等。存储器1012可以包括但不限于ROM(只读存储器)、RAM(随机存取存储器)、诸如硬盘的非易失性存储器等。接口装置1013可以包括但不限于USB接口、串行接口、并行接口等。通信装置1014例如能够进行有线通信或无线通信,具体地可以包括WiFi通信、蓝牙通信、2G/3G/4G/5G通信等。输入装置1015包括但不限于键盘、鼠标、触摸屏等。输出装置1016包括但不限于显示屏等。尽管服务器也可以包括扬声器、麦克风等等,但是,这些部件与本公开的实施例无关,故在此省略。
应用于本公开的实施例中,服务器101的存储器1012用于存储指令,该指令用于控制该处理器1011进行操作以执行本公开实施例提供的任意一项的基于顶级容器集群对托管容器集群中主节点的管理方法。
图3所示的服务器仅仅是说明性的并且绝不意味着对本公开实施例、其应用或使用的任何限制。本领域技术人员应当理解,尽管前面描述了服务器的多个装置,但是,本公开实施例可以仅涉及其中的部分装置。
本领域技术人员可以根据本公开实施例所公开的方案设计指令。指令如何控制处理器进行操作,是本领域公知技术,故在此不再详细描述。
<***实施例>
本实施例的基于顶级容器集群对托管容器集群的管理***中,顶级容器集群TopKubernetes Cluster包括:至少一个顶级主节点Top Master node和至少一个顶级计算节点Top Work node,所述顶级计算节点Top Master node用于部署和运行容器pod,所述顶级主节点Top Master node用于对所述顶级计算节点Top Master node进行控制;所述托管容器集群Kubernetes Cluster包括:至少一个主节点Master node和至少一个计算节点Worknode,所述计算节点Work node用于部署和运行容器pod,所述主节点Master node用于对所述计算节点Work node进行控制;所述托管容器集群Kubernetes Cluster中的主节点Master node以容器pod的形式运行在所述顶级容器集群Top Kubernetes Cluster的顶级计算节点Top Work node中。
<方法实施例>
在kubernetes集群中提供了很多默认资源类型,如Pod,Deployment,Service,Volume等,这些默认资源虽然能够满足大多数日常***部署和管理的需求,但是,在一些特殊的需求场景下,这些现有资源类型就无法满足需求了,因此,本实施例利用CRD机制,使用户可以在不修改kubernetes源码或创建自定义的API server的情况下,在kubernetes API中增加新的资源类型,从而大大提升了kubernetes的扩展能力。
本实施例提供了的主节点服务资源的处理方法,例如可以由如图3所示的服务器101执行。
本实施例的主节点服务资源的处理方法具体可以应用于如上述***实施例所述的基于顶级容器集群Top Kubernetes Cluster对托管容器集群Kubernetes Cluster的管理***中。其中,所述至少一个顶级计算节点Top work node中有一个部署有集群自定义资源控制器Cluster CRD Controller,所述集群自定义资源控制器Cluster CRD Controller用于管理其他所述顶级计算节点Top work node中的集群自定义资源,所述托管容器集群Kubernetes Cluster中的主节点Master node所对应的容器pod被预定义为一种集群自定义资源;所述集群自定义资源控制器Cluster CRD Controller通过如图4所示的方法管理其他所述顶级计算节点Top work node中以容器pod形式运行的所述主节点。
具体的,如图4所示,该基于顶级容器集群对托管容器集群中主节点的管理方法可以包括如下步骤2100~步骤2200:
在步骤2100,监听主节点是否发生预定义事件。
具体的,该预定义事件可以包括主节点创建事件、主节点删除事件和主节点更新事件中的任意一个或多个。在本实施例中,将托管容器集群Kubernetes Cluster的主节点Master Node所对应的容器pod定义为一种集群自定义资源,命名为cluster-crd,并为cluster-crd创建用于管理该托管容器集群Kubernetes Cluster中的主节点Master Node的预定义事件的集群自定义资源控制器Cluster CRD Controller,并针对不同的预定义事件启动对应的资源配置任务。
其中,存储服务数据库是kubernetes的存储服务,通常以集群的方式进行部署。集群自定义资源控制器Cluster CRD Controller通过kube-apiserver接口创建集群自定义资源集群自定义资源cluster-crd时,这些数据会被记录到存储服务数据库中。在实际应用中,集群自定义资源控制器Cluster CRD Controller具体可以对存储服务数据库中集群自定义资源cluster-crd的变化进行监听。
在步骤2200,当该预定义事件发生,启动与所述预定义事件对应的资源配置任务以对所述主节点进行管理。
可选地,当集群自定义资源控制器Cluster CRD Controller监听到存储服务数据库中的集群自定义资源cluster-crd发生变化时,该集群自定义资源控制器Cluster CRDController会先为该托管容器集群创建证书,该证书可以理解为公钥,用户可以凭借该证书访问托管容器集群Kubernetes Cluster中的主节点Master Node。
接着,该集群自定义资源控制器Cluster CRD Controller监听到所述主节点创建事件发生时,会启动资源配置创建任务,该资源配置创建任务可以用于:根据crd配置参数创建主节点的master deployment资源,master service资源,namespace资源以及secret资源;为该主节点配置对应的弹性网卡及路由信息;为该托管容器集群KubernetesCluster配置存储服务集群。在一个例子中,存储服务集群可以是etcd数据库,以集群的方式进行部署。
其中,crd配置参数是在预先定义CRD时生成的,该配置参数用于描述需要创建哪些资源。master deployment资源用于按照一定的规则管理deployment中的pod的行为,master service资源是master pod的负载均衡服务,作为master pod的访问入口。
例如,master deployment资源的创建流程为:根据预先定义的yaml文件创建master deployment,创建的master deployment就是保存在存储服务中的一条记录,deployment controller监听到master deployment的创建之后根据yaml文件中的定义创建replicaset和master pod。其中,该yaml文件中定义了replicaset的属性、副本数量,pod的属性、容器镜像、启动参数等。
该资源配置创建任务在为该主节点配置对应的弹性网卡及路由信息时,通过kube-apiserver接口查询创建的master pod的信息,以获取master deployment所在的宿主机的信息,并根据所获取的宿主机信息,在该master deployment资源所在的宿主机上创建并挂载该弹性网卡,并将该弹性网卡的IP地址绑定至该主节点上;以及,为该masterdeployment资源中的pod配置该路由信息,以使用户的master pod可以访问托管容器集群Kubernetes Cluster中的pod和service。
可选地,当集群自定义资源控制器Cluster CRD Controller监听到该主节点删除事件发生时,启动资源配置删除任务,所述资源配置删除任务用于删除该主节点对应的master deployment资源,master service资源,namespace资源以及secret资源。
可选地,当集群自定义资源控制器Cluster CRD Controller监听到该主节点更新事件发生时,启动资源配置更新任务,所述资源配置更新任务用于:根据该主节点更新事件更新该主节点的master deployment资源,master service资源,namespace资源和/或secret资源。
例如,当集群自定义资源cluster-crd配置信息中master pod的副本数量发生变化时,该主节点更新事件发生,相应的,该集群自定义资源控制器Cluster CRD Controller启动的资源配置更新任务可以根据集群自定义资源cluster-crd配置信息创建或删除对应于副本数量的master pod,以使实际的master pod的副本数量与变化后的一致。
又例如,当集群自定义资源cluster-crd配置信息中master pod的规格,如内存大小、内核数量等发生变化时,该主节点更新事件发生,相应的,该集群自定义资源控制器Cluster CRD Controller启动的资源配置更新任务可以根据集群自定义资源cluster-crd配置信息对master pod的资源使用情况的配置进行相应的调整。
在一个例子中,如图5所示,该顶级容器集群Top Kubernetes Cluster,该托管容器集群Kubernetes Cluster(即图5中的用户k8s集群)。托管容器集群Kubernetes Cluster的主节点Master Node以pod的形式运行在顶级容器集群Top Kubernetes Cluster中,计算节点Work Node是用户vpc中的虚拟机或者物理机。计算节点Work Node的管理工具kubelet向主节点Master Node的API接口服务apiserver上报状态并监听本节点上资源的状态。
顶级容器集群Top Kubernetes Cluster用于管理和维护托管容器集群Kubernetes Cluster中Master Node。其中,该顶级容器集群Top Kubernetes Cluster中包括顶级主节点Top Master Node和多个顶级计算节点Top Work Node,实际应用中,为了容灾和负载均衡,通常可以将顶级主节点Top Master Node设置为3个。多个顶级主节点TopMaster Node中,有一个顶级主节点Top Master Node上部署有集群自定义资源控制器Cluster CRD Controller,用于为多个用户服务,在其他的顶级计算节点Top Work Node中,每个顶级计算节点Top Work Node对应一个用户。
图5中,集群自定义资源控制器Cluster CRD Controller和集中式监控和管理平台nginx controller是平台层服务,这两个服务均用于为多个用户提供服务,其中,集群自定义资源控制器Cluster CRD Controller负责监听集群自定义资源cluster-crd的变化,包括创建集群自定义资源cluster-crd,删除集群自定义资源cluster-crd和集群自定义资源cluster-crd;nginx controller负责创建主服务master service。顶级容器集群TopKubernetes Cluster的管理控制中心kube-controller-manager中有对应的deploymentcontroller,专门负责处理deployment的各种操作。etcd提供存储服务,以集群的方式进行部署。
以上已结合附图和例子对本实施例的基于顶级容器集群Top KubernetesCluster对托管容器集群Kubernetes Cluster中主节点的管理方法进行了说明。本实施例的方法应用于基于顶级容器集群Top Kubernetes Cluster对托管容器集群KubernetesCluster的管理***中,该***中的顶级容器集群Top Kubernetes Cluster包括:至少一个顶级主节点Top Master Node和至少一个顶级计算节点Top Work Node,所述顶级计算节点Top Work Node用于部署和运行容器pod,所述顶级主节点Top Master Node用于对所述顶级计算节点Top Work Node进行控制;该***中的托管容器集群Kubernetes Cluster包括:至少一个主节点Master Node和至少一个计算节点Work Node,所述计算节点Work Node用于部署和运行容器pod,所述主节点Master Node用于对所述计算节点Work Node进行控制;所述托管容器集群Kubernetes Cluster中的主节点Master Node以容器pod形式运行在所述顶级容器集群Top Kubernetes Cluster的顶级计算节点Top Work Node中。所述至少一个顶级计算节点Top Work Node中有一个部署有集群自定义资源控制器Cluster CRDController,所述集群自定义资源控制器Cluster CRD Controller用于管理其他所述顶级计算节点Top Work Node中的集群自定义资源cluster-crd,所述托管容器集群KubernetesCluster中的主节点Master Node所对应的容器pod被预定义为一种集群自定义资源cluster-crd;集群自定义资源控制器Cluster CRD Controller通过监听所述主节点是否发生预定义事件;当所述预定义事件发生,启动与所述预定义事件对应的资源配置任务以对所述主节点进行管理的方式,管理其他所述顶级计算节点Top Work Node中以容器pod形式运行的所述主节点。从而通过使用集群自定义资源cluster-crd与集群自定义资源控制器Cluster CRD Controller的扩展开发方式封装托管容器集群Kubernetes Cluster主节点资源的配置处理,可以减少顶级容器集群Top Kubernetes Cluster对托管容器集群Kubernetes Cluster中主节点的管理的复杂度。
<装置实施例>
本实施例提供一种基于顶级容器集群对托管容器集群中主节点的管理***,顶级容器集群Top Kubernetes Cluster包括:至少一个顶级主节点Top Master Node和至少一个顶级计算节点Top Work Node,所述顶级计算节点Top Work Node用于部署和运行容器pod,所述顶级主节点Top Master Node用于对所述顶级计算节点Top Work Node进行控制;该***中的托管容器集群Kubernetes Cluster包括:至少一个主节点Master Node和至少一个计算节点Work Node,所述计算节点Work Node用于部署和运行容器pod,所述主节点Master Node用于对所述计算节点Work Node进行控制;所述托管容器集群KubernetesCluster中的主节点Master Node以容器pod形式运行在所述顶级容器集群Top KubernetesCluster的顶级计算节点Top Work Node中。所述至少一个顶级计算节点Top Work Node中有一个部署有集群自定义资源控制器Cluster CRD Controller,所述集群自定义资源控制器Cluster CRD Controller用于管理其他所述顶级计算节点Top Work Node中的集群自定义资源cluster-crd,所述托管容器集群Kubernetes Cluster中的主节点Master Node所对应的容器pod被预定义为一种集群自定义资源cluster-crd。其中,所述集群自定义资源控制器Cluster CRD Controller用于管理其他所述顶级计算节点Top Work Node中以容器pod形式运行的所述主节点。
如图6所示,所述集群自定义资源控制器Cluster CRD Controller 3000中包括:监听模块3100和配置模块3200。
其中,该监听模块3100用于监听所述主节点是否发生预定义事件;
配置模块3200用于当所述预定义事件发生,启动与所述预定义事件对应的资源配置任务以对所述主节点进行管理。
其中,所述预定义事件包括主节点创建事件、主节点删除事件和主节点更新事件中的任一个或多个。
在一个例子中,该配置模块3200具体可以用于:当所述主节点创建事件发生时,启动资源配置创建任务,所述资源配置创建任务用于:创建主节点的master deployment资源,master service资源,namespace资源以及secret资源;为所述主节点配置对应的弹性网卡及路由信息;以及为所述托管容器集群配置存储服务集群。
具体的,该配置模块3200可以用于在该master deployment资源所在的宿主机上创建并挂载该弹性网卡,并将该弹性网卡的IP地址绑定至该主节点上;以及,为该masterdeployment资源中的容器pod配置该路由信息。
在另一个例子中,该配置模块3200具体可以用于当所述主节点删除事件发生时,启动资源配置删除任务,所述资源配置删除任务用于:删除所述主节点的masterdeployment资源,master service资源,namespace资源以及secret资源。
在又一个例子中,该配置模块3200具体可以用于当所述主节点更新事件发生时,启动资源配置更新任务,所述资源配置更新任务用于:根据所述主节点更新事件更新所述主节点的master deployment资源,master service资源,namespace资源和/或secret资源。
本实施例的基于顶级容器集群对托管容器集群中主节点的管理***,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
<设备实施例>
本实施例中,还提供一种电子设备,该电子设备为图7所示的电子设备4000,包括:
存储器4100,用于存储可执行命令。
处理器4200,用于在存储器4100存储的可执行命令的控制下,执行本公开任意方法实施例中描述的方法。
该电子设备4000可以是服务器或终端设备。
<计算机可读存储介质实施例>
本实施例提供一种计算机可读存储介质,该存储介质中存储有可执行命令,该可执行命令被处理器执行时,执行本公开任意方法实施例中描述的方法。
本公开可以是***、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(***)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人物来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人物来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人物能理解本文披露的各实施例。本公开的范围由所附权利要求来限定。
Claims (9)
1.一种基于顶级容器集群对托管容器集群中主节点的管理方法,其特征在于,所述顶级容器集群包括:至少一个顶级主节点和至少一个顶级计算节点,所述顶级计算节点用于部署和运行容器pod,所述顶级主节点用于对所述顶级计算节点进行控制;所述托管容器集群包括:至少一个主节点和至少一个计算节点,所述计算节点用于部署和运行容器pod,所述主节点用于对所述计算节点进行控制;所述托管容器集群中的主节点以容器pod形式运行在所述顶级容器集群的顶级计算节点中;
所述至少一个顶级计算节点中有一个部署有集群自定义资源控制器,所述集群自定义资源控制器用于管理其他所述顶级计算节点中的集群自定义资源,所述托管容器集群中的主节点所对应的容器pod被预定义为一种集群自定义资源;
所述集群自定义资源控制器通过以下方法管理其他所述顶级计算节点中以容器pod形式运行的所述主节点:
监听所述主节点是否发生预定义事件;
当所述预定义事件发生,启动与所述预定义事件对应的资源配置任务以对所述主节点进行管理。
2.根据权利要求1所述的方法,其特征在于,所述预定义事件包括主节点创建事件、主节点删除事件和主节点更新事件中的任一个或多个。
3.根据权利要求2所述的方法,其特征在于,所述当所述预定义事件发生,启动与所述预定义事件对应的资源配置任务以对所述主节点进行管理,包括:
当所述主节点创建事件发生时,启动资源配置创建任务,所述资源配置创建任务用于:
创建主节点的master deployment资源,master service资源,namespace资源以及secret资源;
为所述主节点配置对应的弹性网卡及路由信息;以及
为所述托管容器集群配置存储服务集群。
4.根据权利要求3所述的方法,其特征在于,所述为所述主节点服务配置对应的弹性网卡及路由信息,包括:
在所述master deployment资源所在的宿主机上创建并挂载所述弹性网卡,并将所述弹性网卡的IP地址绑定至所述主节点上;以及,
为所述master deployment资源中的容器pod配置所述路由信息。
5.根据权利要求3所述的方法,其特征在于,所述当所述预定义事件发生,启动与所述预定义事件对应的资源配置任务以对所述主节点进行管理,包括:
当所述主节点删除事件发生时,启动资源配置删除任务,所述资源配置删除任务用于:
删除所述主节点的master deployment资源,master service资源,namespace资源以及secret资源。
6.根据权利要求3所述的方法,其特征在于,所述当所述预定义事件发生,启动与所述预定义事件对应的资源配置任务以对所述主节点进行管理,包括:
当所述主节点更新事件发生时,启动资源配置更新任务,所述资源配置更新任务用于:
根据所述主节点更新事件更新所述主节点的master deployment资源,masterservice资源,namespace资源和/或secret资源。
7.一种基于顶级容器集群对托管容器集群中主节点的管理***,其特征在于,所述顶级容器集群包括:至少一个顶级主节点和至少一个顶级计算节点,所述顶级计算节点用于部署和运行容器pod,所述顶级主节点用于对所述顶级计算节点进行控制;所述托管容器集群包括:至少一个主节点和至少一个计算节点,所述计算节点用于部署和运行容器pod,所述主节点用于对所述计算节点进行控制;所述托管容器集群中的主节点以容器pod形式运行在所述顶级容器集群的顶级计算节点中;
所述至少一个顶级计算节点中有一个部署有集群自定义资源控制器,所述集群自定义资源控制器用于管理其他所述顶级计算节点中的集群自定义资源,所述托管容器集群中的主节点所对应的容器pod被预定义为一种集群自定义资源;
所述集群自定义资源控制器用于管理其他所述顶级计算节点中以容器pod形式运行的所述主节点;所述集群自定义资源控制器中包括:
监听模块,用于监听所述主节点是否发生预定义事件;
启动模块,用于当所述预定义事件发生,启动与所述预定义事件对应的资源配置任务以对所述主节点进行管理。
8.一种电子设备,其中,所述电子设备包括:
存储器,用于存储可执行命令;
处理器,用于在所述可执行命令的控制下,执行如权利要求1-6中任一项所述的基于顶级容器集群对托管容器集群中主节点的管理方法。
9.一种计算机可读存储介质,其中,存储有可执行指令,所述可执行指令被处理器执行时如权利要求1-6中任一项所述的基于顶级容器集群对托管容器集群中主节点的管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010355978.5A CN111614490B (zh) | 2020-04-29 | 2020-04-29 | 基于顶级容器集群对托管容器集群的管理***及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010355978.5A CN111614490B (zh) | 2020-04-29 | 2020-04-29 | 基于顶级容器集群对托管容器集群的管理***及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111614490A CN111614490A (zh) | 2020-09-01 |
CN111614490B true CN111614490B (zh) | 2022-11-11 |
Family
ID=72198402
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010355978.5A Active CN111614490B (zh) | 2020-04-29 | 2020-04-29 | 基于顶级容器集群对托管容器集群的管理***及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111614490B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112434008A (zh) * | 2020-11-18 | 2021-03-02 | 星环信息科技(上海)股份有限公司 | 分布式数据库升级方法、设备及介质 |
CN112506659B (zh) * | 2020-12-10 | 2023-09-22 | 腾讯科技(深圳)有限公司 | 一种边缘设备的管理方法以及相关装置 |
CN112764886B (zh) * | 2021-01-29 | 2024-06-25 | 上海弘积信息科技有限公司 | 一种基于Kubernetes平台的负载均衡控制器 |
CN112968897B (zh) * | 2021-02-25 | 2022-04-08 | 浙江清华长三角研究院 | 一种在去中心化***中运行的容器计算方法 |
CN113254156B (zh) * | 2021-05-31 | 2024-04-09 | 深信服科技股份有限公司 | 一种容器组部署方法、装置、电子设备及存储介质 |
CN113746676B (zh) * | 2021-09-01 | 2023-09-01 | 京东科技信息技术有限公司 | 基于容器集群的网卡管理方法、装置、设备、介质及产品 |
CN115237547B (zh) * | 2022-09-21 | 2022-12-06 | 之江实验室 | 一种非侵入式hpc计算集群的统一容器集群托管***和方法 |
CN115357369B (zh) * | 2022-10-21 | 2023-03-24 | 之江实验室 | 一种k8s容器云平台中CRD应用集成调用方法与装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109032755A (zh) * | 2018-06-29 | 2018-12-18 | 优刻得科技股份有限公司 | 一种容器服务托管***及提供容器服务的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109120678B (zh) * | 2018-07-26 | 2021-05-14 | 北京百度网讯科技有限公司 | 用于分布式存储***的服务托管的方法和装置 |
-
2020
- 2020-04-29 CN CN202010355978.5A patent/CN111614490B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109032755A (zh) * | 2018-06-29 | 2018-12-18 | 优刻得科技股份有限公司 | 一种容器服务托管***及提供容器服务的方法 |
Non-Patent Citations (1)
Title |
---|
kube-on-kube-operator 开发(一);田飞雨;《https://blog.tianfeiyu.com/2019/08/05/kube_on_kube_operator_1/》;20190805;kubernetes-operator设计参考-集群升级 * |
Also Published As
Publication number | Publication date |
---|---|
CN111614490A (zh) | 2020-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111614490B (zh) | 基于顶级容器集群对托管容器集群的管理***及方法 | |
US10560538B2 (en) | Integrated user interface for consuming services across different distributed networks | |
US10831583B2 (en) | Reporting errors to a data storage device | |
US20180101371A1 (en) | Deployment manager | |
CN111930521A (zh) | 用于部署应用的方法、装置、电子设备及可读存储介质 | |
WO2024077885A1 (zh) | 容器集群的管理方法、装置、设备及非易失性可读存储介质 | |
US10594800B2 (en) | Platform runtime abstraction | |
US9317380B2 (en) | Preserving management services with self-contained metadata through the disaster recovery life cycle | |
US20190340093A1 (en) | Widget Provisioning of User Experience Analytics and User Interface / Application Management | |
JP2021099879A (ja) | 開発マシン操作タスクの処理方法、電子機器、コンピュータ可読記憶媒体及びコンピュータプログラム | |
CN114489512B (zh) | 限定容器容量的方法及装置、电子设备、存储介质 | |
CN110995480A (zh) | 区块链网络部署方法、装置、电子设备和介质 | |
CN112099836A (zh) | 更新配置文件方法、配置服务器、版本控制服务器及*** | |
CN113626133B (zh) | 一种虚拟机控制方法、装置、设备及计算机可读存储介质 | |
CN111708557A (zh) | 更新配置文件的方法、设备及存储介质 | |
CN110609656B (zh) | 存储管理方法、电子设备和计算机程序产品 | |
US9483781B2 (en) | Automatically generating a review rating the performance of a pattern based on pattern deployment, service history and operation of pattern | |
CN112114939A (zh) | 一种分布式***部署设备和方法 | |
CN117616395A (zh) | 迁移期间应用的连续活跃度和完整性 | |
US20140297894A1 (en) | Universal serial bus (usb) key functioning as multiple usb keys so as to efficiently configure different types of hardware | |
US10742731B2 (en) | Maintaining service configuration consistency across nodes of a clustered file system | |
CN111984623A (zh) | 数据库集群自动化部署方法、装置、介质和电子设备 | |
CN109491762B (zh) | 容器状态控制方法及装置、存储介质、电子设备 | |
US9588831B2 (en) | Preventing recurrence of deterministic failures | |
CN112241293A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |