CN116880956A - 一种应用于数字工厂的自动化部署方法及*** - Google Patents
一种应用于数字工厂的自动化部署方法及*** Download PDFInfo
- Publication number
- CN116880956A CN116880956A CN202310867655.8A CN202310867655A CN116880956A CN 116880956 A CN116880956 A CN 116880956A CN 202310867655 A CN202310867655 A CN 202310867655A CN 116880956 A CN116880956 A CN 116880956A
- Authority
- CN
- China
- Prior art keywords
- deployment
- node
- digital
- nodes
- script
- 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
- 238000000034 method Methods 0.000 title claims abstract description 71
- 230000008569 process Effects 0.000 claims abstract description 30
- 230000002159 abnormal effect Effects 0.000 claims abstract description 27
- 238000005096 rolling process Methods 0.000 claims abstract description 8
- 238000013515 script Methods 0.000 claims description 76
- 238000012545 processing Methods 0.000 claims description 28
- 238000009434 installation Methods 0.000 claims description 14
- 238000004891 communication Methods 0.000 claims description 11
- 238000009826 distribution Methods 0.000 claims description 9
- 230000007246 mechanism Effects 0.000 claims description 9
- 238000012544 monitoring process Methods 0.000 claims description 9
- 230000008859 change Effects 0.000 claims description 7
- 230000000977 initiatory effect Effects 0.000 claims description 3
- 230000001960 triggered effect Effects 0.000 claims description 2
- 238000003860 storage Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000011084 recovery Methods 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 101100264195 Caenorhabditis elegans app-1 gene Proteins 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000014616 translation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0793—Remedial or corrective actions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45591—Monitoring or debugging support
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Factory Administration (AREA)
Abstract
本申请公开了一种应用于数字工厂的自动化部署方法及***,该方法包括:建立容器集群部署流程,初始化每一个数字工厂节点并启动自动化部署;在部署过程中,动态追踪所述每一个数字工厂节点的状态;若在部署过程中出现节点状态异常,则根据异常节点的状态信息和部署进度,判断是否要重新部署;若判断为是,则回滚至上一个部署步骤中,重新进行部署。
Description
技术领域
本申请属于信息技术领域,具体地,涉及一种应用于数字工厂的自动化部署方法及***。
背景技术
随着第四次工业革命的到来,数字工厂成为实现智能制造的关键技术手段。但是数字工厂涉及的技术体系复杂,***集成过程难度大,传统的人工部署方式无法满足数字工厂对自动化、故障快速恢复的需求。
现有技术中,容器集群作为云原生架构的核心,天生具有可移植性、动态管理等优点,非常适合应用于数字工厂。但是在该技术框架中,无法针对断点/异常节点进行快速定位和续传,不能满足数字工厂对于异常节点的快速恢复要求。
发明内容
本申请提供了一种应用于数字工厂的自动化部署方法及***,有效解决了现有技术中无法快速定位异常节点并进行续传的问题。
为了实现上述目的,本申请实施例提供一种应用于数字工厂的自动化部署方法,包括:
建立容器集群部署流程,初始化每一个数字工厂节点并启动自动化部署;
在部署过程中,动态追踪所述每一个数字工厂节点的状态;
若在部署过程中出现节点状态异常,则根据异常节点的状态信息和部署进度,判断是否要重新部署;
若判断为是,则回滚至上一个部署步骤中,重新进行部署。
可选地,所述建立容器集群部署流程,初始化每一个数字工厂节点并启动自动化部署,包括:
启动ClusterDeploy CRD对象,描述部署所需信息;
编写statefulset或deployment清单模板,以生成K8S资源;
启动控制器Reactor,监听所述ClusterDeploy CRD对象,并生成数字工厂节点启动脚本、K8S组件安装脚本和应用部署脚本;
利用进程间通信机制Webhook触发脚本执行,初始化每一个数字工厂节点并启动自动化部署。
可选地,动态追踪所述每一个数字工厂节点的状态,包括:
所述控制器根据执行脚本的反馈实时更新ClusterDeploy对象的状态,其中,所述状态中的各字段表示当前步骤的执行状态;
每执行一步骤,所述控制器会在所述状态中更新对应字段;
如果某步骤失败,会在相应的状态字段更新失败信息。
可选地,根据异常节点的状态信息和部署进度,判断是否要重新部署,若判断为是,则回滚至上一个部署步骤中,重新进行部署,包括:
所述控制器通过监听ClusterDeploy对象的状态变化来判断部署流程的进展;
如果第一数字工厂节点的部署失败,所述控制器获取所述第一述职工厂节点的优先级及已经完成的步骤,所述第一数字工厂节点为异常节点;
如果所述第一数字工厂节点为低优先级或已完成预定步骤,所述控制器会继续后续数字工厂节点的部署;
如果所述第一数字工厂节点为高优先级或未完成预定步骤,所述控制器回滚至上一步骤;
在回滚过程中,所述控制器在相应的状态字段清除已执行步骤的状态,并重置所述第一数字工厂节点的进度。
可选地,所述控制器回滚至上一步骤之后,所述方法还包括:
获取与所述第一数字工厂节点相邻的多个数字工厂节点状态;
判断所述多个数字工厂节点是否允许接受冗余部署;
若是,将所述第一数字工厂节点的部署任务分发至所述多个数字工厂节点中,以代替所述第一数字工厂节点完成下一步骤的部署任务。
可选地,所述将所述第一数字工厂节点的部署任务分发至所述多个数字工厂节点中,包括:
将所述部署任务按照预定比例分批分发至所述多个数字工厂节点中,以使所述多个数字工厂节点同步完成所述部署任务的处理,
或,将所述部署任务通过广播消息分发至所述多个数字工厂节点中,以使所述多个数字工厂节点同步完成所述部署任务的处理,
或,基于所述多个数字工厂节点的状态,自适应制定分配比例,将所述部署任务按照所述分配比例分发至对应的多个数字工厂节点中。
可选地,基于所述多个数字工厂节点的状态,自适应制定分配比例,将所述部署任务按照所述分配比例分发至对应的多个数字工厂节点中,包括:
定义初始权重;
在所述多个数字工厂节点的状态字段中获取饱和度、处理频率和时延信息;
基于所述饱和度、处理频率和时延信息,计算出单位时间内所述多个数字工厂节点分别能处理的部署任务数;
基于所述部署任务数,制定分配比例,并将所述部署任务按照所述分配比例分发至对应的多个数字工厂节点中。
可选地,所述生成数字工厂节点启动脚本、K8S组件安装脚本和应用部署脚本;利用进程间通信机制Webhook触发脚本执行,包括:
依据ClusterDeploy对象中的节点列表信息,为每台数字工厂节点生成云主机启动脚本;
脚本通过调用云API完成主机的创建、启动与初始化;
生成主Master节点的kubeadm init脚本,以初始化K8S控制平面;
生成工作Worker节点的kubeadmjoin脚本,以将Worker节点加入K8S集群;
解析ClusterDeploy对象中的应用清单模板,生成实际的Deployment或StatefulSet资源清单;
所述控制器启动一个Webhook Server,每生成一组脚本,所述控制器会发送POST请求触发所述Webhook Server执行相应脚本,所述Webhook Server解析脚本信息,调用进程执行脚本完成工作。
本发明实施例还提供一种应用于数字工厂的自动化部署***,包括:
初始化模块,用于建立容器集群部署流程,初始化每一个数字工厂节点并启动自动化部署;
动态追踪模块,用于在部署过程中,动态追踪所述每一个数字工厂节点的状态;
判断模块,用于若在部署过程中出现节点状态异常,则根据异常节点的状态信息和部署进度,判断是否要重新部署;
回滚模块,用于:若所述判断模块判断为是,则回滚至上一个部署步骤中,重新进行部署。
本发明实施例还提供一种应用于数字工厂的自动化部署***,包括存储器和处理器,所述存储器上存储有计算机可执行指令,所述处理器运行所述存储器上的计算机可执行指令时实现上述的方法。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行上述应用于数字工厂的自动化部署方法。
本申请实施例提出的方法及***,通过设置控制器进行自动化部署过程中的动态跟踪,一旦发现异常节点,可基于该节点的状态字段进行快速定位,自动做出回滚并重新部署,可以最大限度的避免重复操作,加速部署流程的恢复。
附图说明
图1为一个实施例中应用于数字工厂的自动化部署方法的流程图;
图2为步骤S101的细化流程图;
图3为步骤S102的细化流程图;
图4为一个实施例中回滚操作的细化流程图;
图5为一个实施例中冗余部署的方法流程图;
图6为一个实施例中应用于数字工厂的自动化部署***的结构框图;
图7为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。此外,下面所描述的本申请各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
图1是本发明实施例中应用于数字工厂的自动化部署方法流程示意图,如图1所示,本发明实施例包括如下步骤:
S101.建立容器集群部署流程,初始化每一个数字工厂节点并启动自动化部署;
容器Docker是一个开源的应用容器引擎,让开发者可以以统一的方式打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何安装了docker引擎的服务器上(包括流行的Linux机器、windows机器),也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
容器集群是指多个容器的集合,在本发明实施例中,启动任一一组容器集群都需要进行一体化部署流程的编排和启动,以方便后续节点任务的处理和执行。
数字工厂节点Node是指分布在数字工厂的分布式计算节点,例如工业控制器PDA,工业计算机PC等都属于数字工厂节点,在实现数字工厂节点自动化部署的初期,采用Kubernetes(K8S)操作者Operator模式,开发容器集群部署Operator,编排Node节点初始化、Kubernetes集群安装与应用部署等步骤。
其中,kubernetes,简称K8s,是用8代替名字中间的8个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。
具体地,如图2所示,S101中,建立容器集群部署流程,初始化每一个数字工厂节点并启动自动化部署,包括如下步骤:
S1011、启动ClusterDeploy CRD对象,描述部署所需信息;其中,ClusterDeploy为集群部署,CRD是K8S内建的资源类型,该类型资源主要用来创建用户自定义资源类型的资源;即通过CRD资源,可以将用户自定义资源类型转换为k8s上资源类型;
S1012、编写statefulset或deployment清单模板,以生成K8S资源;其中,StatefulSet和Deployment为在k8s中常用的控制负载(工作负载),以不同方式管理着Pod,通常情况下,StatefulSet用于部署有状态应用,Deployment则用于部署无状态应用;
S1013、启动控制器Reactor,监听所述ClusterDeploy CRD对象,并生成数字工厂节点启动脚本、K8S组件安装脚本和应用部署脚本;控制器根据ClusterDeploy对象生成Node节点启动脚本、K8S组件安装脚本、应用部署脚本等;
S1014、利用进程间通信机制Webhook触发脚本执行,初始化每一个数字工厂节点并启动自动化部署。
可选地,所述生成数字工厂节点启动脚本、K8S组件安装脚本和应用部署脚本;利用进程间通信机制Webhook触发脚本执行,包括:
依据ClusterDeploy对象中的节点列表信息,为每台数字工厂节点生成云主机启动脚本;
脚本通过调用云API完成主机的创建、启动与初始化;
生成主Master节点的kubeadm init脚本,以初始化K8S控制平面;
生成工作Worker节点的kubeadmjoin脚本,以将Worker节点加入K8S集群;(kubeadm init和kubeadmjoin为构建K8S集群的工具,暂无中文译文)
解析ClusterDeploy对象中的应用清单模板,生成实际的Deployment或StatefulSet资源清单;
所述控制器启动一个Webhook Server,每生成一组脚本,所述控制器会发送POST请求触发所述Webhook Server执行相应脚本,所述Webhook Server解析脚本信息,调用进程执行脚本完成工作。
本发明实施例中,针对对控制器生成部署脚本和利用Webhook触发脚本执行进行更详细的说明:
1.生成数字工厂节点Node启动脚本:依据ClusterDeploy对象中的节点列表信息,为每台节点生成云主机启动脚本,包含主机名称、类型、镜像ID等,脚本通过调用云API完成主机的创建、启动与初始化,并在主机上安装Docker等软件;
2.生成K8S组件安装脚本:生成主Master节点的kubeadm init脚本,用于初始化K8S控制平面,并生成工作Worker节点的kubeadmjoin脚本,用于将Worker节点加入K8S集群,其中,各个脚本里均包含K8S版本号、POD网段、Service网段等信息;
3.生成应用部署脚本:解析ClusterDeploy对象中的应用清单模板,生成实际的Deployment/StatefulSet等K8S资源清单,其中,清单里会包含应用的镜像版本、副本数、资源限制等信息;
4.利用Webhook触发脚本执行:Webhook是一个HTTP回调机制,控制器部署时会启动一个Webhook服务器Server,每生成一组脚本,控制器会发送POST请求触发WebhookServer执行相应脚本,Webhook Server会解析Payload中的脚本信息,调用进程执行脚本完成工作,控制器会轮询获取Webhook执行结果,并更新ClusterDeploy对象的状态以上就是对控制器生成各类部署脚本和利用Webhook触发脚本执行的详细说明。通过Webhook机制,控制器可以异步触发脚本的执行,并通过状态监测获得执行结果,此模式较之直接调用进程执行更为灵活高效。
此外,Webhook也使得部署流程的各环节解耦,形成事件驱动的工作流,这也是实现自动化部署的关键。综上,Webhook是实现一体化编排和自动化部署的重要技术手段,控制器通过Webhook可以轻松实现对流程各个步骤的编排和触发,并根据反馈动态跟踪部署状态,这使得Operator模式在复杂工作流的管理上具有很大优势。
控制器根据脚本执行反馈更新ClusterDeploy对象状态,具体包括:
ClusterDeploy对象的状态(status)字段示例:
yaml
status:
nodesInitStatus:#节点初始化状态
node1:Succeeded#node1节点初始化成功
node2:Running#node2节点初始化正在运行
node3:Failed#node3节点初始化失败,以及失败详情
k8sInstallStatus:#K8S安装状态
master:Succeeded#Master节点K8S安装成功
worker:Succeeded#Worker节点K8S安装成功
appsStatus:#应用部署状态
app1:Running#app1应用部署正在运行
app2:Succeeded#app2应用部署成功
Webhook Server在执行每个步骤的脚本后会发送反馈给控制器,包含:
步骤名称:如nodeInit、k8sInstall、appDeploy;
节点名称:如node1、master等;
执行结果:Succeeded、Running、Failed;
失败详情(可选):失败原因等信息
控制器接收到Webhook反馈后,会更新ClusterDeploy对象的状态:
定位到对应步骤的状态字段,如nodesInitStatus;
更新相应节点的执行结果,如将node1的状态更新为Succeeded,如果失败,还需要在该字段加上失败详情的说明;
每更新一步骤的某个节点状态,控制器还需要检查该步骤的全部节点状态,如果全部节点状态更新完成,才表示该步骤整体执行成功。
用户可以随时查询ClusterDeploy对象的状态,了解部署流程的进展与状态。如果某步骤失败,可根据失败详情进行修复或重试。
通过状态字段的设计与实时更新,控制器在完成每个步骤的编排与执行后,可以及时准确地反馈执行结果至用户。这也使得用户可以清晰地监控部署流程,并在必要时快速作出反应,这是实现真正自动化部署的重要一环。
S102.在部署过程中,动态追踪所述每一个数字工厂节点的状态;
部署过程中,Operator内置状态机,可以实时监测部署流程的进度与各个步骤的状态。一旦发生异常,可以快速定位故障点。
其中,动态追踪所述每一个数字工厂节点的状态,如图3所示,具体为:
S1021.所述控制器根据执行脚本的反馈实时更新ClusterDeploy对象的状态,其中,所述状态中的各字段表示当前步骤的执行状态;
S1022.每执行一步骤,所述控制器会在所述状态中更新对应字段;
S1023.如果某步骤失败,会在相应的状态字段更新失败信息。
S103.若在部署过程中出现节点状态异常,则根据异常节点的状态信息和部署进度,判断是否要重新部署;
S104.若判断为是,则回滚至上一个部署步骤中,重新进行部署。
在本发明实施例中,如图4所示,S103和S104具体可以为:
所述控制器通过监听ClusterDeploy对象的状态变化来判断部署流程的进展;
如果第一数字工厂节点的部署失败,所述控制器获取所述第一述职工厂节点的优先级及已经完成的步骤,所述第一数字工厂节点为异常节点;
如果所述第一数字工厂节点为低优先级(优先级的级别可以自定义或根据要求定义)或已完成预定步骤,所述控制器会继续后续数字工厂节点的部署;
如果所述第一数字工厂节点为高优先级或未完成预定步骤,所述控制器回滚至上一步骤;
在回滚过程中,所述控制器在相应的状态字段清除已执行步骤的状态,并重置所述第一数字工厂节点的进度。
在本发明实施例中,上述对控制器判断部署进展与作出重启/回滚决策的具体实现包括:
1.控制器通过监听ClusterDeploy对象的状态变化,判断部署流程的当前步骤及各节点的状态。
2.如果某节点的部署失败,控制器首先会判断该节点的重要性/优先级:其中,Master节点(高优先级)失败,直接回滚整个部署流程以保证K8S集群稳定,大多数Worker节点(高优先级)失败,也需回滚以保证集群功能可用,少量Worker(低优先级)节点失败,且集群功能未受影响,可继续部署其他节点;
3.控制器还会判断已完成的步骤比例,以Node1(第一数字工厂节点)为例:
Node1初始化步骤完成而K8S安装步骤未开始,回滚至节点初始化;
Node1初始化步骤与K8S安装步骤均完成一半,回滚至K8S安装步骤开始;
Node1步骤除应用部署外均完成,重启Node1应用部署步骤。
4.在作出回滚决策后,控制器需要:在status中清除Node1已执行步骤的状态,如nodesInitStatus.node1,将Node1的执行进度重置至需要回滚的步骤,并重新生成回滚至的步骤需要的脚本,如kubeadm reset&&kubeadm init脚本,最后重新发送Webhook请求触发脚本执行,回滚部署流程。
5.如果作出继续其他节点部署的决策,控制器只需:在status中更新Node1的状态为Failed,生成其他节点的部署脚本,发送Webhook请求继续流程。
6.用户在查询到Node1状态为Failed时,可根据失败详情自行修复重试或终止Node1的加入。
控制器通过实时监测部署流程的状态变化,在节点部署失败时可以快速地判断故障严重性和已完成步骤,进而选择恰当的补救方案:回滚到某步骤重试或继续其他节点部署。这使得部署过程在出现问题时也可以按需中断与恢复,而非全过程重来,大大提高了故障恢复的效率。综上,部署流程管理的可中断与恢复是实现高可用部署自动化的关键。控制器通过状态监测与回滚机制,使得Operator模式下的部署流程在发生故障时也可以快速恢复,而不会因某个步骤的失败而完全终止。
此外,如图5所示,所述控制器回滚至上一步骤之后,该方法还包括:
获取与所述第一数字工厂节点相邻的多个数字工厂节点状态;
判断所述多个数字工厂节点是否允许接受冗余部署;其中,冗余部署为非该节点的部署任务,但实际上该节点可以完成这一部署任务,即预留的多余部署处理资源,用于处理突发性的额外部署任务,若多个数字工厂接受该冗余部署,则可以将部署任务(如常规的读取、加载OS、加载payload等任务)由该多个数字工厂节点代替完成,从而无需异常节点再接入部署过程,处理部署任务;
若是,将所述第一数字工厂节点的部署任务分发至所述多个数字工厂节点中,以代替所述第一数字工厂节点完成下一步骤的部署任务。
其中,所述将所述第一数字工厂节点的部署任务分发至所述多个数字工厂节点中,可以包括如下三种方式:
方式一:将所述部署任务按照预定比例分批分发至所述多个数字工厂节点中,以使所述多个数字工厂节点同步完成所述部署任务的处理,即人为分配比例,例如该部署任务需要处理30MB的数据,则可以按照1:2:3:4的比例分发给4个数字工厂节点来处理;
方式二:将所述部署任务通过广播消息分发至所述多个数字工厂节点中,以使所述多个数字工厂节点同步完成所述部署任务的处理,即不区分部署任务也不分割,而是由一个或多个数字工厂节点同时加载并完成,如上例中,4个数字工厂节点都需要处理30MB的数据;
方式三:基于所述多个数字工厂节点的状态,自适应制定分配比例,将所述部署任务按照所述分配比例分发至对应的多个数字工厂节点中。
其中,方式三具体可以包括:
定义初始权重;初始权重为缺省的权重/分配比例,可以为上一次自定义的权重;
在所述多个数字工厂节点的状态字段中获取饱和度、处理频率和时延信息;
基于所述饱和度、处理频率和时延信息,计算出单位时间内所述多个数字工厂节点分别能处理的部署任务数;
基于所述部署任务数,制定分配比例(即,调整初始权重为新的分配比例),并将所述部署任务按照所述分配比例分发至对应的多个数字工厂节点中。
假设一个数字工厂节点的饱和度为sat,处理频率为frq,时延为del。则该节点在一个单位时间内,能够处理的部署任务数num可以通过以下公式进行计算:
num=frac(frq,del,(sat_{max}-sat))
其中frac()为部署任务函数,sat_{max}为该节点的最大饱和度,即能够处理的最大任务数。该公式的含义是:假设该节点当前饱和度为sat,理论上它可以处理的任务数应该是sat_{max}-sat,但是由于时延的存在,实际上节点能够完成的任务数应该介于0到sat_{max}-sat之间,具体数值受到处理频率和时延的影响。
此外,该技术方案的实现需要考虑以下技术细节:
1.状态字段的获取方式:
状态字段包括饱和度、处理频率和时延信息,其获取可以通过各个数字工厂节点内置的监控器进行获取,或者通过第三方监控软件定期获取。获取的数据可以通过API接口或者数据的推送方式从监控器获取。在获取状态字段时,需要考虑保证获取的数据的实时性和可靠性。
2.部署任务数的计算方式:
在获取了多个数字工厂节点的状态字段后,需要通过计算来得出每个数字工厂节点能够处理的部署任务数。可以使用一定的模型算法(如AI时序算法),根据饱和度、处理频率和时延信息的变化趋势,来预测出单位时间内应该分配给每个数字工厂节点的任务数。为了保证计算的准确性,需要收集足够的历史数据来对模型进行训练和优化。
3.部署任务数的分配比例:
在得出了每个数字工厂节点能够处理的部署任务数后,可以通过分配比例来确定每个节点最终能够部署的任务数。分配比例可以根据不同的需求进行制定,比如根据节点的处理能力、硬件配置、任务优先级等因素制定。在制定比例时需要考虑任务的实时性,需要确保高优先级的任务优先被分配到相应的数字工厂节点上。
4.部署任务分发方法:
在确定了部署任务数的分配比例后,最后需要实现对任务的分发。任务的分发可以采用基于负载均衡算法的分发方式,将任务按照分配比例分配到对应的数字工厂节点上。此外,也需要考虑任务异常的处理,比如节点故障或网络中断等异常情况,在此时需要将任务临时转移到备用的数字工厂节点上进行处理,以避免任务丢失或中断。
如图6所示,本发明实施例还提供一种应用于数字工厂的自动化部署***,包括:
初始化模块,用于建立容器集群部署流程,初始化每一个数字工厂节点并启动自动化部署;
动态追踪模块,用于在部署过程中,动态追踪所述每一个数字工厂节点的状态;
判断模块,用于若在部署过程中出现节点状态异常,则根据异常节点的状态信息和部署进度,判断是否要重新部署;
回滚模块,用于:若所述判断模块判断为是,则回滚至上一个部署步骤中,重新进行部署。
本申请实施例提出的方法及***,通过设置控制器进行自动化部署过程中的动态跟踪,一旦发现异常节点,可基于该节点的状态字段进行快速定位,自动做出回滚并重新部署,可以最大限度的避免重复操作,加速部署流程的恢复。
本发明实施例还提供一种应用于数字工厂的自动化部署***,包括存储器和处理器,所述存储器上存储有计算机可执行指令,所述处理器运行所述存储器上的计算机可执行指令时实现上述的方法。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行上述应用于数字工厂的自动化部署方法。
在一个实施例中,还提供一种计算机设备,该计算机设备为上述方法实施例中提到的网络安全设备,其内部结构图可以如图7所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过***总线连接,通信接口通过输入/输出接口连接到***总线。
其中,该计算机设备的处理器用于提供计算和控制能力,可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。处理器可以包括是一个或多个处理器,例如包括一个或多个中央处理器(centralprocessing unit,CPU),在处理器是一个CPU的情况下,该CPU可以是单核CPU,也可以是多核CPU。处理器还可以包括一个或多个专用处理器,专用处理器可以包括GPU、FPGA等,用于进行加速处理。处理器用于调用该存储器中的程序代码和数据,执行上述方法实施例中的步骤。具体可参见方法实施例中的描述,在此不再赘述。
该计算机设备的存储器包括但不限于非易失性存储介质和内存储器。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random AccessMemory,MRAM)、铁电存储器(Ferroelectric RandomAccess Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(RandomAccess Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static RandomAccess Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。
该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。
该计算机设备的通信接口用于与外部的终端通过网络连接通信。
该计算机程序被处理器执行时以实现一种应用于数字工厂的自动化部署方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的***和方法,可以通过其它的方式实现。例如,各单元/模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。所显示或讨论的相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,***或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程***。该计算机指令可以存储在计算机可读存储介质中,或者通过该计算机可读存储介质进行传输。该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是只读存储器(read至onlymemory,ROM),或随机存储存储器(random access memory,RAM),或磁性介质,例如,软盘、硬盘、磁带、磁碟、或光介质,例如,数字通用光盘(digital versatile disc,DVD)、或者半导体介质,例如,固态硬盘(solid state disk,SSD)等。
以上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种应用于数字工厂的自动化部署方法,其特征在于,所述方法包括:
建立容器集群部署流程,初始化每一个数字工厂节点并启动自动化部署;
在部署过程中,动态追踪所述每一个数字工厂节点的状态;
若在部署过程中出现节点状态异常,则根据异常节点的状态信息和部署进度,判断是否要重新部署;
若判断为是,则回滚至上一个部署步骤中,重新进行部署。
2.根据权利要求1所述的方法,其特征在于,建立容器集群部署流程,初始化每一个数字工厂节点并启动自动化部署,包括:
启动ClusterDeployCRD对象,描述部署所需信息;
编写statefulset或deployment清单模板,以生成K8S资源;
启动控制器Reactor,监听所述ClusterDeployCRD对象,并生成数字工厂节点启动脚本、K8S组件安装脚本和应用部署脚本;
利用进程间通信机制Webhook触发脚本执行,初始化每一个数字工厂节点并启动自动化部署。
3.根据权利要求2所述的方法,其特征在于,动态追踪所述每一个数字工厂节点的状态,包括:
所述控制器根据执行脚本的反馈实时更新ClusterDeploy对象的状态,其中,所述状态中的各字段表示当前步骤的执行状态;
每执行一步骤,所述控制器会在所述状态中更新对应字段;
如果某步骤失败,会在相应的状态字段更新失败信息。
4.根据权利要求3所述的方法,其特征在于,根据异常节点的状态信息和部署进度,判断是否要重新部署,若判断为是,则回滚至上一个部署步骤中,重新进行部署,包括:
所述控制器通过监听ClusterDeploy对象的状态变化来判断部署流程的进展;
如果第一数字工厂节点的部署失败,所述控制器获取所述第一述职工厂节点的优先级及已经完成的步骤,所述第一数字工厂节点为异常节点;
如果所述第一数字工厂节点为低优先级或已完成预定步骤,所述控制器会继续后续数字工厂节点的部署;
如果所述第一数字工厂节点为高优先级或未完成预定步骤,所述控制器回滚至上一步骤;
在回滚过程中,所述控制器在相应的状态字段清除已执行步骤的状态,并重置所述第一数字工厂节点的进度。
5.根据权利要求4所述的方法,其特征在于,所述控制器回滚至上一步骤之后,所述方法还包括:
获取与所述第一数字工厂节点相邻的多个数字工厂节点状态;
判断所述多个数字工厂节点是否允许接受冗余部署;
若是,将所述第一数字工厂节点的部署任务分发至所述多个数字工厂节点中,以代替所述第一数字工厂节点完成下一步骤的部署任务。
6.根据权利要求5所述的方法,其特征在于,所述将所述第一数字工厂节点的部署任务分发至所述多个数字工厂节点中,包括:
将所述部署任务按照预定比例分批分发至所述多个数字工厂节点中,以使所述多个数字工厂节点同步完成所述部署任务的处理,
或,将所述部署任务通过广播消息分发至所述多个数字工厂节点中,以使所述多个数字工厂节点同步完成所述部署任务的处理,
或,基于所述多个数字工厂节点的状态,自适应制定分配比例,将所述部署任务按照所述分配比例分发至对应的多个数字工厂节点中。
7.根据权利要求6所述的方法,其特征在于,基于所述多个数字工厂节点的状态,自适应制定分配比例,将所述部署任务按照所述分配比例分发至对应的多个数字工厂节点中,包括:
定义初始权重;
在所述多个数字工厂节点的状态字段中获取饱和度、处理频率和时延信息;
基于所述饱和度、处理频率和时延信息,计算出单位时间内所述多个数字工厂节点分别能处理的部署任务数;
基于所述部署任务数,制定分配比例,并将所述部署任务按照所述分配比例分发至对应的多个数字工厂节点中。
8.根据权利要求2所述的方法,其特征在于,所述生成数字工厂节点启动脚本、K8S组件安装脚本和应用部署脚本;利用进程间通信机制Webhook触发脚本执行,包括:
依据ClusterDeploy对象中的节点列表信息,为每台数字工厂节点生成云主机启动脚本;
脚本通过调用云API完成主机的创建、启动与初始化;
生成主Master节点的kubeadminit脚本,以初始化K8S控制平面;
生成工作Worker节点的kubeadmjoin脚本,以将Worker节点加入K8S集群;
解析ClusterDeploy对象中的应用清单模板,生成实际的Deployment或StatefulSet资源清单;
所述控制器启动一个WebhookServer,每生成一组脚本,所述控制器会发送POST请求触发所述WebhookServer执行相应脚本,所述Webhook Server解析脚本信息,调用进程执行脚本完成工作。
9.一种应用于数字工厂的自动化部署***,其特征在于,包括:
初始化模块,用于建立容器集群部署流程,初始化每一个数字工厂节点并启动自动化部署;
动态追踪模块,用于在部署过程中,动态追踪所述每一个数字工厂节点的状态;
判断模块,用于若在部署过程中出现节点状态异常,则根据异常节点的状态信息和部署进度,判断是否要重新部署;
回滚模块,用于:若所述判断模块判断为是,则回滚至上一个部署步骤中,重新进行部署。
10.一种应用于数字工厂的自动化部署***,其特征在于,包括存储器和处理器,所述存储器上存储有计算机可执行指令,所述处理器运行所述存储器上的计算机可执行指令时实现权利要求1至8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310867655.8A CN116880956A (zh) | 2023-07-15 | 2023-07-15 | 一种应用于数字工厂的自动化部署方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310867655.8A CN116880956A (zh) | 2023-07-15 | 2023-07-15 | 一种应用于数字工厂的自动化部署方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116880956A true CN116880956A (zh) | 2023-10-13 |
Family
ID=88254514
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310867655.8A Pending CN116880956A (zh) | 2023-07-15 | 2023-07-15 | 一种应用于数字工厂的自动化部署方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116880956A (zh) |
-
2023
- 2023-07-15 CN CN202310867655.8A patent/CN116880956A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7698391B2 (en) | Performing a provisioning operation associated with a software application on a subset of the nodes on which the software application is to operate | |
US7779298B2 (en) | Distributed job manager recovery | |
US9886260B2 (en) | Managing software version upgrades in a multiple computer system environment | |
US9535754B1 (en) | Dynamic provisioning of computing resources | |
US10489232B1 (en) | Data center diagnostic information | |
US10846079B2 (en) | System and method for the dynamic expansion of a cluster with co nodes before upgrade | |
US10817323B2 (en) | Systems and methods for organizing on-demand migration from private cluster to public cloud | |
Bilal et al. | Fault tolerance in the cloud | |
KR102114339B1 (ko) | 액티브/스탠바이 모델을 지원하는 쿠버네티스 시스템의 동작 방법 | |
CN113886089A (zh) | 一种任务处理方法、装置、***、设备及介质 | |
CN111782341B (zh) | 用于管理集群的方法和装置 | |
CN108170507B (zh) | 虚拟应用管理方法/***、计算机可读存储介质及服务端 | |
CN112737934A (zh) | 一种集群式物联网边缘网关装置及方法 | |
Mohamed et al. | MidCloud: an agent‐based middleware for effective utilization of replicated Cloud services | |
US11544091B2 (en) | Determining and implementing recovery actions for containers to recover the containers from failures | |
US20230161643A1 (en) | Lifecycle management for workloads on heterogeneous infrastructure | |
CN116880956A (zh) | 一种应用于数字工厂的自动化部署方法及*** | |
US10454773B2 (en) | Virtual machine mobility | |
US11461131B2 (en) | Hosting virtual machines on a secondary storage system | |
Stack et al. | Self-healing in a decentralised cloud management system | |
CN114546644A (zh) | 集群资源调度方法、装置、软件程序、电子设备及存储介质 | |
US20210406058A1 (en) | Atomic groups for configuring hci systems | |
US11799714B2 (en) | Device management using baseboard management controllers and management processors | |
KR102394293B1 (ko) | 다종 멀티 지능모듈 프로세스 조합 시스템 | |
Hioual et al. | A method based on multi-agent systems and passive replication technique for predicting failures in cloud computing |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20231013 |