CN113590256A - 多Kubernetes集群的应用部署方法及装置 - Google Patents

多Kubernetes集群的应用部署方法及装置 Download PDF

Info

Publication number
CN113590256A
CN113590256A CN202110622172.2A CN202110622172A CN113590256A CN 113590256 A CN113590256 A CN 113590256A CN 202110622172 A CN202110622172 A CN 202110622172A CN 113590256 A CN113590256 A CN 113590256A
Authority
CN
China
Prior art keywords
kubernets
cluster
target
deployment
kubernets cluster
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
CN202110622172.2A
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.)
Sina Technology China Co Ltd
Original Assignee
Sina Technology China 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 Sina Technology China Co Ltd filed Critical Sina Technology China Co Ltd
Priority to CN202110622172.2A priority Critical patent/CN113590256A/zh
Publication of CN113590256A publication Critical patent/CN113590256A/zh
Pending legal-status Critical Current

Links

Images

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
    • 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/4557Distribution of virtual machine instances; Migration and load balancing
    • 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/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例提供了一种多Kubernetes集群的应用部署方法、装置及电子设备,该方法包括:在接收部署指令之后,基于部署指令以预定义规则从各Kubernetes集群中选取满足部署要求的目标Kubernetes集群,最后在目标Kubernetes集群中进行应用部署。如此,避免了采用人为的方式进行应用部署,节省了人力物力,且提高了应用部署的效率。此外,通过选取满足部署要求的Kubernetes集群为目标Kubernetes集群,在目标Kubernetes集群进行应用部署时,因目标Kubernetes集群满足部署要求,其局限性小。

Description

多Kubernetes集群的应用部署方法及装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种多Kubernetes集群的应用部署方法及装置。
背景技术
Kubernetes作为一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。在生产环境中部署一个应用程序时,通常要部署该应用的多个实例以便对应用请求进行负载均衡。在多Kubernetes集群的应用环境下,往往一个应用需要部署到多个Kubernetes集群上,集群管理员需要在多个Kubernetes集群上逐一部署,但是采用人为的方式进行应用部署,不仅会浪费大量的人力物力,而且选择的Kubernetes集群并不一定是最合适的集群,应用部署的效率过低且局限性大。
发明内容
本发明实施例的目的是提供一种多Kubernetes集群的应用部署方法、装置及电子设备,以解决应用部署的效率过低且局限性大的问题。
为了解决上述技术问题,本发明实施例是这样实现的:
第一方面,本发明实施例提供了一种多Kubernetes集群的应用部署方法,所述方法包括:
接收部署指令;
响应所述部署指令,以预定义规则从各Kubernetes集群中选取满足部署要求的目标Kubernetes集群;
在所述目标Kubernetes集群上进行应用部署。
第二方面,本发明实施例提供了一种多Kubernetes集群的应用部署装置,所述装置包括:
接收模块,用于接收部署指令;
选取模块,用于基于所述部署指令以预定义规则从各Kubernetes集群中选取满足部署要求的目标Kubernetes集群;
部署模块,用于在所述目标Kubernetes集群上进行应用部署。
第三方面,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线;其中,所述处理器、所述通信接口以及所述存储器通过总线完成相互间的通信;所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存放的程序,实现如第一方面所述的多Kubernetes集群的应用部署方法步骤。
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现如第一方面所述的多Kubernetes集群的应用部署方法步骤。
由以上本发明实施例提供的技术方案可见,在接收部署指令之后,基于部署指令以预定义规则从各Kubernetes集群中选取满足部署要求的目标Kubernetes集群,最后在目标Kubernetes集群中进行应用部署。如此,避免了采用人为的方式进行应用部署,节省了人力物力,且提高了应用部署的效率。此外,通过选取满足部署要求的Kubernetes集群为目标Kubernetes集群,在目标Kubernetes集群进行应用部署时,因目标Kubernetes集群满足部署要求,其局限性小。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1A为本发明实施例提供的多Kubernetes集群的应用部署方法的第一种流程示意图;
图1B为本发明实施例提供的目标信息的数据结构示意图;
图1C为本发明实施例提供的目标Kubernetes集群的选取流程图;
图2为本发明实施例提供的多Kubernetes集群的应用部署方法的第二种流程示意图;
图3为本发明实施例提供的多Kubernetes集群的应用部署装置的模块组成示意图;
图4为本发明实施例提供的电子设备的结构示意图。
具体实施方式
本发明实施例提供了一种多Kubernetes集群的应用部署方法、装置及电子设备,解决了应用部署的效率过低且局限性大的问题。
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
在实施例中,在多Kubernetes集群的应用环境下,往往一个应用需要部署到多个Kubernetes集群上,集群管理员需要在多个Kubernetes集群上逐一部署,但是采用人为的方式进行应用部署,不仅会浪费大量的人力物力,而且选择的Kubernetes集群并不一定是最合适、最优的集群,应用部署的效率过低且局限性大。
进一步,在多Kubernetes集群上部署完成的应用,无法进行统一管理,需要用户逐一在多个Kubernetes集群上进行操作,管理效率低且具有一定的主观性。
更进一步,在Kubernetes集群出现故障、资源匮乏或者网络质量下降等集群不健康的行为时无法感知,也就无法自动的对部署到Kubernetes集群上的应用进行迁移,很容易导致应用宕机停止,影响整个集群的进程,严重时会导致集群瘫痪的问题。
如图1A所示,本发明实施例提供一种多Kubernetes集群的应用部署方法,该方法的执行主体可以为服务器,其中,该服务器可以是独立的服务器,也可以是由多个服务器组成的服务器集群。该多Kubernetes集群的应用部署方法具体可以包括以下步骤S101-S103:
在S101中,接收部署指令。
具体的,对于部署指令而言,其包括但不限于携带了用户指定的进行应用部署的Kubernetes集群的指令、携带进行应用部署的Kubernetes集群的标签的指令以及携带进行应用部署的Kubernetes集群的规模要求和资源要求的指令。
在S102中,基于所述部署指令以预定义规则从各Kubernetes集群中选取满足部署要求的目标Kubernetes集群。
示例性的,作为S102可选的实施例,对于不同类型的部署指令,S102可以包括:
若部署指令中携带了用户指定的进行应用部署的Kubernetes集群的信息,则基于上述信息从各Kubernetes集群中选取指定的进行应用部署的Kubernetes集群为目标Kubernetes集群。其中,在接收到该部署指令后,直接从各Kubernetes集群中查找该指定的进行应用部署的Kubernetes集群,具体可以通过Kubernetes集群的标识(如身份标识号(dentity document,ID))进行查找。
若部署指令中携带了进行应用部署的Kubernetes集群的标签,则从存储有各Kubernetes集群的目标信息的Etcd集群中选取与标签对应的Kubernetes集群为目标Kubernetes集群,其中,Etcd集群是一个开源的、高度一致的分布式存储系统。其中,标签是用来标识Kubernetes集群的身份的,每一个Kubernetes集群都可以具有唯一对应的标签,标签可以为序列编号、ID号、以及自定义的文字类标签等,当接收到该部署指令后,从各Kubernetes集群中查找该标签对应的Kubernetes集群。
若部署指令中携带进行应用部署的Kubernetes集群的规模要求和资源要求,则从存储有与各Kubernetes集群的目标信息的Etcd集群中选取满足集群的规模要求和资源要求的Kubernetes集群为目标Kubernetes集群。在接收到部署指令后,查询Etcd集群中的目标信息,然后基于目标信息选择较优的Kubernetes集群进行部署。
具体的,从所述Etcd集群中选取排名满足要求的Kubernetes集群为所述目标Kubernetes集群包括:
对不满足资源要求的Kubernetes集群进行过滤,基于目标信息对过滤后剩余的Kubernetes集群进行打分,得到分值,目标信息与资源要求中的信息的匹配度与分值正相关,对进行打分后的各分值进行降序排列,选取排名靠前的预定数量的Kubernetes集群为目标Kubernetes集群,预定数量满足集群的规模要求。
示例性的,如图1B所示的,每个Kubernetes集群Cluster的目标信息至少包括Kubernetes集群的标签、Kubernetes集群所属的运营商、Kubernetes集群的网络质量、Kubernetes集群的应用部署情况、Kubernetes集群的剩余资源、Kubernetes集群的所属区域、Kubernetes集群的镜像预热中的至少一项。
对于Kubernetes集群的标签其为生成的用于标识Kubernetes集群的,其可以为编号、ID号等。运营商(Operator)可以为联通、电信以及移动等。Kubernetes集群的所属区域(Region)用于记录Kubernetes集群所属的地理位置,如Beijing、Shanghai等。Kubernetes集群的剩余资源(Overage)用于记录Kubernetes集群所剩余的资源,剩余的资源包括但不限于中央处理器(Central Processing Unit,CPU)的剩余资源、内存(Memory)的剩余资源、硬盘(Disk)的剩余资源、带宽(Bandwidth)的剩余资源等。
Kubernetes集群的网络质量得分(NetworkQualityScore)用于记录Kubernetes集群的网络质量的分数,分数的高低决定了网络质量的好坏。Kubernetes集群的应用部署情况(Drplomentinformation)用于记录Kubernetes集群上部署过的应用的信息,包括这些应用的名称(Name)、资源要求(Resource Request),Resource Request中包含CPU的资源要求以及Memory的资源需求、应用部署在Kubernetes集群中的持续时间(Time stamp)以及应用的标识(ID)等,并且以列表的形式存储于Etcd集群。Kubernetes集群的镜像预热(imageWarmup)用于记录Kubernetes集群的镜像预热情况,如名称(Name)、在Kubernetes集群中的持续时间(Time stamp)以及镜像预热能力(IsAll)并以列表的方式存储于Etcd集群。
此外,目标信息中还可以包括自定义指标(CustomMetrics),用于由用户自定义需要上报的Kubernetes集群的指标。如此,便于用户针对不同的需求,自定义设置指标,提升了用户体验感。
示例性的,如图1C所示,各Kubernetes集群分别以Cluster 01、Cluster 02、Cluster 03以及Cluster 04表示。预定义规则可以通过设置不同的过滤器实现,根据不同的部署指令,可以分为标签过滤器、自定义过滤器、资源过滤器、区域打分过滤器、运营商打分器、网络质量打分器、镜像预热打分器以及部署情况打分器。
对于标签过滤器而言,若部署指令中携带进行应用部署的Kubernetes集群的标签,将目标信息中带有该标签的Kubernetes集群作为目标Kubernetes集群直接进行调度(如调度Cluster 01),将其余的Kubernetes集群进行过滤。对于自定义过滤器,若部署指令中携带了指定的进行应用部署的Kubernetes集群的信息,则通过标签过滤器至自定义过滤器,直接调度指定的进行应用部署的Kubernetes集群(如调度Cluster 02)。
若部署指令中携带进行应用部署的Kubernetes集群的规模要求和资源要求,通过资源过滤器、区域打分过滤器、运营商打分器、网络质量打分器、镜像预热打分器以及部署情况打分器选择满足要求的目标Kubernetes集群。
首先,资源过滤器对所有不符合资源要求的Kubernetes集群直接进行过滤,然后区域打分器将资源过滤器过滤后剩余的Kubernetes集群按照部署时的区域要求的进行打分,Kubernetes集群所在区域与部署时的区域要求越接近(匹配度越高),分数越高,Kubernetes集群所在区域与部署时的区域要求一致时(匹配度为100%)的分数最高。如部署时的区域要求为Beijing-a和Beijing-b,则打分如下表1:
表1:区域打分
Figure BDA0003099985480000061
运营商打分器根据部署时对运营商的要求对Kubernetes集群进行打分,Kubernetes集群的运营商与部署要求的运营商相同(匹配度为100%)的Kubernetes集群得分最高。如最高得分为10分,打分值如下表2:
表2:运营商打分
Figure BDA0003099985480000062
网络质量打分器按照Kubernetes集群的网络的监控数据进行综合打分,网络性能较优的得分较高。镜像预热打分器对镜像预热的Kubernetes集群进行打分,镜像成功预热的Kubernetes集群分数较高。部署情况打分器对Kubernetes集群的应用部署情况进行打分,当Kubernetes集群未部署过待部署的应用时,不作打分,当Kubernetes集群部署过待部署的应用时,且该应用的持续时间越长,分值则越高。
分别将各Kubernetes集群的每个打分值叠加,得到每个Kubernetes集群的分值,得分值越高,说明Kubernetes集群的性能最优,然后对各个分值进行降序排列,选取排名靠前的预定数量的Kubernetes集群为目标Kubernetes集群,该预定数量满足集群的规模要求为。如要求的集群规模为1,则选取排名第一的Kubernetes集群为目标Kubernetes集群,如调度Cluster 03。
在S103中,在目标Kubernetes集群上进行应用部署。
示例性的,在目标Kubernetes集群上进行应用部署之后,可以对通过监控各个目标Kubernetes集群的目标信息的变化对各个目标Kubernetes集群进行统一管理,管理效率较高,且避免了逐一对目标Kubernetes集群进行管理而浪费大量的人力物力。
由以上本发明实施例提供的技术方案可见,在接收部署指令之后,基于部署指令以预定义规则从各Kubernetes集群中选取满足部署要求的目标Kubernetes集群,最后在目标Kubernetes集群中进行应用部署。如此,避免了采用人为的方式进行应用部署,节省了人力物力,且提高了应用部署的效率。此外,通过选取满足部署要求的Kubernetes集群为目标Kubernetes集群,在目标Kubernetes集群进行应用部署时,因目标Kubernetes集群满足部署要求,其局限性小。
如图2所示,本发明实施例提供一种多Kubernetes集群的应用部署方法,该方法的执行主体可以为服务器,其中,该服务器可以是独立的服务器,也可以是由多个服务器组成的服务器集群。该多Kubernetes集群的应用部署方法具体可以包括以下步骤S201-S204:
在S201中,接收部署指令。
在S202中,基于部署指令以预定义规则从各Kubernetes集群中选取满足部署要求的目标Kubernetes集群。
在S203中,在目标Kubernetes集群上进行应用部署。
在S204中,对目标Kubernetes集群进行监控,若目标Kubernetes集群中存在异常的目标Kubernetes集群,从其余的Kubernetes集群中重新选取新的Kubernetes集群,并将异常的目标Kubernetes集群上的应用迁移到新的Kubernetes集群上。
具体的,作为S204可选的实施例,S204包括:
对Etcd集群中各Kubernetes集群的目标信息进行监控,若目标Kubernetes集群中存在目标信息异常的Kubernetes集群,则将目标信息异常的Kubernetes集群作为异常的目标Kubernetes集群。
具体的,实时监控Etcd集群中的键值变化,一旦键值变化,重新对Etcd集群进行画像处理,进而重新调度Kubernetes集群上所部署的应用。目标信息异常指的是目标信息的数值为异常值,如某一目标Kubernetes集群的网络质量变为0分时,可以判定该目标Kubernetes集群存在网络问题,当目标Kubernetes集群的剩余可用资源低于阈值时,可以判断该目标Kubernetes集群的资源匮乏,此时从其它的Kubernetes集群中重新选取新的目标Kubernetes集群。在重新选取新的目标Kubernetes集群时,可以将镜像预热打分器和部署情况打分器的权重设置较高,这是因为有镜像预热过的Kubernetes集群可以快速的把应用部署起来,而部署情况的时长的长短可以说明Kubernetes集群的稳定性,时长越长,Kubernetes集群的稳定性越高,将异常的目标Kubernetes集群上的应用迁移过去之后,能够保证该应用的快速及稳定运行。
示例性的,上述的多Kubernetes集群的应用部署方法可以通过设置调度器(Scheduler)、聚合器(Kubernetes API)、收集器(Collection)、上报器(Sentry)以及Etcd集群协作完成。
具体的,Sentry可以采用Golang开发,其用来收集Kubernetes集群的目标信息,并通过传输控制协议(Transmission Control Protocol,TCP)上报至Collection,此外,还可以通过Kubernetes集群中的ConfigMap自定义需要上报的信息。目标信息可以参见上述的描述,本发明实施例在此不再赘述。
Collection用于与每个Kubernetes集群中的Sentry进行通信,Collection与Sentry之间还设置有心跳检测,用于监控Sentry的存活性,Sentry上报的数据会被Collection进行数据汇总以及格式化等操作,以便存储到Etcd集群中。Collection和Sentry可以采用客户机和服务器结构(C/S Structs)模式进行架构。
Scheduler用于对Sentry上报的目标信息进行集群画像,并进行应用部署的调度,Scheduler根据部署指令的不同,可以有不同的调度方式,如上述S102中所提到的部署指令和调度方式,如部署指令中携带了用户指定的进行应用部署的Kubernetes集群,则从各Kubernetes集群中选取指定的进行应用部署的Kubernetes集群为目标Kubernetes集群作为第一调度。若部署指令中携带进行应用部署的Kubernetes集群的标签,则从存储有各Kubernetes集群的目标信息的Etcd集群中选取与标签对应的Kubernetes集群为目标Kubernetes集群作为第二调度。若部署指令中携带进行应用部署的Kubernetes集群的规模要求和资源要求,则从存储有与各Kubernetes集群的目标信息的Etcd集群中选取排名满足要求的Kubernetes集群为目标Kubernetes集群作为第三调度。
此外,Scheduler还可以监控Etcd集群中的键值变化,实现对Kubernetes集群的监控。
Kubernetes API用于聚合多个Kubernetes集群的应用程序接口(ApplicationProgram Interface,API),接收Scheduler发送的部署指令(调度信息),选择对应的Kubernetes集群进行调用。此外,Kubernetes API还可以对各Kubernetes集群的权限进行认证并对各Kubernetes集群进行统一管理,保证可以操作不同的Kubernetes集群的各种资源。
Etcd集群用于存储Collection格式化好的Sentry上报的各Kubernetes集群的目标信息,Scheduler会从Etcd集群中获取Kubernetes集群的目标信息,并对Kubernetes集群进行画像,同时Scheduler会实时监控Etcd集群中的键值变化,在某部署有应用的Kubernetes集群上的目标信息异常时,对该Kubernetes集群上的应用进行迁移。
由以上本发明实施例提供的技术方案可见,在接收部署指令之后,基于部署指令以预定义规则从各Kubernetes集群中选取满足部署要求的目标Kubernetes集群,最后在目标Kubernetes集群中进行应用部署。如此,避免了采用人为的方式进行应用部署,节省了人力物力,且提高了应用部署的效率。此外,通过选取满足部署要求的Kubernetes集群为目标Kubernetes集群,在目标Kubernetes集群进行应用部署时,因目标Kubernetes集群满足部署要求,其局限性小。
此外,在某目标Kubernetes集群出现异常时,可以对该目标Kubernetes集群上部署的应用进行迁移,保证了该应用仍能够正常运行。
对应上述实施例提供的多Kubernetes集群的应用部署方法,基于相同的技术构思,本发明实施例还提供了多Kubernetes集群的应用部署装置,图3为本发明实施例提供的多Kubernetes集群的应用部署装置的模块组成示意图,该多Kubernetes集群的应用部署装置用于执行图1A和图2描述的多Kubernetes集群的应用部署方法,如图3所示,该多Kubernetes集群的应用部署装置包括:
接收模块301,用于接收部署指令;
选取模块302,基于所述部署指令以预定义规则从各Kubernetes集群中选取满足部署要求的目标Kubernetes集群;
部署模块303,用于在目标Kubernetes集群上进行应用部署。
由以上本发明实施例提供的技术方案可见,在接收部署指令之后,响应部署指令,并以预定义规则从各Kubernetes集群中选取满足部署要求的目标Kubernetes集群,最后在目标Kubernetes集群中进行应用部署。如此,避免了采用人为的方式进行应用部署,节省了人力物力,且提高了应用部署的效率。此外,通过选取满足部署要求的Kubernetes集群为目标Kubernetes集群,在目标Kubernetes集群进行应用部署时,因目标Kubernetes集群满足部署要求,其局限性小。
可选地,该多Kubernetes集群的应用部署装置还包括:监控模块(图中未示出)。
监控模块,用于对目标Kubernetes集群进行监控,若目标Kubernetes集群中存在异常的目标Kubernetes集群,从其余的Kubernetes集群中重新选取新的Kubernetes集群,并将异常的目标Kubernetes集群上的应用迁移到新的Kubernetes集群上。
可选地,选取模块302包括第一选取单元、第二选取单元和第三选取单元。
第一选取单元,用于若部署指令中携带了指定的进行应用部署的Kubernetes集群的信息,则基于信息从各Kubernetes集群中选取指定的进行应用部署的Kubernetes集群为目标Kubernetes集群;
第二选取单元,用于若部署指令中携带了进行应用部署的Kubernetes集群的标签,则从存储有与各Kubernetes集群的目标信息的Etcd集群中选取与标签对应的Kubernetes集群为目标Kubernetes集群;
第三选取单元,用于若部署指令中携带了进行应用部署的Kubernetes集群的规模要求和资源要求,则从Etcd集群中选取满足规模要求和资源要求的Kubernetes集群为目标Kubernetes集群。
可选地,监控模块包括:监控单元。
监控单元,用于对Etcd集群中各Kubernetes集群的目标信息进行监控,若目标Kubernetes集群中存在目标信息异常的Kubernetes集群,则将目标信息异常的Kubernetes集群作为异常的目标Kubernetes集群。目标信息至少包括Kubernetes集群的标签、Kubernetes集群所属的运营商、Kubernetes集群的网络质量、Kubernetes集群的应用部署情况、Kubernetes集群的剩余资源、Kubernetes集群的所属区域、Kubernetes集群的镜像预热中的至少一项。
可选地,该多Kubernetes集群的应用部署装置还包括:管理模块(图中未示出)。
管理模块,用于基于目标信息对目标Kubernetes集群进行统一管理。
可选地,第三选取单元包括:过滤子单元,打分子单元和选取子单元。
过滤子单元,用于对不满足资源要求的Kubernetes集群进行过滤;
打分子单元,用于基于目标信息分别对过滤后剩余的Kubernetes集群进行打分,得到分值,所述目标信息与所述资源要求中的信息的匹配度与所述分值正相关。
选取子单元,用于对各Kubernetes集群进行打分后的各分值进行降序排列,选取排名靠前的预定数量的Kubernetes集群为目标Kubernetes集群,预定数量满足集群的规模要求。
本发明实施例提供的多Kubernetes集群的应用部署装置能够实现上述多Kubernetes集群的应用部署方法对应的实施例中的各个过程,为避免重复,这里不再赘述。
需要说明的是,本发明实施例提供的多Kubernetes集群的应用部署装置与本发明实施例提供的多Kubernetes集群的应用部署方法基于同一发明构思,因此该实施例的具体实施可以参见前述多Kubernetes集群的应用部署方法的实施,重复之处不再赘述。
对应上述实施例提供的多Kubernetes集群的应用部署方法,基于相同的技术构思,本发明实施例还提供了一种电子设备,该电子设备用于执行上述的多Kubernetes集群的应用部署方法,图4为实现本发明各个实施例的一种电子设备的结构示意图,如图4所示。电子设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上的处理器401和存储器402,存储器402中可以存储有一个或一个以上存储应用程序或数据。其中,存储器402可以是短暂存储或持久存储。存储在存储器402的应用程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括对电子设备中的一系列计算机可执行指令。更进一步地,处理器401可以设置为与存储器402通信,在电子设备上执行存储器402中的一系列计算机可执行指令。电子设备还可以包括一个或一个以上电源403,一个或一个以上有线或无线网络接口404,一个或一个以上输入输出接口405,一个或一个以上键盘406。
具体在本实施例中,电子设备包括有处理器、通信接口、存储器和通信总线;其中,处理器、通信接口以及存储器通过总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序,实现以下方法步骤:
接收部署指令。基于部署指令以预定义规则从各Kubernetes集群中选取满足部署要求的目标Kubernetes集群。在目标Kubernetes集群上进行应用部署。
具体在本实施例中,本发明实施例提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时,实现如以下步骤:
接收部署指令。基于部署指令以预定义规则从各Kubernetes集群中选取满足部署要求的目标Kubernetes集群。在目标Kubernetes集群上进行应用部署。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,电子设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、装置或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种多Kubernetes集群的应用部署方法,其特征在于,所述方法包括:
接收部署指令;
基于所述部署指令以预定义规则从各Kubernetes集群中选取满足部署要求的目标Kubernetes集群;
在所述目标Kubernetes集群上进行应用部署。
2.根据权利要求1所述的方法,其特征在于,在所述目标Kubernetes集群上进行应用部署之后,所述方法还包括:
对所述目标Kubernetes集群进行监控,若所述目标Kubernetes集群中存在异常的目标Kubernetes集群,从其余的Kubernetes集群中重新选取新的Kubernetes集群,并将所述异常的目标Kubernetes集群上的应用迁移到新的Kubernetes集群上。
3.根据权利要求2所述的方法,其特征在于,所述对所述目标Kubernetes集群进行监控包括:
对各所述目标Kubernetes集群的目标信息进行监控,若所述目标Kubernetes集群中存在目标信息异常的目标Kubernetes集群,则将所述目标信息异常的目标Kubernetes集群作为所述异常的目标Kubernetes集群,所述目标信息存储于Etcd集群中。
4.根据权利要求1-3任意一项所述的方法,其特征在于,所述基于所述部署指令以预定义规则从各Kubernetes集群中选取满足部署要求的目标Kubernetes集群包括:
若所述部署指令中携带了指定的进行应用部署的Kubernetes集群的信息,则基于所述信息从各所述Kubernetes集群中选取所述指定的进行应用部署的Kubernetes集群为所述目标Kubernetes集群;
若所述部署指令中携带了进行应用部署的Kubernetes集群的标签,则从存储有各所述Kubernetes集群的目标信息的Etcd集群中选取与所述标签对应的Kubernetes集群为所述目标Kubernetes集群;
若所述部署指令中携带了进行应用部署的Kubernetes集群的规模要求和资源要求,则从所述Etcd集群中选取满足所述规模要求和资源要求的Kubernetes集群为所述目标Kubernetes集群。
5.根据权利要求4所述的方法,其特征在于,所述从所述Etcd集群中选取满足所述规模要求和所述资源要求的Kubernetes集群为所述目标Kubernetes集群包括:
对不满足所述资源要求的Kubernetes集群进行过滤;
基于所述目标信息分别对过滤后剩余的Kubernetes集群进行打分,得到分值,所述目标信息与所述资源要求中的信息的匹配度与所述分值正相关;
对各所述Kubernetes集群进行打分后的各分值进行降序排列,选取排名靠前的预定数量的Kubernetes集群为所述目标Kubernetes集群,所述预定数量满足所述集群的规模要求。
6.根据权利要求4所述的方法,其特征在于,所述目标信息包括所述Kubernetes集群的标签、所述Kubernetes集群所属的运营商、所述Kubernetes集群的网络质量、所述Kubernetes集群的应用部署情况、所述Kubernetes集群的剩余资源、所述Kubernetes集群的所属区域、所述Kubernetes集群的镜像预热中的至少一项。
7.根据权利要求4所述的方法,其特征在于,在所述目标Kubernetes集群上进行应用部署之后,所述方法还包括:
基于所述目标信息对所述目标Kubernetes集群进行统一管理。
8.一种多Kubernetes集群的应用部署装置,其特征在于,所述装置包括:
接收模块,用于接收部署指令;
选取模块,用于基于所述部署指令以预定义规则从各Kubernetes集群中选取满足部署要求的目标Kubernetes集群;
部署模块,用于在所述目标Kubernetes集群上进行应用部署。
9.一种电子设备,包括处理器、通信接口、存储器和通信总线;其中,所述处理器、所述通信接口以及所述存储器通过总线完成相互间的通信;所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存放的程序,实现如权利要求1-7任意一项所述的多Kubernetes集群的应用部署方法步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现如权利要求1-7任意一项所述的多Kubernetes集群的应用部署方法步骤。
CN202110622172.2A 2021-06-03 2021-06-03 多Kubernetes集群的应用部署方法及装置 Pending CN113590256A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110622172.2A CN113590256A (zh) 2021-06-03 2021-06-03 多Kubernetes集群的应用部署方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110622172.2A CN113590256A (zh) 2021-06-03 2021-06-03 多Kubernetes集群的应用部署方法及装置

Publications (1)

Publication Number Publication Date
CN113590256A true CN113590256A (zh) 2021-11-02

Family

ID=78243534

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110622172.2A Pending CN113590256A (zh) 2021-06-03 2021-06-03 多Kubernetes集群的应用部署方法及装置

Country Status (1)

Country Link
CN (1) CN113590256A (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111190718A (zh) * 2020-01-07 2020-05-22 第四范式(北京)技术有限公司 实现任务调度的方法、装置及系统
CN111405055A (zh) * 2020-03-23 2020-07-10 北京达佳互联信息技术有限公司 多集群管理方法、系统、服务器、存储介质
CN111966500A (zh) * 2020-09-07 2020-11-20 网易(杭州)网络有限公司 资源调度方法、装置、电子设备及存储介质
CN112114950A (zh) * 2020-09-21 2020-12-22 中国建设银行股份有限公司 任务调度方法和装置、以及集群管理系统
CN112463535A (zh) * 2020-11-27 2021-03-09 中国工商银行股份有限公司 多集群异常处理方法及装置
CN112835989A (zh) * 2021-03-31 2021-05-25 中国工商银行股份有限公司 一种单应用多MySQL Set的部署方法及系统
CN112860383A (zh) * 2021-03-12 2021-05-28 网易(杭州)网络有限公司 集群资源调度方法、装置、设备及存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111190718A (zh) * 2020-01-07 2020-05-22 第四范式(北京)技术有限公司 实现任务调度的方法、装置及系统
CN111405055A (zh) * 2020-03-23 2020-07-10 北京达佳互联信息技术有限公司 多集群管理方法、系统、服务器、存储介质
CN111966500A (zh) * 2020-09-07 2020-11-20 网易(杭州)网络有限公司 资源调度方法、装置、电子设备及存储介质
CN112114950A (zh) * 2020-09-21 2020-12-22 中国建设银行股份有限公司 任务调度方法和装置、以及集群管理系统
CN112463535A (zh) * 2020-11-27 2021-03-09 中国工商银行股份有限公司 多集群异常处理方法及装置
CN112860383A (zh) * 2021-03-12 2021-05-28 网易(杭州)网络有限公司 集群资源调度方法、装置、设备及存储介质
CN112835989A (zh) * 2021-03-31 2021-05-25 中国工商银行股份有限公司 一种单应用多MySQL Set的部署方法及系统

Similar Documents

Publication Publication Date Title
US9838483B2 (en) Methods, systems, and computer readable media for a network function virtualization information concentrator
CN109669776B (zh) 检测任务的处理方法、装置和系统
CN108521339B (zh) 一种基于集群日志的反馈式节点故障处理方法及系统
CN102208991A (zh) 一种日志处理方法、设备和系统
CN114598586B (zh) 一种多云场景算力网格化方法及系统
CN112764920B (zh) 一种边缘应用部署方法、装置、设备和存储介质
CN105812175B (zh) 一种资源管理方法及资源管理设备
CN109951326B (zh) 数据处理方法、装置、存储介质及处理器
CN109542737A (zh) 平台告警处理方法、装置、电子装置及存储介质
CN108268211A (zh) 一种数据处理方法及装置
CN106130960A (zh) 盗号行为的判断系统、负载调度方法和装置
US10506392B1 (en) Stream-processing of telecommunication diameter event records
CN110557291A (zh) 一种网络服务监控系统
CN106777265B (zh) 一种业务数据的处理方法及装置
CN110708177B (zh) 分布式系统中的异常处理方法、系统和装置
CN113590256A (zh) 多Kubernetes集群的应用部署方法及装置
US11841965B2 (en) Automatically assigning data protection policies using anonymized analytics
CN101482816B (zh) 中介软件桥接系统及方法
CN115469980A (zh) 一种产品介质下载任务调度方法、装置及电子设备
US20220066499A1 (en) Intelligent user equipment central processing unit core clock adjustment
CN112445952B (zh) 一种数据管理方法、装置、设备及存储介质
CN101872353A (zh) 用于保护数字内容著作权的分布式过滤装置及其方法
CN112965844A (zh) 一种cpu飙升事故处理方法和装置
CN112540842A (zh) 动态调整系统资源的方法及装置
CN109684159A (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
TA01 Transfer of patent application right

Effective date of registration: 20230407

Address after: Room 501-502, 5/F, Sina Headquarters Scientific Research Building, Block N-1 and N-2, Zhongguancun Software Park, Dongbei Wangxi Road, Haidian District, Beijing, 100193

Applicant after: Sina Technology (China) Co.,Ltd.

Address before: 100080 7th floor, Sina headquarters scientific research building, plot n-1 and n-2, Zhongguancun Software Park Phase II (West Expansion), Dongbeiwang West Road, Haidian District, Beijing

Applicant before: Sina.com Technology (China) Co.,Ltd.

TA01 Transfer of patent application right