CN112130889A - 资源的管理方法和装置、存储介质、电子装置 - Google Patents
资源的管理方法和装置、存储介质、电子装置 Download PDFInfo
- Publication number
- CN112130889A CN112130889A CN202010970202.4A CN202010970202A CN112130889A CN 112130889 A CN112130889 A CN 112130889A CN 202010970202 A CN202010970202 A CN 202010970202A CN 112130889 A CN112130889 A CN 112130889A
- Authority
- CN
- China
- Prior art keywords
- state
- target
- target resource
- resource
- container arrangement
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种资源的管理方法和装置、存储介质、电子装置。涉及云计算领域。其中,该方法包括:获取目标命令,目标命令用于指示容器编排系统中的目标资源的状态需要变更;获取目标资源的第一状态和第二状态,其中,第一状态为目标仓库中记录的目标资源的目标状态,第二状态为容器编排系统中记录的目标资源的状态;在第二状态与第一状态不匹配的情况下,在容器编排系统中执行将目标资源的状态从第二状态变更为第一状态的操作。本申请解决了相关技术中运行结果不准确的技术问题。
Description
技术领域
本申请涉及互联网领域,具体而言,涉及一种资源的管理方法和装置、存储介质、电子装置。
背景技术
CI/CD,CI指持续集成(Continuous Integration),CD指持续交付(ContinuousDelivery)。持续集成是指软件个人研发的部分向软件整体部分交付,频繁进行集成以便更快地发现其中的错误。持续交付指在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境的类生产环境中。
CI/CD方案中时常会使用Git、Helm以及Kubernetes,Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目;Kubernetes是基于Borg开源的容器编排调度引擎,作为CNCF(Cloud Native Computing Foundation)最重要的组件之一,可以让使用者来描述集群的架构,定义服务的最终状态,Kubernetes可以将系统自动地达到和维持在这个状态,Kubernetes作为云原生应用的基石,相当于一个云操作系统;Helm是Kubernetes的一个包管理工具,用来简化Kubernetes应用的部署和管理。
相关技术中基于Kubernetes的CI/CD方案通常基于一种CI编排工具链实现,这类工具链常常使用Gitlab作为代码仓库,使用Jenkins(是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能)作为任务和脚本执行器,Harbor(是构建企业级私有docker镜像的仓库的开源解决方案)作为镜像制品仓库,Kubernetes作为容器运行环境,以及一个CI服务器作为总控。
CI服务器对整个CI流程进行编排,辅以上述工具链来实现整个CI/CD的全过程,当用户开始运行一个CI/CD过程时,CI服务器会生成Jenkins job,然后这个job会从Gitlab拉取代码,执行构建、打包、上传镜像等活动,然后CI服务器会直接调用Kubernetes的API来进行部署。
发明人经过对上述方案进行分析,认识到该方案中存在如下问题:CI服务器在发送指令之后,直接执行CI/CD的全过程,而不关心容器编排系统中资源的当前状态,从而可能造成最终执行的结果并不是想要的结果,从而造成运行结果不准确的问题。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种资源的管理方法和装置、存储介质、电子装置,以至少解决相关技术中运行结果不准确的技术问题。
根据本申请实施例的一个方面,提供了一种资源的管理方法,包括:获取目标命令,其中,目标命令用于指示容器编排系统中的目标资源的状态需要变更;获取目标资源的第一状态和第二状态,其中,第一状态为目标仓库中记录的目标资源的目标状态,第二状态为容器编排系统中记录的目标资源的状态;在第二状态与第一状态不匹配的情况下,在容器编排系统中执行将目标资源的状态从第二状态变更为第一状态的操作。
根据本申请实施例的另一方面,还提供了一种资源的管理方法,包括:在目标仓库中记录的目标资源的当前状态与目标状态不匹配的情况下,生成目标命令,其中,目标命令用于指示容器编排系统中的目标资源的状态需要变更;向容器编排系统发送目标命令,其中,容器编排系统用于在第二状态与第一状态不匹配的情况下,执行将目标资源的状态从第二状态变更为第一状态的操作,第一状态为目标仓库中记录的目标资源的目标状态,第二状态为容器编排系统中记录的目标资源的状态。
根据本申请实施例的一个方面,提供了一种资源的管理装置,包括:第一获取单元,用于获取目标命令,其中,目标命令用于指示容器编排系统中的目标资源的状态需要变更;第二获取单元,用于获取目标资源的第一状态和第二状态,其中,第一状态为目标仓库中记录的目标资源的目标状态,第二状态为容器编排系统中记录的目标资源的状态;执行单元,用于在第二状态与第一状态不匹配的情况下,在容器编排系统中执行将目标资源的状态从第二状态变更为第一状态的操作。
根据本申请实施例的一个方面,提供了一种资源的管理装置,包括:生成单元,用于在目标仓库中记录的目标资源的当前状态与目标状态不匹配的情况下,生成目标命令,其中,目标命令用于指示容器编排系统中的目标资源的状态需要变更;发送单元,用于向容器编排系统发送目标命令,其中,容器编排系统用于在第二状态与第一状态不匹配的情况下,执行将目标资源的状态从第二状态变更为第一状态的操作,第一状态为目标仓库中记录的目标资源的目标状态,第二状态为容器编排系统中记录的目标资源的状态。
根据本申请实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,程序运行时执行上述的方法。
根据本申请实施例的另一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器通过计算机程序执行上述的方法。
在本申请实施例中,容器编排系统在第二状态(即容器编排系统中记录的所述目标资源的当前状态)与第一状态(即目标仓库中记录的所述目标资源的目标状态)不匹配的情况下,执行将所述目标资源的状态从所述第二状态变更为所述第一状态的操作,从而可以保证是根据资源当前的实际状态和目标状态来执行,而不仅仅是根据目标状态来执行,可以解决了相关技术中运行结果不准确的技术问题,进而达到提高运行结果的准确度的技术效果。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的资源的管理方法的硬件环境的示意图;
图2是根据本申请实施例的一种可选的资源的管理方法的流程图;
图3是根据本申请实施例的一种可选的资源的管理方法的流程图;
图4是根据本申请实施例的一种可选的资源的管理方案的示意图;
以及
图5是根据本申请实施例的一种终端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本申请实施例的一方面,提供了一种资源的管理方法的方法实施例。
可选地,在本实施例中,上述资源的管理方法可以应用于如图1所示的由终端101、Git仓库103(即目标仓库或数据库)和Kubernetes集群105(即容器编排系统)所构成的硬件环境中。如图1所示,终端101、Git仓库103和Kubernetes集群105三者之间通过网络进行连接,上述网络包括但不限于:广域网、城域网或局域网,终端101并不限定于PC、手机、平板电脑等。
本申请实施例的资源的管理方法可以在Git仓库103侧来执行,可为所述目标仓库配置有用于监控状态的同步服务,此时该方法可通过设置在仓库侧的同步服务来实现,该同步服务可以设置仓库中,也可以设置在独立的服务器上,图2是根据本申请实施例的一种可选的资源的管理方法的流程图,如图2所示,该方法可以包括以下步骤:
步骤S202,配置同步服务,在目标仓库存放部署配置文件,通过该配置文件实现同步服务与目标仓库、同步代理(容器编排系统侧的代理,同步代理可用于执行容器编排系统侧的相关流程)之间的交互。
步骤S204,在目标仓库中提交用户终端的部署操作,具体可以是目标资源(即存放在容器编排系统中的资源,如容器的应用等)的删除、修改、新增等操作。
上述步骤S202和步骤S204为可选的操作,不用每次执行本申请的方法都进行步骤S202的同步服务的配置,一旦完成配置之后,后续执行本申请的方法时可不用再进行配置;另外,触发本申请的方法执行的条件是目标仓库中记录有某资源的当前状态与目标状态不匹配,这种不匹配可能是有新提交的操作(如步骤S204),也可能是之前的操作未执行、执行失败等,所以步骤S204也是可选的。
步骤S206,在目标仓库中记录的目标资源的当前状态与目标状态不匹配的情况下,同步服务生成目标命令,目标命令用于指示容器编排系统中的目标资源的状态需要变更。
可选地,考虑到资源状态的变更需要时间,为了防止重复操作,同步服务可实时监控目标仓库中记录的目标资源的当前状态与目标状态;在目标资源的当前状态与目标状态保持不匹配的持续时间达到预定时间阈值(如1分钟)的情况下,即相当于在之前的操作均已经完成且完成状态同步的情况下,同步服务生成目标命令。
步骤S208,同步服务向容器编排系统的同步代理发送目标命令,容器编排系统在第二状态与第一状态不匹配的情况下,执行将目标资源的状态从第二状态变更为第一状态的操作,第一状态为目标仓库中记录的目标资源的目标状态,第二状态为容器编排系统中记录的目标资源的状态。
相关技术中CI服务器在发送指令之后,直接执行CI/CD的全过程,而不关心容器编排系统中资源的当前状态,从而可能造成最终执行的结果不准确,例如容器编排系统中资源的当前状态已经和目标状态一致,此时继续操作可能造成多删除资源、多增加资源等,或者容器编排系统中资源的状态已经与用户提起资源状态变更时的状态不一致,由于用户提起资源状态变更时是期望从当时的状态变(如某变量的值为10)更至目标状态(如变更为5),而实际操作时资源状态已经变更(如此时变量的值为8),还是按照此操作(即减去5)就会造成资源最终状态(变量的值为3)不符合预期的5。
而通过本申请的上述步骤,容器编排系统在第二状态(即容器编排系统中记录的目标资源的当前状态)与第一状态(即目标仓库中记录的目标资源的目标状态)不匹配的情况下,执行将目标资源的状态从第二状态变更为第一状态的操作,从而可以保证是根据资源当前的实际状态和目标状态来执行,而不仅仅是根据目标状态来执行,可以解决了相关技术中运行结果不准确的技术问题,进而达到提高运行结果的准确度的技术效果。
本申请实施例的资源的管理方法可以在Git仓库103侧来执行,也可以Kubernetes集群105侧来执行,可在容器编排系统中配置有用于进行状态变更的同步代理,进而通过同步代理完成上述方法。图3是根据本申请实施例的一种可选的资源的管理方法的流程图,如图3所示,该方法可以包括以下步骤:
步骤S302,配置同步代理,在容器编排系统存放部署配置文件,通过该配置文件实现同步代理与目标仓库、同步服务、容器编排系统之间的交互。
上述步骤S302为可选的操作,不用每次执行本申请的方法都进行步骤S302的同步代理的配置,一旦完成配置之后,后续执行本申请的方法时可不用再进行配置。
步骤S304,同步代理获取同步服务的目标命令,目标命令是同步服务指示容器编排系统中的目标资源的状态需要变更的命令。
步骤S306,同步代理获取目标资源的第一状态和第二状态,第一状态为从目标仓库中获取的目标资源的目标状态,第二状态为从容器编排系统中获取的目标资源的状态。
步骤S308,在第二状态与第一状态不匹配的情况下,同步代理在容器编排系统中执行将目标资源的状态从第二状态变更为第一状态的操作。
可选地,在容器编排系统中执行将目标资源的状态从第二状态变更为第一状态的操作包括以下至少之一:在容器编排系统中存入目标资源;在容器编排系统中删除目标资源;在容器编排系统中对目标资源进行资源更新。
为了保证目标资源在目标仓库中的状态与在容器编排系统中的状态保持一致,在容器编排系统中执行将目标资源的状态从第二状态变更为第一状态的操作的过程中或者之后,同步代理获取目标资源在容器编排系统中的第三状态,第三状态是目标资源从第二状态变更至的状态;在目标仓库中将目标资源的当前状态更新为第三状态。
可选地,在目标仓库中将目标资源的当前状态从第二状态更新为第三状态时,同步代理将第三状态反馈给同步服务,由同步服务将目标仓库记录的目标资源的当前状态更新为第三状态。
可选地,系统可能发生故障,为了保证故障后系统的正常运行,在容器编排系统中执行将目标资源的状态从第二状态变更为第一状态的操作的过程中或者之后,在容器编排系统发生故障重启之后,同步代理获取目标资源在容器编排系统中当前所处的第四状态;同步代理将第四状态反馈给同步服务,由同步服务将目标仓库记录的目标资源的当前状态更新为第四状态。
在相关技术中,相关技术中当用户开始运行一个CI/CD过程时,CI服务器会生成Jenkins job,然后这个job会从Gitlab拉取代码,执行构建、打包、上传镜像等活动,然后CI服务器会直接调用Kubernetes的API来进行部署,这种方案存在如下缺陷:
1)安全问题,该方案中CI服务器需要对Kubernetes集群进行“push”操作,任务的主动发起方是CI服务器,这是推式流水线,这意味着CI服务器需要保存Kubernetes集群的安全凭证,而这会带来安全风险;另外,由于Kubernetes集群可能会有多个,因此CI服务器需要单独保存每个Kubernetes集群的安全凭证,并且需要在这些凭证更新后及时进行更新以保持同步,这个同步过程可能会出错,也可能会不够及时,从而为整个系统带来不确定性。
2)系统中没有统一的事实来源,CI服务器和Kubernetes集群都可以作为事实来源,当不确定的事情发生时,比如某一个job失败了,会难以确定系统的真实状态,多个CIjob间的执行顺序也难以确定,当多个job尝试用不同的配置去部署同一个镜像时,如果某个job出现问题,问题将难以被定位和跟踪。
在本申请的技术方案中,可把所有对系统的期望状态的描述用描述性语言(如YAML)存储在统一的Git仓库(即目标仓库)中,并将这个Git仓库作为唯一事实来源,所有对期望状态的改变都以Git commit(即目标命令)的形式存在。使用Kubernetes作为容器的运行时系统,这样系统所有能被指定的属性都是可观察的,如此一来,可以判定出期望状态和被观察的实际状态是相同的(收敛的)还是不同的(互相偏离的)。
另外,当期望状态和观察到的实际状态不同时,使用一套使收敛机制让期望状态和观察到的实际状态自动的逐渐同步,当一个新的Git commit出现时,意味着期望状态发生了改变,这套机制就会被自动触发开始工作,本方案使用一个部署同步代理和一个配置同步服务来实现Kubernetes集群外的使能收敛机制。
作为一种可选的实施例,本方案实现了一个部署同步代理(可简称同步代理)和一个配置同步服务(可简称同步服务),配合Kubernetes、Git、Helm等技术实现了一套完整的基于Gitops的CI/CD流水线。系统整体架构和流程图如图4所示。
配置同步服务与git仓库以及部署同步代理交互,部署于Kubernetes集群外,部署同步代理与git仓库、配置同步服务以及Kubernetes集群交互,部署于Kubernetes集群内部。为了满足高安全性、实时性等需求,部署同步代理作为配置同步服务的客户端存在,两者的交互可使用WebSocket长连接。
当用户在系统中创建一套环境时,系统会自动创建一套与环境相对应的Git仓库用于存放部署配置文件,所有在该环境中执行的部署操作,最终都会被配置同步服务转换成对Git仓库中部署配置文件的操作。
步骤S401,用户直接或间接对Git库进行提交以进行相关部署操作。
步骤S402,对部署配置文件的Git提交产生后,Git仓库中回调机制被触发,将此变更通知给配置同步服务,该服务存在一个新提交。
步骤S403,配置同步服务接收到通知后,根据通知内容拉取Git仓库中最新的提交,然后与最后一个tag版本执行解析操作,再根据比较的结果生成对应的解析tag,将此解析tag提交至Git仓库。
步骤S404,配置同步服务通知部署同步代理去拉取配置同步服务最新生成的解析tag。
步骤S405,部署同步代理从Git仓库拉取最新解析tag。
步骤S406,部署同步代理将Git仓库中的部署配置文件和Kubernetes集群中的真实状态进行比较,根据比较结果执行对应的创建、更新、删除等部署配置。操作完成后,将操作结果发送回配置同步服务。
部署同步代理使用Kubernetes的Controller机制监听Kubernetes中的各个资源对象,当出现任何对象创建、更新或删除时,部署同步代理就会及时监听到,并与系统期望状态进行比较,并将比较结果回传给配置同步服务。当比较结果为不一致时,部署同步代理会按照系统期望状态对Kubernetes执行操作来实现同步。
本发明使用一套状态同步机制来保障部署同步代理与配置同步服务之间的交互。如果网络出现故障,当故障消除连接重新建立后,部署同步代理会利用Controller获取Kubernetes集群中各类资源的实际状态并发送给配置同步服务,使得配置同步服务中各类资源与集群中实际情况保持一致。配置同步服务也会定期发送那些超过一定时间但还没有到达终态的资源对象至部署同步代理,由部署同步代理去Kubernetes集群中查询这些资源对象的实际状态,进行同步。
在本申请的技术方案中,采用了用于实现Kubernetes集群外使收敛机制的部署同步代理和配置同步服务,没有单一工具可以完成整个CI/CD流水线的所有工作,实现基于Gitops的CI/CD流水线的关键就是把工具链整合到一起的部署同步代理和配置同步服务。相对于传统实现中的推式流水线,本申请使用的是拉式流水线,CI服务器不需要保存Kubernetes安全凭证,从而提高了安全性;使用Git存储作为单一事实来源,以及使用部署同步器等使收敛机制,可以让集群根据给定的目标状态自动同步、自动收敛,从而实现稳定可靠的回滚机制,更优秀的平均部署时间和平均恢复时间,和更简单的审计机制。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
根据本申请实施例的另一个方面,还提供了一种用于实施上述资源的管理方法的资源的管理装置。该装置可以包括:
生成单元,用于在目标仓库中记录的目标资源的当前状态与目标状态不匹配的情况下,生成目标命令,其中,所述目标命令用于指示容器编排系统中的目标资源的状态需要变更;
发送单元,用于向所述容器编排系统发送所述目标命令,其中,所述容器编排系统用于在第二状态与第一状态不匹配的情况下,执行将所述目标资源的状态从所述第二状态变更为所述第一状态的操作,所述第一状态为目标仓库中记录的所述目标资源的目标状态,所述第二状态为所述容器编排系统中记录的所述目标资源的状态。
可选地,为所述目标仓库配置有用于监控状态的同步服务,在所述容器编排系统中配置有用于进行状态变更的同步代理,生成单元还可用于指示:所述同步服务监控所述目标仓库中记录的所述目标资源的当前状态与目标状态;在所述目标资源的当前状态与目标状态保持不匹配的持续时间达到预定时间阈值的情况下,所述同步服务生成所述目标命令;发送单元还可用于指示:所述同步服务向所述同步代理发送所述目标命令。
通过上述模块,容器编排系统在第二状态(即容器编排系统中记录的所述目标资源的当前状态)与第一状态(即目标仓库中记录的所述目标资源的目标状态)不匹配的情况下,执行将所述目标资源的状态从所述第二状态变更为所述第一状态的操作,从而可以保证是根据资源当前的实际状态和目标状态来执行,而不仅仅是根据目标状态来执行,可以解决了相关技术中运行结果不准确的技术问题,进而达到提高运行结果的准确度的技术效果。
根据本申请实施例的另一个方面,还提供了一种用于实施上述资源的管理方法的资源的管理装置。该装置可以包括:
第一获取单元,用于获取目标命令,其中,所述目标命令用于指示容器编排系统中的目标资源的状态需要变更;
第二获取单元,用于获取所述目标资源的第一状态和第二状态,其中,所述第一状态为目标仓库中记录的所述目标资源的目标状态,所述第二状态为所述容器编排系统中记录的所述目标资源的状态;
执行单元,用于在所述第二状态与所述第一状态不匹配的情况下,在所述容器编排系统中执行将所述目标资源的状态从所述第二状态变更为所述第一状态的操作。
可选地,执行单元,还可用于在所述容器编排系统中执行将所述目标资源的状态从所述第二状态变更为所述第一状态的操作的过程中或者之后,获取所述目标资源在所述容器编排系统中的第三状态,其中,所述第三状态是所述目标资源从所述第二状态变更至的状态;在所述目标仓库中将所述目标资源的当前状态更新为所述第三状态。
可选地,为所述目标仓库配置有用于监控状态的同步服务,在所述容器编排系统中配置有用于进行状态变更的同步代理,第一获取单元还可用于指示所述同步代理获取所述同步服务发送的所述目标命令,其中,所述目标命令是所述同步服务在监控到存在当前状态与目标状态不匹配的所述目标资源的情况下生成的;执行单元还可用于指示:所述同步代理将所述第三状态反馈给所述同步服务,由所述同步服务将所述目标仓库记录的所述目标资源的当前状态更新为所述第三状态。
可选地,执行单元还可用于指示:在所述容器编排系统中执行将所述目标资源的状态从所述第二状态变更为所述第一状态的操作的过程中或者之后,在所述容器编排系统发生故障重启之后,所述同步代理获取所述目标资源在所述容器编排系统中当前所处的第四状态;所述同步代理将所述第四状态反馈给所述同步服务,由所述同步服务将所述目标仓库记录的所述目标资源的当前状态更新为所述第四状态。
可选地,执行单元还可用于:在所述容器编排系统中存入所述目标资源;在所述容器编排系统中删除所述目标资源;在所述容器编排系统中对所述目标资源进行资源更新。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
根据本申请实施例的另一个方面,还提供了一种用于实施上述资源的管理方法的服务器或终端。
图5是根据本申请实施例的一种终端的结构框图,如图5所示,该终端可以包括:一个或多个(图5中仅示出一个)处理器501、存储器503、以及传输装置505,如图5所示,该终端还可以包括输入输出设备507。
其中,存储器503可用于存储软件程序以及模块,如本申请实施例中的资源的管理方法和装置对应的程序指令/模块,处理器501通过运行存储在存储器503内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的资源的管理方法。存储器503可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器503可进一步包括相对于处理器501远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
上述的传输装置505用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置505包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置505为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
其中,具体地,存储器503用于存储应用程序。
处理器501可以通过传输装置505调用存储器503存储的应用程序,以执行下述步骤:
获取目标命令,其中,所述目标命令用于指示容器编排系统中的目标资源的状态需要变更;
获取所述目标资源的第一状态和第二状态,其中,所述第一状态为目标仓库中记录的所述目标资源的目标状态,所述第二状态为所述容器编排系统中记录的所述目标资源的状态;
在所述第二状态与所述第一状态不匹配的情况下,在所述容器编排系统中执行将所述目标资源的状态从所述第二状态变更为所述第一状态的操作。
处理器501还用于执行下述步骤:
在目标仓库中记录的目标资源的当前状态与目标状态不匹配的情况下,生成目标命令,其中,所述目标命令用于指示容器编排系统中的目标资源的状态需要变更;
向所述容器编排系统发送所述目标命令,其中,所述容器编排系统用于在第二状态与第一状态不匹配的情况下,执行将所述目标资源的状态从所述第二状态变更为所述第一状态的操作,所述第一状态为目标仓库中记录的所述目标资源的目标状态,所述第二状态为所述容器编排系统中记录的所述目标资源的状态。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
本领域普通技术人员可以理解,图5所示的结构仅为示意,终端可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile InternetDevices,MID)、PAD等终端设备。图5其并不对上述电子装置的结构造成限定。例如,终端还可包括比图5中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图5所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
本申请的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行资源的管理方法的程序代码。
可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
获取目标命令,其中,所述目标命令用于指示容器编排系统中的目标资源的状态需要变更;
获取所述目标资源的第一状态和第二状态,其中,所述第一状态为目标仓库中记录的所述目标资源的目标状态,所述第二状态为所述容器编排系统中记录的所述目标资源的状态;
在所述第二状态与所述第一状态不匹配的情况下,在所述容器编排系统中执行将所述目标资源的状态从所述第二状态变更为所述第一状态的操作。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:
在目标仓库中记录的目标资源的当前状态与目标状态不匹配的情况下,生成目标命令,其中,所述目标命令用于指示容器编排系统中的目标资源的状态需要变更;
向所述容器编排系统发送所述目标命令,其中,所述容器编排系统用于在第二状态与第一状态不匹配的情况下,执行将所述目标资源的状态从所述第二状态变更为所述第一状态的操作,所述第一状态为目标仓库中记录的所述目标资源的目标状态,所述第二状态为所述容器编排系统中记录的所述目标资源的状态。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (11)
1.一种资源的管理方法,其特征在于,包括:
获取目标命令,其中,所述目标命令用于指示容器编排系统中的目标资源的状态需要变更;
获取所述目标资源的第一状态和第二状态,其中,所述第一状态为目标仓库中记录的所述目标资源的目标状态,所述第二状态为所述容器编排系统中记录的所述目标资源的状态;
在所述第二状态与所述第一状态不匹配的情况下,在所述容器编排系统中执行将所述目标资源的状态从所述第二状态变更为所述第一状态的操作。
2.根据权利要求1所述的方法,其特征在于,在所述容器编排系统中执行将所述目标资源的状态从所述第二状态变更为所述第一状态的操作的过程中或者之后,所述方法还包括:
获取所述目标资源在所述容器编排系统中的第三状态,其中,所述第三状态是所述目标资源从所述第二状态变更至的状态;
在所述目标仓库中将所述目标资源的当前状态更新为所述第三状态。
3.根据权利要求2所述的方法,其特征在于,为所述目标仓库配置有用于监控状态的同步服务,在所述容器编排系统中配置有用于进行状态变更的同步代理,
获取目标命令包括:所述同步代理获取所述同步服务发送的所述目标命令,其中,所述目标命令是所述同步服务在监控到存在当前状态与目标状态不匹配的所述目标资源的情况下生成的;
在所述目标仓库中将所述目标资源的当前状态从所述第二状态更新为所述第三状态包括:所述同步代理将所述第三状态反馈给所述同步服务,由所述同步服务将所述目标仓库记录的所述目标资源的当前状态更新为所述第三状态。
4.根据权利要求3所述的方法,其特征在于,在所述容器编排系统中执行将所述目标资源的状态从所述第二状态变更为所述第一状态的操作的过程中或者之后,所述方法还包括:
在所述容器编排系统发生故障重启之后,所述同步代理获取所述目标资源在所述容器编排系统中当前所处的第四状态;
所述同步代理将所述第四状态反馈给所述同步服务,由所述同步服务将所述目标仓库记录的所述目标资源的当前状态更新为所述第四状态。
5.根据权利要求1至4中任意一项所述的方法,其特征在于,在所述容器编排系统中执行将所述目标资源的状态从所述第二状态变更为所述第一状态的操作包括以下至少之一:
在所述容器编排系统中存入所述目标资源;
在所述容器编排系统中删除所述目标资源;
在所述容器编排系统中对所述目标资源进行资源更新。
6.一种资源的管理方法,其特征在于,包括:
在目标仓库中记录的目标资源的当前状态与目标状态不匹配的情况下,生成目标命令,其中,所述目标命令用于指示容器编排系统中的目标资源的状态需要变更;
向所述容器编排系统发送所述目标命令,其中,所述容器编排系统用于在第二状态与第一状态不匹配的情况下,执行将所述目标资源的状态从所述第二状态变更为所述第一状态的操作,所述第一状态为目标仓库中记录的所述目标资源的目标状态,所述第二状态为所述容器编排系统中记录的所述目标资源的状态。
7.根据权利要求6所述的方法,其特征在于,为所述目标仓库配置有用于监控状态的同步服务,在所述容器编排系统中配置有用于进行状态变更的同步代理,
在目标仓库中记录的目标资源的当前状态与目标状态不匹配的情况下,生成目标命令包括:所述同步服务监控所述目标仓库中记录的所述目标资源的当前状态与目标状态;在所述目标资源的当前状态与目标状态保持不匹配的持续时间达到预定时间阈值的情况下,所述同步服务生成所述目标命令;
向所述容器编排系统发送所述目标命令包括:所述同步服务向所述同步代理发送所述目标命令。
8.一种资源的管理装置,其特征在于,包括:
第一获取单元,用于获取目标命令,其中,所述目标命令用于指示容器编排系统中的目标资源的状态需要变更;
第二获取单元,用于获取所述目标资源的第一状态和第二状态,其中,所述第一状态为目标仓库中记录的所述目标资源的目标状态,所述第二状态为所述容器编排系统中记录的所述目标资源的状态;
执行单元,用于在所述第二状态与所述第一状态不匹配的情况下,在所述容器编排系统中执行将所述目标资源的状态从所述第二状态变更为所述第一状态的操作。
9.一种资源的管理装置,其特征在于,包括:
生成单元,用于在目标仓库中记录的目标资源的当前状态与目标状态不匹配的情况下,生成目标命令,其中,所述目标命令用于指示容器编排系统中的目标资源的状态需要变更;
发送单元,用于向所述容器编排系统发送所述目标命令,其中,所述容器编排系统用于在第二状态与第一状态不匹配的情况下,执行将所述目标资源的状态从所述第二状态变更为所述第一状态的操作,所述第一状态为目标仓库中记录的所述目标资源的目标状态,所述第二状态为所述容器编排系统中记录的所述目标资源的状态。
10.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,所述程序运行时执行上述权利要求1至7任一项中所述的方法。
11.一种电子装置,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器通过所述计算机程序执行上述权利要求1至7任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010970202.4A CN112130889A (zh) | 2020-09-15 | 2020-09-15 | 资源的管理方法和装置、存储介质、电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010970202.4A CN112130889A (zh) | 2020-09-15 | 2020-09-15 | 资源的管理方法和装置、存储介质、电子装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112130889A true CN112130889A (zh) | 2020-12-25 |
Family
ID=73846740
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010970202.4A Pending CN112130889A (zh) | 2020-09-15 | 2020-09-15 | 资源的管理方法和装置、存储介质、电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112130889A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114936048A (zh) * | 2022-05-10 | 2022-08-23 | 北京达佳互联信息技术有限公司 | 配置管理方法、装置、电子设备及存储介质 |
CN115080364A (zh) * | 2022-05-20 | 2022-09-20 | 北京百度网讯科技有限公司 | 应用状态确定方法、装置、电子设备及存储介质 |
-
2020
- 2020-09-15 CN CN202010970202.4A patent/CN112130889A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114936048A (zh) * | 2022-05-10 | 2022-08-23 | 北京达佳互联信息技术有限公司 | 配置管理方法、装置、电子设备及存储介质 |
CN114936048B (zh) * | 2022-05-10 | 2024-03-19 | 北京达佳互联信息技术有限公司 | 配置管理方法、装置、电子设备及存储介质 |
CN115080364A (zh) * | 2022-05-20 | 2022-09-20 | 北京百度网讯科技有限公司 | 应用状态确定方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110389900B (zh) | 一种分布式数据库集群测试方法、装置及存储介质 | |
CN108566290B (zh) | 服务配置管理方法、系统、存储介质和服务器 | |
US20220147367A1 (en) | Method and System for Automation Tool Set for Server Maintenance Actions | |
CN111930521A (zh) | 用于部署应用的方法、装置、电子设备及可读存储介质 | |
US20180307472A1 (en) | Simultaneous deployment on cloud devices and on on-premise devices | |
CN106657167B (zh) | 管理服务器、服务器集群、以及管理方法 | |
CN107741852B (zh) | 一种基于集群软件的服务部署方法 | |
US20200084275A1 (en) | Computer servers for datacenter management | |
US10942831B2 (en) | Automating and monitoring rolling cluster reboots | |
CN112860282B (zh) | 集群插件的升级方法、装置和服务器 | |
CN112130889A (zh) | 资源的管理方法和装置、存储介质、电子装置 | |
US8612799B2 (en) | Method and apparatus of backing up subversion repository | |
CN111651352B (zh) | 一种仓库代码的合并方法及装置 | |
CN110890987A (zh) | 自动创建集群的方法、装置、设备和系统 | |
RU2643429C2 (ru) | Способ управления синхронизацией файлов (варианты), электронное устройство (варианты) и машиночитаемый носитель | |
US11422789B2 (en) | System and method for implementing software release version update automation tool | |
CN110661851A (zh) | 数据交换方法和装置 | |
US20240086173A1 (en) | Distributed autonomous patching system | |
CN104104701A (zh) | 在线服务的配置更新的方法和系统 | |
CN110620798A (zh) | Ftp连接的控制方法、系统、设备和存储介质 | |
US8402125B2 (en) | Method of managing operations for administration, maintenance and operational upkeep, management entity and corresponding computer program product | |
CN110620695B (zh) | 一种数据处理方法及相关设备 | |
CN116346834A (zh) | 一种会话同步方法、装置、计算设备及计算机存储介质 | |
CN113220480B (zh) | 分布式的数据任务跨云调度系统及方法 | |
CN111381932B (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 |