使用容器编排系统和操作技术设备实现无服务器功能的制作方法

文档序号:29561444发布日期:2022-04-09 00:59阅读:114来源:国知局
使用容器编排系统和操作技术设备实现无服务器功能的制作方法

1.本公开内容总体上涉及用于在操作技术(ot)或工业平台中实现容器编排系统的系统和方法。更具体地,本公开内容的实施方式涉及用于利用容器编排系统来协调ot设备的操作的系统和方法。


背景技术:

2.特别是在工业自动化环境中,使用自动化控制和监测系统(例如,工业控制系统)来管理和操作工业自动化系统。这样的应用可以包括控制各种部件例如阀、电动马达等,以及经由传感器收集数据。典型的工业控制系统可以包括一个或更多个部件,例如编程终端、自动化控制器、输入/输出(i/o)模块、通信网络、人机接口(hmi)终端等。
3.通常,在ot环境中操作的工业控制系统被用于控制可经由ot网络访问的工业设备。尽管工业控制系统可以用于管理ot网络内的设备的操作,但是期望用于操作ot网络内的设备的改进系统和方法。例如,信息技术(it)环境中可用的某些技术可以向某些工业控制系统用户提供他们用以操作其it资产的其他管理工具。
4.本部分旨在向读者介绍可能与下面描述和/或要求保护的本技术的各个方面相关的领域的各个方面。本讨论被认为有助于向读者提供背景信息以便于更好地理解本公开内容的各个方面。因此,应当理解,要从这个角度来理解这些陈述,并且这些陈述并非作为对现有技术的承认。


技术实现要素:

5.下面阐述本文中公开的特定实施方式的概述。应当理解,呈现这些方面仅是为了向读者提供这些特定实施方式的简要概述,并且这些方面不旨在限制本公开内容的范围。实际上,本公开内容可以包括可能未在下文中阐述的多个方面。
6.在一个实施方式中,一种系统,可以包括用于控制多个操作技术(ot)设备的多个操作的多个控制系统。该系统还可以包括作为容器编排系统的一部分的计算节点集群中的第一计算节点。第一计算节点可以从节点集群中的第二计算节点接收基于事件的通知,使得第二计算节点与多个控制系统中的第一控制系统和多个ot设备中的第一ot设备相关联。然后,第一计算节点可以根据基于事件的通知确定要执行的一个或更多个分析操作、基于所述一个或更多个分析操作确定要由多个控制系统中的一个或更多个控制系统执行的一个或更多个预分析操作、以及经由计算节点集群的一部分从所述多个控制系统中检索多个机器状态数据集。多个机器状态数据集中的每个机器状态数据集对应于与多个控制系统中的每个控制系统、多个ot设备中的每个ot设备或者多个控制系统中的每个控制系统和多个ot设备中的每个ot设备两者相关联的操作状态。然后,第一计算节点可以基于多个机器状态数据集,将第二控制系统识别为执行一个或更多个预分析操作的合适的主机,以及将容器集(pod)传送至与第二控制系统相关联的第三计算节点。pod可以使第三计算节点执行一个或更多个预分析操作。
7.在另一实施方式中,一种方法,可以包括经由容器编排系统中的计算节点集群中的第一计算节点从所述计算节点集群中的第二计算节点接收pod。该方法还可以包括从注册表中检索包括一个或更多个容器的镜像文件,使得pod可以包括镜像文件在注册表中的位置的指示。一个或更多个容器可以包括供多个控制系统中的控制系统执行的一个或更多个预分析操作。然后,该方法可以涉及基于一个或更多个容器生成包,以及将该包存储在与控制系统共享的文件系统中。
8.在又一实施方式中,一种非暂态计算机可读介质,可以包括计算机可执行指令,所述计算机可执行指令在被执行时使处理器执行以下操作:从作为容器编排系统的一部分的节点集群中的第一计算节点接收基于事件的通知,使得第一计算节点与在工业系统中操作的多个控制系统中的第一控制系统和多个操作技术(ot)设备中的第一ot设备相关联。然后,该处理器可以根据基于事件的通知确定要执行的第一组操作、基于第一组操作确定要由多个控制系统中的一个或更多个控制系统执行的第二组操作以及经由计算节点集群的一部分从所述多个控制系统中检索多个机器状态数据集。多个机器状态数据集中的每个机器状态数据集对应于与多个控制系统中的每个控制系统、多个ot设备中的每个ot设备或者多个控制系统中的每个控制系统和多个ot设备中的每个ot设备两者相关联的操作状态。然后,该处理器可以基于多个机器状态数据集,将第二控制系统识别为执行第二组操作的合适的主机,并且将pod传送至与第二控制系统相关联的第二计算节点。pod可以使第二计算节点执行第二组操作。
附图说明
9.当参照附图阅读以下详细描述时,本实施方式的这些和其他特征、方面和优点将变得更好理解,其中,贯穿附图相同的附图标记表示相同的部分,在附图中:
10.图1是根据实施方式的示例工业自动化系统的立体图;
11.图2是根据实施方式的示例工业控制系统的框图;
12.图3是根据实施方式的与容器编排系统进行协调的示例操作技术(ot)网络的框图;
13.图4是根据实施方式的示出将pod部署至图3的ot网络中的工业控制系统的数据流程图;
14.图5是根据实施方式的用于使工业控制系统被动地实施经由控制编排系统接收的命令的方法的流程图;
15.图6是根据实施方式的用于使工业控制系统主动地实施经由控制编排系统接收的命令的方法的流程图;
16.图7是根据实施方式的用于使用容器编排系统来协调工业控制系统中的分析操作的方法的流程图;以及
17.图8是根据实施方式的用于使用容器编排系统来协调工业控制系统中的滚动更新的方法的流程图。
具体实施方式
18.下面将描述本公开内容的一个或更多个具体实施方式。为了提供对这些实施方式
的简洁描述,可能未在说明书中描述实际实现方式的所有特征。应当理解,在任何这样的实际实现方式的开发过程中,如在任何工程项目或设计项目中一样,必须做出大量的特定于实现方式的决策来达到开发者的具体目标,例如符合系统相关约束条件和商业相关约束条件,这些具体目标可能随实现方式而变化。此外,应当理解,这样的开发努力可能是复杂且耗时的,但对于受益于本公开内容的普通技术人员而言,这样的开发努力仍将是设计、制造和生产的例行任务。
19.在介绍本公开内容的各种实施方式的元素时,冠词“一”、“一个”、“该”和“所述”旨在意指存在一个或更多个元素。术语“包括”、“包含”和“具有”旨在是包括性的,并且意指除了所列元素之外还可以存在其他元素。
20.本公开内容总体上涉及使用信息技术(it)系统来协调作为操作技术(ot)系统的一部分的设备的操作。如以上所提及的,工业控制系统可以用于控制和管理作为ot系统的一部分的设备的操作。然而,这些工业自动化系统的操作者可能会受益于使用由信息技术系统提供的类似处理来管理作为ot网络的一部分的资产例如可编程逻辑控制器(plc)。作为示例,可以将容器编排系统用在it系统中以管理it资产。也就是说,某些it系统可以利用软件容器(例如,操作系统级虚拟化)以及容器编排系统(例如,docker、kubernetes)来跨多个计算资源协调各种容器的构造和部署。实际上,容器可以包括打包代码及其相关性的软件的标准单元,使得容器节点可以执行存储在容器中的应用,而与计算环境或基础结构无关。作为结果,多个容器可以在同一台机器上运行并且与其他容器共享操作系统内核,使得每个容器在相应的机器中作为独立的进程运行。以这种方式,在it环境中操作的容器编排系统构建跨多个计算资源操作的应用服务,使得可以在相同机器中或跨不同计算环境中的多个机器自动部署、扩展和管理某些应用(例如,被打包为软件容器)。
21.记住这一点,使用容器编排系统来管理ot资产的操作可以实现许多优点,包括大规模应用部署、提供来自受管理的注册表的更新、将备用和备份容器副本用于不同ot资产来提供高可用性等。然而,依赖于与控制ot资产的操作系统不同的某些操作系统的容器编排系统可能不能访问ot资产。替代地,可以通过在ot空间中操作的相应设计工具对ot资产进行单独编程和管理。对于许多工业应用,特别是在过程自动化空间中,分布式工业控制系统可以提供多个远程控制节点,这些远程控制节点可以经由ot网络访问这些ot资产或与这些ot资产接口。然而,容器编排系统不能经由该ot网络访问远程控制节点以与如下方式相同的方式管理这些分布式ot资产:容器编排系统在其各自的生命周期期间在供应、部署、操作和维护资产方面管理其联网的it资产。
22.记住上述内容,在某些实施方式中,专用硬件和/或软件控制系统可以被集成到在ot空间中操作的工业控制系统中,使得ot资产所固有的控制系统可以参与编排操作。例如,在一个实施方式中,控制系统可以被配置为工作节点,工作节点可以支持由容器编排系统提供的有限数量的操作或命令。也就是说,工作节点可以包括应用编程接口(api),api支持从容器编排系统的主节点接收某些通信、解析这些通信以确定所请求的命令、将所请求的命令映射至ot资产命令以及将ot资产命令发送至相应的ot资产。
23.在另一实施方式中,单独的计算系统可以使用操作系统(例如,linux)进行操作,操作系统使得该计算系统能够作为(是容器编排系统集群的一部分的)代理节点进行操作。以这种方式,可以对代理节点进行编程以执行容器守护进程(daemon),容器守护进程使得
代理节点能够接收存储在容器注册表中的容器,并且将这些容器以一定规模部署至控制一个或更多个相应ot资产的操作的一个或更多个控制系统。当以这种方式部署时,相应ot资产的控制系统(例如,控制器)可以对容器内容进行解包,使得可以通过相应的控制系统对该容器内容进行验证和加载以用于执行。另外,代理节点可以提供双向桥以用于在ot资产与容器编排系统的主节点之间进行协调。也就是说,代理节点可以与容器编排系统的主节点共享与ot资产的控制系统相关联的状态数据。此外,由于代理节点向主节点提供相应ot资产的操作状态的观察,因此主节点可以在其调度操作中包括该ot资产以维持ot资产集合的期望状态。
24.在任何情况下,本文描述的实施方式提供用于使用如下工业控制系统(例如,控制器)的系统和方法,所述工业控制系统能够控制工业自动化系统中的ot资产的操作,并且能够作为工作节点或代理节点参与容器编排系统。这样,可以通过容器编排系统来协调ot资产的更有效的使用,该容器编排系统可以跨多个ot资产自动控制组成一个或更多个应用的过程。因此,容器编排系统可以为ot资产管理器提供诸如自动更新、健康监测、故障转移过程、系统资源协调等的服务,同时确保ot资产在工业自动化系统中继续执行其各自的操作。下面将参照图1至图8讨论关于协调容器编排系统的操作与控制ot资产的工业控制系统的操作的其他细节。
25.作为介绍,图1是由一个或更多个工业控制系统12控制的示例工业自动化系统10的立体图。如所描绘的,工业自动化系统10包括工位14,工位14具有用于在自动化过程例如硅晶片制造中执行功能的机器部件和/或机器。自动化过程可以在工位14a处开始,工位14a用于经由输送机部分16将诸如基板的物体装载到工业自动化系统10中。输送机部分16可以将物体传送至工位14b以执行第一动作,例如经由模板印刷(stencil)将焊膏印刷至基板。随着物体从工位14b离开,输送机部分16可以将物体运送至工位14c进行焊膏检查(spi)以检查印刷结果,运送至工位14d、14e和14f进行表面贴装技术(smt)组件的放置,运送至工位14g以使对流回流炉将焊料熔化而形成电耦接,并且最后到达工位14h进行自动光学检查(aoi)以检查制成的物体(例如,制成的印刷电路板)。在物体行进通过各个工位之后,可以将物体从工位14h移出以例如存储在仓库中或进行装运。显然,对于其他应用,特定的系统、机器部件、机器、工位和/或输送机可以是不同的或者专门适合于该应用。
26.例如,工业自动化系统10可以包括在压缩机站、炼油厂、用于制造食品的批处理操作、化学处理操作、啤酒厂操作、采矿操作、机械化装配线等中执行各种操作的机械。因此,工业自动化系统10可以包括各种操作部件,例如电动马达、阀门、致动器、温度元件、压力传感器或者用于制造、加工、材料处理和其他应用的大量机械或设备。工业自动化系统10还可以包括电气装备、液压装备、压缩空气装备、蒸汽装备、机械工具、保护装备、制冷装备、电力线、液压线、蒸汽线等。一些示例类型的装备可以包括混合器、机器输送机、罐、滑橇、专用的原始装备制造商机器等。除了上述装备之外,工业自动化系统10还可以包括马达、保护设备、开关设备、压缩机等。这些所描述的操作部件中的每个操作部件可以对应于和/或生成关于操作、状态、传感器数据、操作模式、警报状况等的各种操作技术(ot)数据,可以期望这些操作技术(ot)数据输出以利用来自it网络的it数据进行分析、将其存储在it网络中、利用预期操作设置点(例如阈值)进行分析等。
27.在某些实施方式中,可以由工业控制系统12对工业自动化系统10中的装备例如工
位14的一个或更多个属性进行监测和控制以调整控制变量。例如,感测设备(例如,传感器18)可以监测工业自动化系统10的各种属性,并且可以被工业控制系统12至少部分地用于调整工业自动化系统10的操作(例如,作为控制回路的一部分)。在一些情况下,工业自动化系统10可以与其他装备所使用的设备相关联。例如,可以将扫描仪、仪表、阀门、流量计等布置在工业自动化系统10上或内部。此处,工业控制系统12可以从相关联的设备接收数据并且使用该数据以更有效地执行它们各自的操作。例如,工业自动化系统10的与马达驱动器相关联的控制器可以接收关于所连接马达的温度的数据,并且可以基于该数据调整马达驱动器的操作。
28.工业控制系统12可以通信地耦接至显示器/操作者接口20(例如,人机接口(hmi))以及工业自动化系统10的设备。应当理解,可以在工业自动化系统10的特定实施方式中使用任何合适数量的工业控制系统12。工业控制系统12可以有利于通过编程对象来表示工业自动化系统10的部件,所述编程对象可以被实例化并且被执行以在显示器/操作者接口20上提供与实际部件类似或相同的模拟功能以及这些部件的可视化或者上述两者。编程对象可以包括存储在工业控制系统12中并由工业控制系统12的处理电路系统执行的代码和/或指令。处理电路系统可以与存储器电路系统通信以允许存储部件可视化。
29.如所示出的,显示器/操作者接口20描绘了工业自动化系统10中的各部件的表示22。工业控制系统12可以使用由传感器18传送的数据,以通过改变部件的当前操作的一个或更多个状态、状况和/或指示来更新部件的可视化。这些传感器18可以是适于提供有关过程状况的信息的任何合适的设备。实际上,传感器18可以用在可以由工业控制系统12监测和控制的过程回路(例如,控制回路)中。这样,可以基于过程输入(例如,来自传感器18的输入)或者由人经由显示器/操作者接口20进行的直接输入来激活过程回路。操作和/或监测工业自动化系统10的人可以参考显示器/操作者接口20来确定工业自动化系统10和/或特定部件的各种状态、状况和/或当前操作。此外,操作和/或监测工业自动化系统10的人可以通过与控制面板或各种输入设备的交互将各个部件调整至启动、停止、掉电、上电或以其他方式调整工业自动化系统10的一个或更多个部件的操作。
30.工业自动化系统10可以被认为是具有各自分别生成各种数据的若干过程和操作的数据丰富的环境。例如,工业自动化系统10可以与可以被组织和分类为ot数据的材料数据(例如,与基板或原材料的属性或特征相对应的数据)、参数数据(例如,与例如在工业自动化系统10的操作期间的机器和/或工位的性能相对应的数据)、测试结果数据(例如,与在工业自动化系统10的最终产品或中间产品上执行的各种质量控制测试相对应的数据)等相关联。另外,传感器18可以收集指示工业自动化系统10或工业控制系统12的一个或更多个操作的ot数据。以这种方式,ot数据可以是指示与工业自动化系统10或工业控制系统12的操作相关联的测量结果、状态、警报等的模拟数据或数字数据。
31.上述工业控制系统12可以在ot空间中操作,在ot空间中,ot数据被用于监测和控制ot资产,例如工业自动化系统10的工位14中示出的装备或其他工业装备。ot空间、环境或网络通常包括由工业控制系统12协调的直接监测和控制操作以及对应的ot资产。例如,可编程逻辑控制器(plc)可以在ot网络中操作以控制ot资产(例如,驱动器、马达)的操作。工业控制系统12可以被特别地编程或配置成直接与相应的ot资产通信。
32.另一方面,容器编排系统24可以在信息技术(it)环境中操作。也就是说,容器编排
系统24可以包括多个计算设备的集群,该集群协调对该集群的计算设备内的应用的各个容器的工作进行管理或调度的自动过程。换句话说,容器编排系统24可以用于跨多个计算设备以一定规模使各种任务自动化。作为示例,容器编排系统24可以使以下任务自动化:所述任务例如配置和调度容器,供应和部署容器,确定容器的可用性,根据应用在其中运行的容器来配置应用,扩展容器以均等地平衡基础结构上的应用工作负载,在容器之间分配资源,执行容器的负载平衡、业务路由和服务发现,执行容器的健康监测、保护容器之间的交互等。在任何情况下,容器编排系统24都可以使用配置文件来确定便于容器之间进行通信的网络协议、用于保存日志的存储位置等。容器编排系统24还可以对容器至集群的部署进行调度并且识别最适于执行该容器的主机(例如,节点)。在识别出主机之后,容器编排系统24可以基于预定规范来管理容器的生命周期。
33.记住上述内容,应当注意,容器指的是用于打包应用及其运行时相关性的技术。也就是说,容器包括与底层主机的基础结构(例如,操作系统)解耦的应用。通过包括与容器的运行时相关性,无论容器在其中操作的主机如何,容器都可以相同的方式执行。在一些实施方式中,容器可以作为容器镜像28存储在容器注册表26中。容器注册表26可以是容器编排系统24可访问的任何合适的数据存储装置或数据库。容器镜像28可以对应于包括用于执行相应应用的工具和数据的可执行软件包。也就说是,容器镜像28可以包括用于操作应用的相关代码、应用库、系统库、运行时工具、各种设置的默认值等。
34.作为示例,用户可以使用集成开发环境(ide)工具来创建部署配置文件,该部署配置文件指定容器编排系统24的节点集合的期望状态。部署配置文件可以连同与部署配置文件相关联的各个容器镜像28一起存储在容器注册表26中。部署配置文件可以包括不同pod的列表以及应当在任何给定时间在容器编排系统24内操作的每个pod的多个副本。每个pod可以对应于可以与一个或更多个容器相关联的应用的逻辑单元。容器编排系统24可以对部署配置文件中列出的pod的分布和执行进行协调,使得能够连续满足期望状态。在一些实施方式中,容器编排系统24可以包括主节点,该主节点从容器注册表26中检索部署配置文件、对pod至所连接节点的部署进行调度、并且确保满足部署配置文件中指定的期望状态。例如,如果某个pod在一个节点上停止操作,则主节点可以从不再执行该pod的相应的工作节点接收通知,并且将该pod部署至另一工作节点,以确保通过节点集群呈现期望状态。
35.如以上所提及的,容器编排系统24可以包括可以一起工作以实现如在相应容器中指定的某些规范或状态的计算设备、计算系统或容器节点的集群。在一些实施方式中,容器节点30可以被集成在如图1所示的工业控制系统12内。也就是说,容器节点30可以由工业控制系统12实现,使得它们相对于容器编排系统24中的主节点表现为工作节点。以这种方式,容器编排系统24的主节点可以向容器节点30发送命令,所述容器节点30也被配置成执行针对相应工业装备的应用和操作。
36.记住这一点,容器节点30可以与工业控制系统12集成在一起,使得它们充当容器编排系统24的被动-间接参与者、被动-直接参与者或主动参与者。作为被动-间接参与者,容器节点30可以对可以由容器编排系统24发出的所有命令的子集做出响应。以这种方式,容器节点30可以支持有限的容器生命周期特征,例如接收pod、执行pod、更新相应的文件系统以包括供工业控制系统12执行的软件包、以及向容器编排系统24的主节点报告pod的状态。可由在被动-间接模式下操作的容器节点30实现的有限特征可以被限于相应的工业控
制系统12可以使用本地命令实现的命令,所述本地命令直接映射至通过容器编排系统24的主节点接收的命令。此外,在被动-间接操作模式下操作的容器节点30可能不能推送包或直接控制工业控制系统12的操作以执行该包。替代地,工业控制系统12可以定期地检查容器节点30的文件系统,并在那时检索新包以用于执行。
37.作为被动-直接参与者,容器节点30可以作为如下节点进行操作:所述节点是容器编排系统24的节点集群的一部分。这样,容器节点30可以支持全部的容器生命周期特征。也就是说,在被动-直接模式下操作的容器节点30可以对容器镜像进行解包并且将所得的包推送至工业控制系统12,使得工业控制系统12响应于从容器节点30接收到包而执行包。这样,容器编排系统24可以访问可以将从主节点接收的命令直接实施到工业控制系统12上的工作节点。
38.在主动参与者模式下,容器节点30可以包括托管操作系统(例如,linux)的计算模块或系统,所述操作系统可以连续地操作可以参与容器操作的管理的容器主机守护进程。这样,主动参与者容器节点30可以执行容器编排系统24的主节点可以执行的任何操作。通过包括在ot空间中操作的容器节点30,容器编排系统24能够将其管理操作扩展到ot空间中。也就是说,容器节点30可以在ot空间中供应设备、用作在it空间与ot空间之间提供双向协调的代理节点32等。例如,作为代理节点32操作的容器节点30可以拦截编排命令,并且基于所述编排命令使工业控制系统12实施适当的机器控制例程。工业控制系统12可以向代理节点32确认机器状态,然后,代理节点32可以代表工业控制系统12向容器编排系统24的主节点进行答复。
39.另外,工业控制系统12可以经由代理节点32共享ot设备树。这样,代理节点32可以向主节点提供状态数据、地址数据、描述性元数据、版本数据、证书数据、密钥信息以及与工业控制系统12有关的其他相关参数。此外,代理节点32可以发出针对其他工业控制系统12的请求以控制其他ot设备。例如,代理节点32可以使用一种或更多种ot通信协议来转换命令并将其转发至目标ot设备、可以接收来自ot设备的答复并对其进行转换等。这样,代理节点32可以执行健康检查、提供配置更新、发送固件补丁、执行密钥刷新以及关于其他ot设备的其他ot操作。
40.记住上述内容,图2是可以与本文描述的实施方式一起使用的示例工业控制系统12的框图。工业控制系统12可以包括通信部件42、处理器44、存储器46、存储装置48、输入/输出(i/o)端口50、显示器20等。通信部件42可以是有助于容器编排系统24与工业控制系统12或任何其他合适的电子设备之间进行通信的无线或有线通信部件。处理器44可以是能够执行计算机可执行代码的任何类型的计算机处理器或微处理器。处理器44还可以包括可以执行下述操作的多个处理器。
41.存储器46和存储装置48可以是可以用作存储处理器可执行代码、数据等的介质的任何合适的制品。这些制品可以代表如下计算机可读介质(即,任何合适形式的存储器或存储装置),所述计算机可读介质可以存储由处理器44用于执行当前公开的技术的处理器可执行代码。存储器46和存储装置48可以代表如下非暂态计算机可读介质(例如,任何合适形式的存储器或存储装置),所述非暂态计算机可读介质可以存储由处理器44用于执行本文中描述的各种技术的处理器可执行代码。应当注意,非暂态仅指示介质是有形的而不是信号。
42.i/o端口50可以耦接至一个或更多个传感器18、一个或更多个输入设备、一个或更多个显示器等,以促进人或机器与工业控制系统12的交互。例如,基于经由显示器20提供给用户的通知,用户可以使用输入设备来指示ot设备的调整。
43.如以上所讨论的,显示器20可以操作以描绘与正由处理器44处理的软件或可执行代码相关联的可视化。在一个实施方式中,显示器20可以是能够接收来自工业控制系统12的用户的输入的触摸显示器。例如,显示器20可以是任何合适类型的显示器,例如,液晶显示器(lcd)、等离子体显示器或有机发光二极管(oled)显示器。另外,在一个实施方式中,显示器20可以与触敏机构(例如,触摸屏)结合提供,该触敏机构可以用作用于工业控制系统12的控制接口的一部分。
44.尽管关于工业控制系统12描绘了图2,但是应当注意,容器编排系统24、容器节点30和代理节点32还可以包括相同或相似的部件以执行或促进执行本文描述的各种技术。此外,应当理解,关于图2描述的部件是示例性图,并且工业控制系统12和其他合适的计算系统可以包括如以上详细描述的更多或更少的部件。
45.记住上述内容,图3示出了描绘容器节点30和代理节点32相对于容器编排系统24的相对位置的框图。如以上所提及的,容器编排系统24可以包括用于通过多个节点实现一个或更多个容器的期望状态的节点的集合。如图3所示,容器编排系统24可以包括主节点62,主节点62可以执行针对容器编排系统24的控制平面过程。控制平面过程可以包括使得容器编排系统24能够协调容器节点30的操作以满足期望状态的过程。这样,主节点可以执行用于容器编排系统24、调度器部件、核心资源控制器等的应用编程接口(api)。作为示例,主容器节点62可以协调组成容器编排系统24的集群的节点之间的所有交互。实际上,主容器节点62可以负责决定将在容器节点30上运行的操作,所述操作包括调度工作负载(例如,容器化应用)、管理工作负载的生命周期、扩展和升级、管理工作负载的网络和存储资源等。主容器节点62可以运行api服务器以处理从容器节点30接收的请求和状态更新。
46.通过操作的方式,集成开发环境(ide)工具64可以被操作者用于开发部署配置文件65。如以上所提及的,部署配置文件65可以包括有关容器、pod、操作容器/pod的约束的细节以及描述部署配置文件65中指定的容器的期望状态的其他信息。在一些实施方式中,可以以yaml文件、json文件或与容器编排系统24兼容的其他合适的文件格式生成部署配置文件65。在ide工具64生成部署配置文件65之后,ide工具64可以将部署配置文件65传送至容器注册表26,容器注册表26可以将该文件连同容器镜像28一起存储,容器镜像28表示存储在部署配置文件65中的容器。
47.在一些实施方式中,主容器节点62可以经由容器注册表26直接从ide工具64等接收部署配置文件65。主容器节点62可以使用部署配置文件65来确定收集容器镜像28的位置、确定用于在容器节点30之间建立联网的通信协议、确定用于安装存储卷的位置、存储关于容器的日志的位置等。
48.基于部署配置文件65中提供的期望状态,主容器节点62可以将容器部署至容器主机节点30。也就是说,主容器节点62可以基于部署配置文件65中提供的约束(例如,cpu或存储器可用性)来调度容器的部署。在容器在容器节点30上进行操作之后,主容器节点62可以管理容器的生命周期,以确保由部署配置文件65指定的容器正根据所指定的约束和期望状态进行操作。
49.记住上述内容,工业控制系统12可以不使用与容器编排系统24兼容的操作系统(os)。也就是说,容器编排系统24可以被配置成在涉及数字信息流的it空间中操作。相比之下,工业控制系统12可以在ot空间中操作,ot空间涉及管理物理过程和用于执行那些物理过程的机械的操作。例如,ot空间可以涉及根据ot通信协议进行格式化的通信,所述ot通信协议例如factorytalk live data、ethernet/ip、通用工业协议(cip)、opc直接访问(例如,由opc foundation开发的用于工业自动化的机器对机器通信协议)或任何合适的ot通信协议(例如dnp3、modbus、profibus、lonworks、dali、bacnet、knx、enocean)。由于工业控制系统12在ot空间中操作,因此所述工业控制系统不能实施经由容器编排系统24接收的命令。
50.在某些实施方式中,容器节点30可以被编程或实现在工业控制系统12中,以用作可以向主容器节点62注册工业控制系统12的节点代理。例如,工业控制系统12可以包括可编程逻辑控制器(plc),plc不能支持用于接收和/或实现由容器编排系统24发出的请求操作的操作系统(例如,linux)。然而,plc可以执行可以被映射至某些容器事件的某些操作。这样,容器节点30可以包括可以将从主容器节点62接收的某些事件或命令映射为可以由plc执行的动作的软件和/或硬件组件。在将接收到的命令转换成plc可解译的命令之后,容器节点30可以将经映射的命令转发至可以实现经映射的命令的plc。这样,容器节点30可以作为组成容器编排系统24的节点集群的一部分操作,而控制系统66(例如,plc)协调针对工业控制系统12中的ot设备67的ot操作。控制系统66可以包括控制器,例如可编程逻辑控制器(plc),可编程自动化控制器(pac)或可以监测、控制和操作工业自动化设备或部件的任何其他控制器。
51.工业自动化设备或部件可以对应于ot设备67。ot设备67可以包括在ot空间中操作的任何合适的工业设备。这样,ot设备67可能涉及调整通过工业系统10实现的物理过程。在一些实施方式中,ot设备67可以包括马达控制中心、马达、人机接口(hmi)、操作者接口、接触器、启动器、传感器、驱动器、中继器、保护设备、开关设备、压缩机、网络交换机(例如,以太网交换机、模块化管理型交换机、固定管理型交换机、服务路由器型交换机、工业交换机、非管理型交换机等)等。另外,ot设备67还可以涉及各种工业装备,例如混合器、机器输送机、罐、滑橇、专门的原始设备制造商机器等。ot设备67还可以与装备所使用的设备例如扫描仪、仪表、阀门、流量计等相关联。在一个实施方式中,可以通过控制系统66来控制或操作ot设备67的每个方面。
52.在本文描述的本实施方式中,控制系统66可以因此基于从容器节点30接收的命令来执行动作。通过将某些容器生命周期状态映射到控制系统66可实施的适当的对应动作中,容器节点30使得能够利用主容器节点62将针对工业控制系统12的程序内容容器化、公布至某些注册表并且进行部署,从而在基于it的容器编排系统24与基于ot的工业控制系统12之间建立桥梁。
53.图4示出了使用以上参考图3描述的主容器节点62和容器节点30来跟踪容器的部署的数据流程图80。在步骤82处,ide工具64可以创建部署配置文件65至主容器节点62的部署。在接收到部署配置文件65之后,主容器节点62可以识别可以满足部署配置文件65中提供的约束规范(例如,存储器、cpu可用性)的容器节点30。也就是说,主容器节点62执行调度操作,所述调度操作涉及检查容器编排系统24的每个节点的状态数据、确定针对部署配置文件65中提供的约束是否存在合适的节点等。
54.在识别到合适的容器节点之后,在步骤84处,主容器节点62可以对容器至相应的容器节点30的部署进行调度。在步骤86处,主容器节点62可以将pod部署至容器节点30,这可以使得容器节点30在步骤88处从容器注册表26中检索容器镜像28。以这种方式,容器节点30被配置成从主容器节点62接收pod并执行所述pod,尽管工业控制系统12的控制系统66可能不能执行pod。在从容器注册表26中拉取(pull)容器镜像28之后,在步骤90处,容器节点30可以运行容器镜像28或对容器镜像28进行解包,并且将控制系统66可执行的应用或操作存储在文件系统中。在步骤92处,控制系统66可以检查容器节点30的文件系统是否有更新或新存储的包。在步骤94处,控制系统66可以检索所存储的包,所述包可以包括由主容器节点62在步骤84处针对由控制系统66进行的操作而调度的容器。在步骤96处,控制系统66可以执行从容器节点30的文件系统中检索的包。然后,容器节点30可以监测在控制系统66上执行的包的操作、控制系统66的状态(例如,存储器、cpu使用率)并且将更新发送至容器节点62。如果容器节点30发送指示该控制系统66不再执行该包的更新,则主容器节点62可以对另一pod至另一容器节点30的部署进行调度以用于执行以维持期望状态。
55.记住上述内容,图5示出了容器节点30可以经由容器编排系统24的主容器节点62实现以对活动进行协调的方法110。尽管方法110的以下描述被描述为由容器节点30执行,但是应当理解,被配置成与工业控制系统12和容器编排系统24的节点集群接口的任何合适的容器节点均可以执行本文中描述的操作。另外,尽管以特定顺序描述了方法110,但是应当理解,可以以任何合适的顺序执行方法110。
56.现在参照图5,在框112处,容器节点30可以从主容器节点62接收pod。如以上所提及的,pod可以包括被部署至主机(例如,容器节点30)的一个或更多个容器。在一些实施方式中,pod可以操作以指定一组容器之间的协调操作。pod可以包括对与该pod有关的一个或更多个容器镜像28的存储位置的指示或参考。在一些实施方式中,容器镜像28可以被存储在容器注册表26中。这样,pod可以提供对用于访问容器注册表26中的存储位置的网络地址或其他地址的指示。
57.在从主容器节点62接收到pod之后,在框114处,容器节点30可以从容器注册表26下载相关的容器镜像28。如以上所提及的,容器镜像28表示封装应用及其软件相关性的数据。容器镜像28可以是可以作为独立软件执行而与对应容器节点30正在使用的操作系统无关的可执行软件捆绑包。在一些实施方式中,容器节点30可以经由主容器节点62或任何其他合适的通信方案直接从容器注册表26接收容器镜像。
58.在接收到容器镜像28之后,在框116处,容器节点30可以运行容器镜像28或对其进行解包,并且基于容器镜像28确定可以由控制系统66执行的命令。也就是说,容器镜像28可以包括容器节点30可执行的软件应用。然而,这些软件应用可能不能由控制系统66执行。这样,容器节点30可以确定针对控制系统66的命令,这些命令与封装在容器镜像28中的软件应用相对应。在一些实施方式中,软件应用中的某些操作可以被映射至可以由控制系统66执行的某些操作。例如,用于创建、运行、启动、暂停、停止和删除的软件应用命令可以分别被映射至可以由控制系统66执行的下载、下载/运行、运行、空闲和卸载命令。
59.在基于容器镜像28确定了可以由控制系统66实施的命令之后,在框118处,容器节点30可以生成可以由控制系统66检索和执行的包。也就是说,容器节点30可以将所确定的命令组织或构造为可以由控制系统66使用的软件包。例如,如果控制系统66对应于plc,则
可以根据plc自身可以用于编程的编程结构(例如,梯形逻辑)来组织该包。
60.在框120处,容器节点30可以将包存储在控制系统66可访问的存储器或文件系统中。在一些实施方式中,容器节点30可能不能直接与控制系统66接口。然而,容器节点30可以向控制系统66提供对其存储器或存储组件的访问,使得控制系统66可以对已存储的包进行检索。控制系统66可以被编程为定期地(例如,每天、每小时)检查文件系统是否有更新或可用于下载的新包。
61.应当注意,方法110可以描述作为容器编排系统24的一部分的容器节点30的被动-间接操作模式。也就是说,容器节点30被限制于执行可以由主容器节点62提供的命令的子集,而不是执行作为容器编排系统24的一部分的节点能够执行的全部命令。此外,容器节点30可能不能执行容器中提供的所有生命周期操作。例如,如以上所描述的,容器节点30可以促进控制系统66的包下载操作,但是,如果控制系统66不具有可以被映射至相应容器生命周期操作的对应操作,则它可能不能执行容器中指定的每个功能。
62.在一些实施方式中,容器节点30可以在被动-直接操作模式下操作,在被动-直接操作模式下,容器节点30可以作为节点参与容器编排系统24。这样,容器节点30可以支持容器生命周期操作的全部集合。也就是说,由于控制系统66能够实现由主容器节点62提供的有限命令集,因此可以通过边车(sidecar)计算模块来实现或执行容器节点30,边车计算模块可以托管可以执行容器编排系统24中的节点可以执行的全套操作的容器主机守护进程。这样,边车计算模块可以是能够执行操作系统(os)的任何合适的计算系统,使得从主容器节点62接收的命令可以由相应的边车计算模块实施。
63.通过以边车计算模块来实现容器节点30,容器节点30可以作为如下节点进行操作:所述节点是容器编排系统24的一部分但是在ot空间中操作。作为结果,容器节点30可以将经由容器编排系统24可获得的功能扩展至通常对容器编排系统24的主容器节点62不可见的ot设备67。为了在被动-直接模式下操作,容器节点30可以包括与控制系统66和主容器节点62直接接口的应用和/或api。这样,容器节点30可以提供控制系统66与主容器节点62之间的双向通信桥。在一些实施方式中,容器节点30可以包括将从控制系统66接收的ot数据转换成主容器节点62可解译的it数据的api。这样,容器节点30可以向主容器节点62提供对在ot空间中操作的ot设备67的操作和状态的可见性。
64.记住这一点,图6示出了根据本文描述的实施方式的用于容器节点30将包直接发送至控制系统66并且将机器状态数据直接发送至主容器节点62的方法130。与以上描述的方法110类似,可以由任何合适的计算系统并且以任何合适的顺序来执行方法130的以下描述。应当注意,以下描述的方法130对应于在被动-直接操作模式下操作容器节点30。这样,容器节点30可以从主容器节点62等接收编排命令并对从主容器节点62等接收的编排命令进行解译,并且与控制系统66直接接口以验证控制系统66是否正在期望状态下操作。
65.参照图6,在框132处,容器节点30可以从主容器节点62或作为容器编排系统24的一部分的某个其他节点接收编排命令。编排命令可以包括关于控制系统66当前应该正在执行的一个或更多个容器的指令。这样,编排命令可以是监测功能的一部分,该监测功能使容器节点30验证控制系统66的机器状态数据是否对应于如部署配置文件65指定的预期机器状态。
66.在框134处,容器节点30可以从控制系统66检索机器状态数据。机器状态数据可以
包括由控制系统66控制的各个ot设备的当前操作状态(例如,主动、非主动)、可用处理资源(例如,cpu可用性)、可用存储器资源(例如,存储装置、ram)等。机器状态数据还可以指示控制系统66是否正在执行任何容器。这样,可以将机器状态数据报告回主容器节点62,以确保存在由部署配置文件65指定的期望状态。
67.为了接收机器状态数据,容器节点30可以经由适当的ot通信协议向控制系统66发送请求。响应于接收到请求,控制系统66可以查询数据库、存储单元或者可能包括关于所请求的数据的信息的其他合适的存储装置。在检索到所请求的信息之后,控制系统66可以使用与它接收请求的ot通信协议相同的ot通信协议将所请求的数据发送至容器节点30。
68.在一些实施方式中,容器节点30可以被嵌入或集成到控制系统66的一个或更多个核中。这样,容器节点30可以使用板载通信方法与控制系统66的部分传送数据。可替选地,容器节点30可以直接从相应的存储器位置检索机器状态数据。
69.在从控制系统66接收到机器状态数据之后,在框136处,容器节点30可以基于部署配置文件65确定控制系统66是否正在期望状态下操作。在本实施方式中,容器节点30可以评估控制系统66是否正在执行如部署配置文件65中指定的容器。也就是说,由于容器节点30可以执行容器主机守护进程,因此容器节点30可以通过监测控制系统66的机器状态数据来参与对分布在整个容器调度系统24中的容器的管理。
70.如果控制系统66正在期望状态下操作,则容器节点30可以进行至框138,并且将机器状态数据发送至主容器节点62。然后,主容器节点62可以检查其他容器节点30是否正在实现期望状态。
71.然而,如果容器节点30确定控制系统66没有在期望状态下操作,则容器节点30可以进行至框140并且生成包,该包可以使控制系统66修改其操作以执行对应的pod和其中的容器。在生成包之后,容器节点30可以将包直接发送至控制系统66以用于执行。以这种方式,容器节点30在被动-直接模式下操作,这是因为容器节点30可以直接发送使控制系统66改变操作的命令。例如,代替控制系统66定期地检查文件系统(如以上关于图5(例如,被动-间接模式)所描述的),控制系统66可以与容器节点30直接接口,并且接收可以使它调整所连接的设备(例如,ot设备)的操作、执行接收到的包等的命令。这样,容器节点30可以在任何给定时间将包、固件更新、ot设备凭证更新、安全更新、加密密钥和其他数据推送至控制系统66。也就是说,容器系统30可以生成事件通知,该事件通知使控制系统66的其他组件或api响应于检测到事件通知而做出反应。以这种方式,容器节点30可以基于从主容器节点62等被动地接收的编排命令来主动地参与容器与相应控制系统66的协调。
72.通过采用容器节点30以使得容器编排系统24能够在控制系统66上实施软件容器,本文中描述的本实施方式使得能够对多个控制系统66和多个ot设备67的控制进行协调以控制工业自动化系统10中的操作。也就是说,期望机器状态可以包括工业装备的期望操作参数,并且容器编排系统24可以监测可用的工业装备资源,以确保通过经由与控制系统66通信地耦接的容器节点30协调活动来连续实现期望机器状态。
73.除了在被动-间接模式和被动-直接模式下操作之外,容器节点30可以在主动模式下操作,使得容器节点可以调用针对其他容器节点30的容器编排命令。例如,返回参照图3,代理节点32可以充当作为容器编排系统24的一部分的代理或网关节点。代理节点32可以以具有支持容器主机守护进程的操作系统(os)的边车计算模块来实现。在另一实施方式中,
代理节点32可以直接在控制系统66的经配置(例如,经分区)的核上实现,使得控制系统66可以使用操作系统来进行操作,该操作系统使得容器节点30能够执行编排命令并且充当容器编排系统24的一部分。不论在何种情况下,代理节点32都可以充当it/ot编排的双向桥,该双向桥使得能够基于ot数据在it设备中执行自动化功能以及基于it数据在ot设备67中执行自动化功能。例如,代理节点32可以经由ot通信协议获取ot设备树数据、ot设备的状态数据、与对应ot数据相关联的描述性元数据、ot设备67的版本数据、ot设备的证书/密钥数据以及其他相关的ot数据。然后,代理节点32可以将ot数据转换成it数据,it数据可以被格式化以使得主容器节点62能够提取相关数据(例如,机器状态数据)以执行调度操作以及确保容器编排系统24和所连接的控制系统66在期望状态下操作。基于其调度操作的结果,主容器节点62可以经由代理节点32向目标ot设备发出监督控制命令,代理节点32可以经由适当的ot通信协议对这些命令进行转换并将转换后的命令转发至相应的控制系统66。
74.另外,代理节点32还可以基于其对相应的控制系统66的机器状态数据的分析来执行某些监督操作。作为其分析的结果,代理节点32可以向作为容器编排系统24的一部分的其他节点发出命令和/或pod。例如,参照图3,代理节点32可以向可以作为容器编排系统24的一部分的其他工作容器节点68发送指令或pod。工作容器节点68可以对应于与其他控制系统70通信地耦接以控制其他ot设备71的其他容器节点30。以这种方式,代理节点32可以对命令进行转换或经由某些ot通信协议直接地将命令转发至其他控制系统70,或者经由与其他控制系统70相关联的其他工作容器节点68间接地将命令转发至其他控制系统70。另外,代理节点32可以经由ot通信协议接收来自控制系统70的答复并且对这些答复进行转换,使得容器编排系统24中的节点可以解译这些答复。以这种方式,容器编排系统24可以以协调方式有效地执行健康检查、发送配置更新、提供固件补丁、执行密钥刷新以及向ot设备71提供其他服务。也就是说,代理节点32可以使得容器编排系统能够协调多个控制系统66和70的活动,以实现所连接的ot设备67和71的期望机器状态的集合。使用容器编排系统在工业控制系统中实现无服务器功能
75.除了协调it系统与ot系统之间的通信外,容器编排系统24还可以用于使用本文所描述的实施方式来实现功能即服务(faas)操作或无服务器功能。更具体地,主容器节点62可以使用相应的工作容器节点等将faas操作分配在一个或更多个控制系统70上。以这种方式,容器编排系统24可以利用控制系统70在ot空间中的可用资源来协调各种ot操作。
76.通过介绍,无服务器功能或faas操作对应于使得能够在无需考虑相应设备上可用的可用计算资源的情况下执行某些逻辑或应用(例如,包、容器)的计算方案。换句话说,不管控制系统66的当前状态(例如,cpu可用性、存储器可用性、线路可用性、设备可用性)如何,主容器节点62都可以识别工作容器节点68和/或控制系统70以托管和/或执行应用。在一些实施方式中,可以基于在另一系统(例如,控制系统70)中发生的异步事件来触发faas操作。例如,主容器节点62对来自容器编排系统24的其他容器节点的传入消息进行监测,以得到可能导致faas操作执行的事件、触发器或通知。另外,主容器节点62可以监测共享文件系统以得到新文件、被添加至数据库表的行、被添加至数据库的数据等。主容器节点62还可以侦听api端点调用(例如,get、post、put、delete)或任何其他合适的触发事件。在任何情况下,主容器节点62可以采用连续地(例如,定期地)监测外部系统以得到状态变化的功能(例如,执行应用),所述状态变化对应于导致另一应用执行。
77.记住这一点,图7示出了用于使用本文描述的实施方式来执行示例faas操作的方法150。作为示例,下面描述的方法150将被详细描述为由主容器节点62执行。然而,应当注意,能够协调容器编排系统24中的节点的活动的任何合适的容器节点例如代理节点32均可以执行方法150。另外,尽管以特定顺序描述了方法150的以下描述,但是应当理解,可以以任何合适的顺序来执行方法150。
78.现在参照图7,在框152处,主容器节点62可以从容器节点30、工作容器节点68或容器编排系统24中的其他合适的节点接收基于事件的通知。在一些实施方式中,基于事件的通知可以和与控制系统66、ot设备67等相对应的状况或状态有关。这样,基于事件的通知可以对应于满足某个条件、超过某个阈值、降至低于某个阈值等的状态。例如,基于事件的通知可以与以下状况有关:所述状况和与控制系统66相关联的计算属性(例如,cpu可用性)、ot设备67的机器可用性(例如,可用、不可用)或由控制系统66检测到的其他变量有关。这样,基于事件的通知可以由控制系统66生成并报告给容器节点30,容器节点30可以将基于事件的通知转换成主容器节点62可解译的格式。
79.在框154处,主容器节点62可以根据基于事件的通知来确定要执行的分析操作或逻辑操作。也就是说,主容器节点62可以监测基于事件的通知,这可以使主容器节点62响应于接收到基于事件的通知而执行应用或功能(例如,容器)。在一些实施方式中,所调用的功能可能涉及对存储在各种设备(例如,ot设备、控制系统)上的数据执行某些分析操作。例如,如果基于事件的通知涉及ot设备67过热或者相应的控制系统66检测到与ot设备67相关联的温度超过阈值,则主容器节点62可以执行分析操作以确定多个ot设备在一段时间(例如,24小时)内的平均温度增幅。
80.为了执行分析操作,主容器节点62可以识别在执行分析时可能涉及的一个或更多个函数(例如,方程式、过程)、一个或更多个变量以及其他数据元素。在一些实施方式中,主容器节点62可以响应于接收到基于事件的通知而执行容器,并且该容器可以包括关于要执行的分析操作、用于执行分析操作的函数、完成分析操作所涉及的变量或数据等的相关信息。可以用于执行分析操作的信息或数据的一部分可以包括预分析数据。预分析数据可以包括已被预处理或收集以促进更高级别的分析操作的某些数据集。再次参考上面提供的示例,为了确定多个ot设备的平均温度增幅,预分析数据可以包括一个ot设备在一段时间内的平均温度增幅。
81.记住这一点,用于执行分析操作的容器可以使主容器节点62确定容器编排系统24的其他节点是否可以执行某些预分析操作。可替选地,容器可以包括用于其他容器节点30执行相应的预分析操作的命令或指令的列表。在任何情况下,在框156处,基于由相应容器提供的指令,主容器节点62可以确定与在框154处确定的分析操作有关的预分析操作。
82.在确定了要由各种容器节点30或其他工业控制系统66执行的预分析操作之后,在框158处,主容器节点62可以生成或检索用于部署至一个或更多个容器节点30的一个或更多个pod。如以上关于图4所描述的,pod可以包括使相应的容器节点30检索与pod相关联的相应容器镜像28的可执行指令。在一些实施方式中,pod可以作为如下容器的一部分存储,所述容器指定可以执行相应的预分析操作的容器节点30和/或控制系统66。
83.在一些实施方式中,在部署pod之前,在框160处,主容器节点62可以识别可以执行预分析操作的控制系统66。也就是说,主容器节点62可以基于与容器编排系统24相关联的
约束来调度pod的部署。例如,主容器节点62可以确认部署pod以及使相应的控制系统66执行预分析操作仍将使得控制系统66能够维持与部署配置文件65中已定义的约束相对应的机器状态。这样,主容器节点62可以在特定时间调度pod的部署或者使得pod在如下时间调用控制系统66:控制系统66可以在保持期望机器状态的同时执行预分析操作。如果相应的容器节点30向主容器节点62指示控制系统66可能不能执行预分析操作,则主容器节点62可以将其他pod部署至一个或更多个其他容器节点68以从不可用的控制系统66(例如,经由一个或更多个中间容器节点30)检索原始数据,使得其他控制系统70可以执行预分析操作。实际上,主容器节点62可以基于经由相应的其他容器节点68接收的相应机器状态数据,确认其他控制系统70可以执行相应的预分析操作。这样,可以通过作为容器编排系统24的一部分的主容器节点62及其本地调度操作来促进预分析操作命令的协调。
84.在识别到适当的容器节点30之后,主容器节点62可以将pod发送至相应的容器节点30。然后,容器节点30可以拉取与所接收的pod相关联的容器镜像,并且将相关联的包存储在与控制系统66共享的文件系统上或将该包(例如,经由被动-直接模式、主动模式操作)直接发送至控制系统66以供实施。
85.在控制系统66执行预分析操作并且获取预分析数据之后,在框164处,主容器节点62可以从容器节点30接收预分析数据。如以上所讨论的,容器节点30可以经由ot通信协议接收预分析数据,并且将接收到的数据转换成主容器节点62可解译的格式。由于预分析数据在数据源附近被处理并且被组织为预分析数据,因此,被发送至主容器节点62的数据的量小于为获得预分析数据而分析的原始数据的量。这样,容器编排系统24可以通过使用控制系统70来处理原始数据并传送较小的预分析数据结果,来减少跨容器编排系统24的节点传送的网络业务的量或容量。
86.记住这一点,本实施方式使得容器编排系统24能够通过协调不同控制系统70上的各种数据处理操作来在工业自动化环境中实现无服务器功能。作为结果,来自不同领域(例如,it领域和ot领域)的用户和/或开发者可以使用在其各自的环境中的其各自的工具来创建联合解决方案。例如,通过控制系统60工作的控制工程师可以使用诸如梯形逻辑或功能块的语言来创建鲁棒的控制程序,而it工程师可以使用诸如python或javascript的语言来创建分析或集成解决方案。容器编排系统24可以协调跨不同领域的任务的部署,同时跨it领域和ot领域维持期望的机器状态。以这种方式,容器编排系统24使得每个开发者能够在不牺牲其各自工具的优势或者不对其他开发者的领域过度了解的情况下构建他们的解决方案部分。此外,通过采用控制系统70(例如,chassis(机架)中的控制器或其他计算表面(compute surface)/边车)来执行某些功能(例如,it操作),本文描述的本实施方式可以降低复杂度,所述复杂度与各种设备(例如,ot设备和it设备)之间的联网连接以及通过利用某些ot通信协议在整个通信中提供安全性相关联。此外,通过协调工业控制系统12的控制系统70上的操作,容器编排系统24可以通过根据可用资源和期望的机器状态调度操作来提高所生成数据的可靠性和可用性。
87.由于主容器节点62在容器中部署功能(例如,使其无服务器),因此容器编排系统24使it开发者不必了解功能所运行于的基础结构。此外,由于功能的逻辑在容器中运行,因此控制工程师并不关心更改已经实现的控制程序的性能或行为的其他处理。作为结果,本文描述的本实施方式提供了鲁棒的计算架构,该计算架构利用工业控制系统12中可用的控
制系统70以及容器编排系统24的生命周期管理操作来有效地协调数据分析操作、机器控制操作、线路控制操作等。作为示例,容器编排系统24可以将要执行的分析操作推送至靠近数据输入源的位置,并且使分析操作的结果可用于下游分析。另外,容器编排系统24可以对数据进行整形以供其他服务使用、使用graphql生成用于图形表示的用户友好模式、提供对第三方系统的访问(例如,调用web服务、访问数据库)以及执行it领域中的其他操作。此外,容器编排系统24可以协调ot操作,例如从控制系统66获得秘诀数据以用于批处理、将信息记录到mes应用、报告检测到的ot设备异常、跟踪库存的原料消耗和质量等。实际上,可以经由容器编排系统24使it设备可以获得ot数据以用于数据处理,从而利用it设备对ot数据的数据处理能力。
88.使用容器编排系统在工业控制系统中提供滚动更新
89.除了将分析操作推送至控制系统之外,本实施方式还可以用于向控制系统66、ot设备67以及工业系统10、工业控制系统12等中可能存在的其他合适的组件提供滚动更新。在工业环境中,软件补丁、固件更新和其他更新由控制系统66在相应的ot设备67脱机时实现。也就是说,为了更新控制系统66或ot设备67,可以在对控制系统66和/或ot设备67实施更新之前使相应设备脱机。在工业自动化系统10中,使组件脱机可以直接影响生产,因为较少的在线ot设备67可以降低工业系统10的生产率或效率。
90.记住这一点,本文描述的容器编排系统24可以协调工业系统10的各个组件上的更新分配,以确保在维持工业系统10的期望状态的同时对组件进行更新。也就是说,用于分配更新的部署配置文件65可以包括指示可以在任何给定时间保持运行的控制系统66和/或ot设备67各自的数量的期望状态数据。在一些实施方式中,为了实施以下用于提供更新的方法,冗余控制系统66和/或ot设备67可用于允许容器编排系统24在组件之间转移操作,以在某些组件脱机时对其进行更新并且保持其他组件在线以执行其各自的操作。另外,容器编排系统24可以基于针对各个控制系统66和/或ot设备67的预期操作安排来调度对更新的部署。也就是说,容器编排系统24可以监测各个控制系统66和/或ot设备67的操作模式,并且调度相应pod的部署以在计划使组件脱机的时间段内对这些组件进行更新。在任何情况下,本文描述的本实施方式使得能够基于可用资源和期望状态以协调的方式向工业系统10中的组件提供更新,以确保工业系统10继续根据期望协议进行操作。
91.作为示例,图8示出了容器编排系统24中的主容器节点62可以用于向控制系统66和/或ot设备67分配更新的方法180的流程图。与以上描述的方法类似,尽管方法180被描述为由主容器节点62且以特定顺序执行,但是应当理解,方法180可以由容器编排系统24中的任何合适的计算系统或节点以任何合适的顺序执行。
92.现在参照图8,在框182处,主容器节点62可以接收针对目标控制系统66的更新数据。更新数据可以经由部署配置文件65或经由容器编排系统24的用户输入的命令提供。更新数据可以包括软件更新、控制器更新、固件更新或可以修改目标控制系统66和/或ot设备67的操作的其他类型的更新。另外,更新数据可以包括可以实施更新的目标控制系统66和/或目标ot设备67的指示。在一些实施方式中,更新数据还可以包括针对工业系统10的控制系统66和/或ot设备的集合的期望机器状态数据。期望机器状态数据可以包括控制系统66和/或ot设备的数量以及各个组件的对应的期望操作状态。这样,主容器节点62可以对工业系统10的组件进行分析,以确保在向目标控制系统66和/或ot设备67提供更新的同时维持
期望的机器状态。
93.在框184处,主容器节点62可以接收目标控制系统66和其他控制系统70以及/或者作为工业控制系统12的一部分并且对于容器编排系统24可见的关联ot设备67的机器状态数据。这样,主容器节点62可以将对相应组件的机器状态数据的请求发送至与目标控制系统66和其他控制系统70通信地耦接的代理节点32和/或目标容器节点30、容器节点68。机器状态数据可以包括有关相应控制系统66和70的某些计算资源(例如,存储器、处理能力)的可用性的数据。另外,机器状态数据还可以包括关于由控制系统66和70执行的过程和/或容器的信息。此外,机器状态数据还可以包括与所连接的ot设备67的操作状态(例如,操作模式、状态)有关的信息。
94.基于控制系统66和70和/或ot设备67的机器状态数据,主容器节点62可以对pod至目标控制系统66和冗余控制系统70的部署进行调度。冗余控制系统70可以包括可以与目标ot设备67接口并与之通信的任何合适的控制系统70。这样,pod可以与挂起相应控制系统70和/或相应ot设备67的操作有关。另外,pod可以与使用冗余控制系统70来执行相应控制系统70和/或相应ot设备71的挂起操作有关。
95.在一些实施方式中,主容器节点62可以监测控制系统66和70的机器状态数据,并且可以维护工业系统10中存在的ot设备67的列表。利用该列表,主容器节点62可以识别可以代替目标控制系统66和/或目标ot设备67的操作的控制系统79或ot设备67。在识别到合适的控制系统70和/或ot设备67之后,主容器节点62可以对相应的机器状态数据进行分析以识别要用作替换控制系统70和/或ot设备71的合适的控制系统70和/或ot设备67。在一些实施方式中,替换控制系统70和/或ot设备71可以对应于可以被预留用于在目标控制系统66和/或目标ot设备67不可用的情况下执行操作的冗余控制系统和/或ot设备。这样,替换控制系统70和/或ot设备71可以被识别为可以用于在目标控制系统66和/或ot设备67被更新时执行目标控制系统66和/或ot设备67的相应操作的组件。
96.另外,替换控制系统70和/或ot设备71可以对应于当前可能被用于某些操作但也可以被配置成执行附加操作的其他控制系统和/或ot设备。也就是说,一些控制系统可以包括足够的处理和计算资源以控制多个ot设备。这样,主容器节点62可以经由相应的容器节点从这些控制系统接收机器状态数据,以确定它们是否将能够执行目标控制系统66和/或ot设备67的操作。
97.在识别到替换控制系统70和/或ot设备71之后,在框186处,主容器节点62可以对pod至已识别组件的部署进行调度,以继续进行目标控制系统66和/或ot设备67当前正在执行的操作。除了将pod发送至已识别组件之外,在框188处,主容器节点62还可以将更新的pod部署至目标控制系统66和/或ot设备67,以使目标控制系统66和/或ot设备67中止操作并接收一个或更多个相应的更新。在一些实施方式中,主容器节点62可以对pod的部署进行调度,使得替换控制系统70和/或ot设备71在目标控制系统66和/或ot设备67中止操作之后承担目标控制系统66和/或ot设备67的职责。也就是说,主容器节点62可以将目标控制系统66和/或ot设备67的操作协调至停止,同时替换控制系统70和/或ot设备71接管相应的操作。主容器节点62可以协调转移以确保ot设备继续执行工业系统10的功能。
98.在将pod部署至替换控制系统70和/或ot设备71以及目标控制系统66和/或ot设备67之后,在框190处,主容器节点62可以再次接收主容器节点62可访问的控制系统和/或ot
设备的机器状态数据。这样,主容器节点62可以在pod被部署至冗余控制系统70和/或ot设备71以及目标控制系统66和/或ot设备67之后接收经更新的机器状态数据。主容器节点62可以验证工业系统10正在达到本文中的各个组件的期望机器状态。
99.基于经更新的机器状态数据,在框200处,主容器节点62可以再次对pod至冗余控制系统70和/或ot设备71以及目标控制系统66和/或ot设备67的部署进行调度。也就是说,如果工业系统10的机器状态数据与期望状态不对应,则主容器节点62可以向冗余控制系统70和/或ot设备71发送附加pod,以修改它们各自的操作从而达到期望机器状态。然而,如果机器状态数据指示更新已完成,则主容器节点62可以对pod至冗余控制系统70和/或ot设备71和目标控制系统66和/或ot设备67的部署进行调度,使得冗余控制系统70和/或ot设备71中止其各自的操作,并且使得目标控制系统66和/或ot设备67恢复先前在接收到更新pod之前执行的操作。在一些实施方式中,主容器节点62可以使得冗余控制系统70和/或ot设备71能够维持其当前的机器状态,并且保持目标控制系统66和/或ot设备67可用作工业系统10的冗余组件。在任何情况下,主容器节点62可以更新工业系统10和工业控制系统12中的组件列表以表示每个组件的当前配置。
100.通过采用容器调度系统24对工业系统10中的组件执行更新操作,本文描述的本实施方式使得工业系统10能够在不减少正常运行时间或降低生产效率的情况下继续操作。实际上,其他更新方法涉及使组件断电,从而降低了工业系统10的生产或操作效率。此外,当相应组件(例如,控制系统)从由相应ot设备执行的协调操作中脱离时,更新可能涉及在设计时环境中执行任务。记住这一点,容器编排系统24在运行时环境中协调更新过程,同时组件继续执行其相应的操作。实际上,各种组件的操作可以在工业系统10中的可用资源之间转移,但是工业系统10的操作任务保持在线,并且因此工业系统10的生产率保持不变。
101.除了提供滚动更新之外,容器编排系统24还可以执行其他高可用性操作,例如定期地测试工业控制系统12或任何合适的控制系统66/70的健康状况并将检测到的健康状况传送回主容器节点62。如果健康检查失败,则主容器节点62可以发起经由代理节点32启动的新的控制过程pod,其对应于不健康的控制系统66/70、ot设备67/71等。可替选地,主容器节点62可以识别另一合适的代理节点32,并且经由该代理节点32发起新的控制过程pod,从而替换故障组件并保持相应ot设备67/71的控制系统的可用性。
102.虽然本文仅示出和描述了当前公开的实施方式的某些特征,但是本领域技术人员将想到许多修改和改变。因此,应当理解,所附权利要求旨在涵盖落入本文描述的实施方式的真实精神内的所有这些修改和改变。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1