CN114253569A - 使用容器编排***来更新操作技术设备 - Google Patents

使用容器编排***来更新操作技术设备 Download PDF

Info

Publication number
CN114253569A
CN114253569A CN202110699110.1A CN202110699110A CN114253569A CN 114253569 A CN114253569 A CN 114253569A CN 202110699110 A CN202110699110 A CN 202110699110A CN 114253569 A CN114253569 A CN 114253569A
Authority
CN
China
Prior art keywords
control system
containers
container
node
operations
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
CN202110699110.1A
Other languages
English (en)
Inventor
提姆·比尔纳特
纳撒尼尔·S·桑德勒
詹姆斯·J·凯
大卫·A·约翰斯顿
卡尔·施塔斯
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.)
Rockwell Automation Technologies Inc
Original Assignee
Rockwell Automation Technologies Inc
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 Rockwell Automation Technologies Inc filed Critical Rockwell Automation Technologies Inc
Publication of CN114253569A publication Critical patent/CN114253569A/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/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error 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/0706Error 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 the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error 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 the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3013Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is an embedded system, i.e. a combination of hardware and software dedicated to perform a certain function in mobile devices, printers, automotive or aircraft systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • 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
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
    • G05B19/41815Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by the cooperation between machine tools, manipulators and conveyor or other workpiece supply system, workcell
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/22Pc multi processor system
    • G05B2219/2239Reallocate, reschedule execution of controlled functions if one processor fails
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/31From computer integrated manufacturing till monitoring
    • G05B2219/31368MAP manufacturing automation protocol
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/32Operator till task planning
    • G05B2219/32059Send code, data for workpiece to each workstation to be used, update data
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Programmable Controllers (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Automation & Control Theory (AREA)
  • Stored Programmes (AREA)

Abstract

公开了使用容器编排***来更新操作技术设备。一种方法,可以包括经由第一计算节点从第二计算节点接收第一pod。该方法还可以包括基于第一pod从注册表中检索可以包括第一组容器的第一镜像文件。第一组容器可以使控制***中止操作。然后,该方法可以涉及基于第一组容器生成第一包并且将第一包存储在文件***中、从第二计算节点接收第二pod以及从注册表中检索具有第二组容器的第二镜像文件。第二pod可以包括第二组容器,第二组容器可以使控制***更新软件组件。该方法还可以涉及基于第二组容器生成第二包并将第二包存储在文件***中。

Description

使用容器编排***来更新操作技术设备
技术领域
本公开内容总体上涉及用于在操作技术(OT)或工业平台中实现容器编排***的***和方法。更具体地,本公开内容的实施方式涉及用于利用容器编排***来协调OT设备的操作的***和方法。
背景技术
特别是在工业自动化环境中,使用自动化控制和监测***(例如,工业控制***)来管理和操作工业自动化***。这样的应用可以包括控制各种部件例如阀、电动马达等,以及经由传感器收集数据。典型的工业控制***可以包括一个或更多个部件,例如编程终端、自动化控制器、输入/输出(I/O)模块、通信网络、人机接口(HMI)终端等。
通常,在OT环境中操作的工业控制***被用于控制可经由OT网络访问的工业设备。尽管工业控制***可以用于管理OT网络内的设备的操作,但是期望用于操作OT网络内的设备的改进***和方法。例如,信息技术(IT)环境中可用的某些技术可以向某些工业控制***用户提供他们用以操作其IT资产的其他管理工具。
本部分旨在向读者介绍可能与下面描述和/或要求保护的本技术的各个方面相关的领域的各个方面。本讨论被认为有助于向读者提供背景信息以便于更好地理解本公开内容的各个方面。因此,应当理解,要从这个角度来理解这些陈述,并且这些陈述并非作为对现有技术的承认。
发明内容
下面阐述本文中公开的特定实施方式的概述。应当理解,呈现这些方面仅是为了向读者提供这些特定实施方式的简要概述,并且这些方面不旨在限制本公开内容的范围。实际上,本公开内容可以包括可能未在下文中阐述的多个方面。
在一个实施方式中,一种***,可以包括用于控制多个操作技术(OT)设备的多个操作的多个控制***。该***还可以包括作为容器编排***的一部分的计算节点集群中的第一计算节点。第一计算节点可以接收针对多个控制***中的第一控制***、多个OT设备中的第一OT设备或者第一控制***和第一OT设备两者的更新数据。第一控制***、第一OT设备或者第一控制***和第一OT设备两者被配置成执行一个或更多个操作。更新数据可以更新由第一控制***、第一OT设备或者第一控制***和第一OT设备两者执行的一个或更多个软件组件。第一计算节点可以经由计算节点集群的一部分从多个控制***中检索多个机器状态数据集,使得多个机器状态数据集中的每个机器状态数据集对应于与多个控制***中的每个控制***、多个OT设备中的每个OT设备或者多个控制***中的每个控制***和多个OT设备中的每个OT设备相关联的操作状态。第一计算节点还可以基于多个机器状态数据集,将第二控制***识别为代替第一控制***执行一个或更多个操作的合适的主机并且将第一容器集(pod)存储在第二计算节点可访问的第一文件***中。第一pod可以使第二计算节点中止一个或更多个操作。然后,第一计算节点可以将第二pod存储在与第二控制***相关联的第三计算节点可访问的第二文件***中,使得第二pod可以使第三计算节点经由第二控制***、与第二控制***相关联的第二OT设备或者第二控制***和第二OT设备两者执行一个或更多个操作。
在另一实施方式中,一种方法,可以包括:经由容器编排***中的计算节点集群中的第一计算节点从该计算节点集群中的第二计算节点接收第一pod。该方法还可以包括基于第一pod从注册表中检索可以包括第一组容器的第一镜像文件,使得第一pod可以包括第一镜像文件在该注册表中的位置的指示。第一组容器可以使多个控制***中的控制***中止一个或更多个操作。然后,该方法可以涉及基于第一组容器生成第一包(package)并且将第一包存储在与控制***共享的文件***中、从第二计算节点接收第二pod以及基于第二pod从注册表中检索可以包括第二组容器的第二镜像文件。第二pod可以包括第二镜像文件在注册表中的第二位置的第二指示,使得第二组容器可以使控制***更新一个或更多个软件组件。该方法还可以涉及基于第二组容器生成第二包并且将第二包存储在文件***中。
在又一实施方式中,一种非暂态计算机可读介质,可以包括计算机可执行指令,这些计算机可执行指令在被执行时使处理器接收针对多个控制***中的第一控制***、多个OT设备中的第一OT设备或者第一控制***和第一OT设备两者的更新数据。第一控制***、第一OT设备或者第一控制***和第一OT设备两者被配置成执行一个或更多个操作,使得更新数据可以更新由第一控制***、第一OT设备或者第一控制***和第一OT设备两者执行的一个或更多个软件组件。然后,该处理器可以经由作为容器编排***的一部分的计算节点集群的一部分从多个控制***中检索多个机器状态数据集,使得所述多个机器状态数据集中的每个机器状态数据集对应于与多个控制***中的每个控制***、多个OT设备中的每个OT设备或者多个控制***中的每个控制***和多个OT设备中的每个OT设备相关联的操作状态。然后,该处理器可以基于多个机器状态数据集,将多个控制***中的第二控制***识别为代替第一控制***执行一个或更多个操作的合适的主机。然后,该处理器可以生成第一pod并将第一pod存储在节点集群中的第一计算节点可访问的第一文件***中,使得第一pod可以使第一计算节点中止一个或更多个操作。该处理器还可以生成第二pod并将第二pod存储在节点集群中的第二计算节点可访问的第二文件***中,使得第二计算节点与第二控制***相关联。第二pod可以使第二计算节点经由第二控制***、与第二控制***相关联的第二OT设备或者第二控制***和第二OT设备两者执行一个或更多个操作。
附图说明
当参照附图阅读以下详细描述时,本实施方式的这些和其他特征、方面和优点将变得更好理解,其中,贯穿附图相同的附图标记表示相同的部分,在附图中:
图1是根据实施方式的示例工业自动化***的立体图;
图2是根据实施方式的示例工业控制***的框图;
图3是根据实施方式的与容器编排***进行协调的示例操作技术(OT)网络的框图;
图4是根据实施方式的示出将pod部署至图3的OT网络中的工业控制***的数据流程图;
图5是根据实施方式的用于使工业控制***被动地实施经由控制编排***接收的命令的方法的流程图;
图6是根据实施方式的用于使工业控制***主动地实施经由控制编排***接收的命令的方法的流程图;
图7是根据实施方式的用于使用容器编排***来协调工业控制***中的分析操作的方法的流程图;以及
图8是根据实施方式的用于使用容器编排***来协调工业控制***中的滚动更新的方法的流程图。
具体实施方式
下面将描述本公开内容的一个或更多个具体实施方式。为了提供对这些实施方式的简洁描述,可能未在说明书中描述实际实现方式的所有特征。应当理解,在任何这样的实际实现方式的开发过程中,如在任何工程项目或设计项目中一样,必须做出大量的特定于实现方式的决策来达到开发者的具体目标,例如符合***相关约束条件和商业相关约束条件,这些具体目标可能随实现方式而变化。此外,应当理解,这样的开发努力可能是复杂且耗时的,但对于受益于本公开内容的普通技术人员而言,这样的开发努力仍将是设计、制造和生产的例行任务。
在介绍本公开内容的各种实施方式的元素时,冠词“一”、“一个”、“该”和“所述”旨在意指存在一个或更多个元素。术语“包括”、“包含”和“具有”旨在是包括性的,并且意指除了所列元素之外还可以存在其他元素。
本公开内容总体上涉及使用信息技术(IT)***来协调作为操作技术(OT)***的一部分的设备的操作。如以上所提及的,工业控制***可以用于控制和管理作为OT***的一部分的设备的操作。然而,这些工业自动化***的操作者可能会受益于使用由信息技术***提供的类似处理来管理作为OT网络的一部分的资产例如可编程逻辑控制器(PLC)。作为示例,可以将容器编排***用在IT***中以管理IT资产。也就是说,某些IT***可以利用软件容器(例如,操作***级虚拟化)以及容器编排***(例如,Docker、Kubernetes)来跨多个计算资源协调各种容器的构造和部署。实际上,容器可以包括打包代码及其相关性的软件的标准单元,使得容器节点可以执行存储在容器中的应用,而与计算环境或基础结构无关。作为结果,多个容器可以在同一台机器上运行并且与其他容器共享操作***内核,使得每个容器在相应的机器中作为独立的进程运行。以这种方式,在IT环境中操作的容器编排***构建跨多个计算资源操作的应用服务,使得可以在相同机器中或跨不同计算环境中的多个机器自动部署、扩展和管理某些应用(例如,被打包为软件容器)。
记住这一点,使用容器编排***来管理OT资产的操作可以实现许多优点,包括大规模应用部署、提供来自受管理的注册表的更新、将备用和备份容器副本用于不同OT资产来提供高可用性等。然而,依赖于与控制OT资产的操作***不同的某些操作***的容器编排***可能不能访问OT资产。替代地,可以通过在OT空间中操作的相应设计工具对OT资产进行单独编程和管理。对于许多工业应用,特别是在过程自动化空间中,分布式工业控制***可以提供多个远程控制节点,这些远程控制节点可以经由OT网络访问这些OT资产或与这些OT资产接口。然而,容器编排***不能经由该OT网络访问远程控制节点以与如下方式相同的方式管理这些分布式OT资产:容器编排***在其各自的生命周期期间在供应、部署、操作和维护资产方面管理其联网的IT资产。
记住上述内容,在某些实施方式中,专用硬件和/或软件控制***可以被集成到在OT空间中操作的工业控制***中,使得OT资产所固有的控制***可以参与编排操作。例如,在一个实施方式中,控制***可以被配置为工作节点,工作节点可以支持由容器编排***提供的有限数量的操作或命令。也就是说,工作节点可以包括应用编程接口(API),API支持从容器编排***的主节点接收某些通信、解析这些通信以确定所请求的命令、将所请求的命令映射至OT资产命令以及将OT资产命令发送至相应的OT资产。
在另一实施方式中,单独的计算***可以使用操作***(例如,Linux)进行操作,操作***使得该计算***能够作为(是容器编排***集群的一部分的)代理节点进行操作。以这种方式,可以对代理节点进行编程以执行容器守护进程(daemon),容器守护进程使得代理节点能够接收存储在容器注册表中的容器,并且将这些容器以一定规模部署至控制一个或更多个相应OT资产的操作的一个或更多个控制***。当以这种方式部署时,相应OT资产的控制***(例如,控制器)可以对容器内容进行解包,使得可以通过相应的控制***对该容器内容进行验证和加载以用于执行。另外,代理节点可以提供双向桥以用于在OT资产与容器编排***的主节点之间进行协调。也就是说,代理节点可以与容器编排***的主节点共享与OT资产的控制***相关联的状态数据。此外,由于代理节点向主节点提供相应OT资产的操作状态的观察,因此主节点可以在其调度操作中包括该OT资产以维持OT资产集合的期望状态。
在任何情况下,本文描述的实施方式提供用于使用如下工业控制***(例如,控制器)的***和方法,所述工业控制***能够控制工业自动化***中的OT资产的操作,并且能够作为工作节点或代理节点参与容器编排***。这样,可以通过容器编排***来协调OT资产的更有效的使用,该容器编排***可以跨多个OT资产自动控制组成一个或更多个应用的过程。因此,容器编排***可以为OT资产管理器提供诸如自动更新、健康监测、故障转移过程、***资源协调等的服务,同时确保OT资产在工业自动化***中继续执行其各自的操作。下面将参照图1至图8讨论关于协调容器编排***的操作与控制OT资产的工业控制***的操作的其他细节。
作为介绍,图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移出以例如存储在仓库中或进行装运。显然,对于其他应用,特定的***、机器部件、机器、工位和/或输送机可以是不同的或者专门适合于该应用。
例如,工业自动化***10可以包括在压缩机站、炼油厂、用于制造食品的批处理操作、化学处理操作、啤酒厂操作、采矿操作、机械化装配线等中执行各种操作的机械。因此,工业自动化***10可以包括各种操作部件,例如电动马达、阀门、致动器、温度元件、压力传感器或者用于制造、加工、材料处理和其他应用的大量机械或设备。工业自动化***10还可以包括电气装备、液压装备、压缩空气装备、蒸汽装备、机械工具、保护装备、制冷装备、电力线、液压线、蒸汽线等。一些示例类型的装备可以包括混合器、机器输送机、罐、滑橇、专用的原始装备制造商机器等。除了上述装备之外,工业自动化***10还可以包括马达、保护设备、开关设备、压缩机等。这些所描述的操作部件中的每个操作部件可以对应于和/或生成关于操作、状态、传感器数据、操作模式、警报状况等的各种操作技术(OT)数据,可以期望这些操作技术(OT)数据输出以利用来自IT网络的IT数据进行分析、将其存储在IT网络中、利用预期操作设置点(例如阈值)进行分析等。
在某些实施方式中,可以由工业控制***12对工业自动化***10中的装备例如工位14的一个或更多个属性进行监测和控制以调整控制变量。例如,感测设备(例如,传感器18)可以监测工业自动化***10的各种属性,并且可以被工业控制***12至少部分地用于调整工业自动化***10的操作(例如,作为控制回路的一部分)。在一些情况下,工业自动化***10可以与其他装备所使用的设备相关联。例如,可以将扫描仪、仪表、阀门、流量计等布置在工业自动化***10上或内部。此处,工业控制***12可以从相关联的设备接收数据并且使用该数据以更有效地执行它们各自的操作。例如,工业自动化***10的与马达驱动器相关联的控制器可以接收关于所连接马达的温度的数据,并且可以基于该数据调整马达驱动器的操作。
工业控制***12可以通信地耦接至显示器/操作者接口20(例如,人机接口(HMI))以及工业自动化***10的设备。应当理解,可以在工业自动化***10的特定实施方式中使用任何合适数量的工业控制***12。工业控制***12可以有利于通过编程对象来表示工业自动化***10的部件,所述编程对象可以被实例化并且被执行以在显示器/操作者接口20上提供与实际部件类似或相同的模拟功能以及这些部件的可视化或者上述两者。编程对象可以包括存储在工业控制***12中并由工业控制***12的处理电路***执行的代码和/或指令。处理电路***可以与存储器电路***通信以允许存储部件可视化。
如所示出的,显示器/操作者接口20描绘了工业自动化***10中的各部件的表示22。工业控制***12可以使用由传感器18传送的数据,以通过改变部件的当前操作的一个或更多个状态、状况和/或指示来更新部件的可视化。这些传感器18可以是适于提供有关过程状况的信息的任何合适的设备。实际上,传感器18可以用在可以由工业控制***12监测和控制的过程回路(例如,控制回路)中。这样,可以基于过程输入(例如,来自传感器18的输入)或者由人经由显示器/操作者接口20进行的直接输入来激活过程回路。操作和/或监测工业自动化***10的人可以参考显示器/操作者接口20来确定工业自动化***10和/或特定部件的各种状态、状况和/或当前操作。此外,操作和/或监测工业自动化***10的人可以通过与控制面板或各种输入设备的交互将各个部件调整至启动、停止、掉电、上电或以其他方式调整工业自动化***10的一个或更多个部件的操作。
工业自动化***10可以被认为是具有各自分别生成各种数据的若干过程和操作的数据丰富的环境。例如,工业自动化***10可以与可以被组织和分类为OT数据的材料数据(例如,与基板或原材料的属性或特征相对应的数据)、参数数据(例如,与例如在工业自动化***10的操作期间的机器和/或工位的性能相对应的数据)、测试结果数据(例如,与在工业自动化***10的最终产品或中间产品上执行的各种质量控制测试相对应的数据)等相关联。另外,传感器18可以收集指示工业自动化***10或工业控制***12的一个或更多个操作的OT数据。以这种方式,OT数据可以是指示与工业自动化***10或工业控制***12的操作相关联的测量结果、状态、警报等的模拟数据或数字数据。
上述工业控制***12可以在OT空间中操作,在OT空间中,OT数据被用于监测和控制OT资产,例如工业自动化***10的工位14中示出的装备或其他工业装备。OT空间、环境或网络通常包括由工业控制***12协调的直接监测和控制操作以及对应的OT资产。例如,可编程逻辑控制器(PLC)可以在OT网络中操作以控制OT资产(例如,驱动器、马达)的操作。工业控制***12可以被特别地编程或配置成直接与相应的OT资产通信。
另一方面,容器编排***24可以在信息技术(IT)环境中操作。也就是说,容器编排***24可以包括多个计算设备的集群,该集群协调对该集群的计算设备内的应用的各个容器的工作进行管理或调度的自动过程。换句话说,容器编排***24可以用于跨多个计算设备以一定规模使各种任务自动化。作为示例,容器编排***24可以使以下任务自动化:所述任务例如配置和调度容器,供应和部署容器,确定容器的可用性,根据应用在其中运行的容器来配置应用,扩展容器以均等地平衡基础结构上的应用工作负载,在容器之间分配资源,执行容器的负载平衡、业务路由和服务发现,执行容器的健康监测、保护容器之间的交互等。在任何情况下,容器编排***24都可以使用配置文件来确定便于容器之间进行通信的网络协议、用于保存日志的存储位置等。容器编排***24还可以对容器至群集的部署进行调度并且识别最适于执行该容器的主机(例如,节点)。在识别出主机之后,容器编排***24可以基于预定规范来管理容器的生命周期。
记住上述内容,应当注意,容器指的是用于打包应用及其运行时相关性的技术。也就是说,容器包括与底层主机的基础结构(例如,操作***)解耦的应用。通过包括与容器的运行时相关性,无论容器在其中操作的主机如何,容器都可以相同的方式执行。在一些实施方式中,容器可以作为容器镜像28存储在容器注册表26中。容器注册表26可以是容器编排***24可访问的任何合适的数据存储装置或数据库。容器镜像28可以对应于包括用于执行相应应用的工具和数据的可执行软件包。也就说是,容器镜像28可以包括用于操作应用的相关代码、应用库、***库、运行时工具、各种设置的默认值等。
作为示例,用户可以使用集成开发环境(IDE)工具来创建部署配置文件,该部署配置文件指定容器编排***24的节点集合的期望状态。部署配置文件可以连同与部署配置文件相关联的各个容器镜像28一起存储在容器注册表26中。部署配置文件可以包括不同pod的列表以及应当在任何给定时间在容器编排***24内操作的每个pod的多个副本。每个pod可以对应于可以与一个或更多个容器相关联的应用的逻辑单元。容器编排***24可以对部署配置文件中列出的pod的分布和执行进行协调,使得能够连续满足期望状态。在一些实施方式中,容器编排***24可以包括主节点,该主节点从容器注册表26中检索部署配置文件、对pod至所连接节点的部署进行调度、并且确保满足部署配置文件中指定的期望状态。例如,如果某个pod在一个节点上停止操作,则主节点可以从不再执行该pod的相应的工作节点接收通知,并且将该pod部署至另一工作节点,以确保通过节点集群呈现期望状态。
如以上所提及的,容器编排***24可以包括可以一起工作以实现如在相应容器中指定的某些规范或状态的计算设备、计算***或容器节点的集群。在一些实施方式中,容器节点30可以被集成在如图1所示的工业控制***12内。也就是说,容器节点30可以由工业控制***12实现,使得它们相对于容器编排***24中的主节点表现为工作节点。以这种方式,容器编排***24的主节点可以向容器节点30发送命令,所述容器节点30也被配置成执行针对相应工业装备的应用和操作。
记住这一点,容器节点30可以与工业控制***12集成在一起,使得它们充当容器编排***24的被动-间接参与者、被动-直接参与者或主动参与者。作为被动-间接参与者,容器节点30可以对可以由容器编排***24发出的所有命令的子集做出响应。以这种方式,容器节点30可以支持有限的容器生命周期特征,例如接收pod、执行pod、更新相应的文件***以包括供工业控制***12执行的软件包、以及向容器编排***24的主节点报告pod的状态。可由在被动-间接模式下操作的容器节点30实现的有限特征可以被限于相应的工业控制***12可以使用本地命令实现的命令,所述本地命令直接映射至通过容器编排***24的主节点接收的命令。此外,在被动-间接操作模式下操作的容器节点30可能不能推送包或直接控制工业控制***12的操作以执行该包。替代地,工业控制***12可以定期地检查容器节点30的文件***,并在那时检索新包以用于执行。
作为被动-直接参与者,容器节点30可以作为如下节点进行操作:所述节点是容器编排***24的节点集群的一部分。这样,容器节点30可以支持全部的容器生命周期特征。也就是说,在被动-直接模式下操作的容器节点30可以对容器镜像进行解包并且将所得的包推送至工业控制***12,使得工业控制***12响应于从容器节点30接收到包而执行包。这样,容器编排***24可以访问可以将从主节点接收的命令直接实施到工业控制***12上的工作节点。
在主动参与者模式下,容器节点30可以包括托管操作***(例如,Linux)的计算模块或***,所述操作***可以连续地操作可以参与容器操作的管理的容器主机守护进程。这样,主动参与者容器节点30可以执行容器编排***24的主节点可以执行的任何操作。通过包括在OT空间中操作的容器节点30,容器编排***24能够将其管理操作扩展到OT空间中。也就是说,容器节点30可以在OT空间中供应设备、用作在IT空间与OT空间之间提供双向协调的代理节点32等。例如,作为代理节点32操作的容器节点30可以拦截编排命令,并且基于所述编排命令使工业控制***12实施适当的机器控制例程。工业控制***12可以向代理节点32确认机器状态,然后,代理节点32可以代表工业控制***12向容器编排***24的主节点进行答复。
另外,工业控制***12可以经由代理节点32共享OT设备树。这样,代理节点32可以向主节点提供状态数据、地址数据、描述性元数据、版本数据、证书数据、密钥信息以及与工业控制***12有关的其他相关参数。此外,代理节点32可以发出针对其他工业控制***12的请求以控制其他OT设备。例如,代理节点32可以使用一种或更多种OT通信协议来转换命令并将其转发至目标OT设备、可以接收来自OT设备的答复并对其进行转换等。这样,代理节点32可以执行健康检查、提供配置更新、发送固件补丁、执行密钥刷新以及关于其他OT设备的其他OT操作。
记住上述内容,图2是可以与本文描述的实施方式一起使用的示例工业控制***12的框图。工业控制***12可以包括通信部件42、处理器44、存储器46、存储装置48、输入/输出(I/O)端口50、显示器20等。通信部件42可以是有助于容器编排***24与工业控制***12或任何其他合适的电子设备之间进行通信的无线或有线通信部件。处理器44可以是能够执行计算机可执行代码的任何类型的计算机处理器或微处理器。处理器44还可以包括可以执行下述操作的多个处理器。
存储器46和存储装置48可以是可以用作存储处理器可执行代码、数据等的介质的任何合适的制品。这些制品可以代表如下计算机可读介质(即,任何合适形式的存储器或存储装置),所述计算机可读介质可以存储由处理器44用于执行当前公开的技术的处理器可执行代码。存储器46和存储装置48可以代表如下非暂态计算机可读介质(例如,任何合适形式的存储器或存储装置),所述非暂态计算机可读介质可以存储由处理器44用于执行本文中描述的各种技术的处理器可执行代码。应当注意,非暂态仅指示介质是有形的而不是信号。
I/O端口50可以耦接至一个或更多个传感器18、一个或更多个输入设备、一个或更多个显示器等,以促进人或机器与工业控制***12的交互。例如,基于经由显示器20提供给用户的通知,用户可以使用输入设备来指示OT设备的调整。
如以上所讨论的,显示器20可以操作以描绘与正由处理器44处理的软件或可执行代码相关联的可视化。在一个实施方式中,显示器20可以是能够接收来自工业控制***12的用户的输入的触摸显示器。例如,显示器20可以是任何合适类型的显示器,例如,液晶显示器(LCD)、等离子体显示器或有机发光二极管(OLED)显示器。另外,在一个实施方式中,显示器20可以与触敏机构(例如,触摸屏)结合提供,该触敏机构可以用作用于工业控制***12的控制接口的一部分。
尽管关于工业控制***12描绘了图2,但是应当注意,容器编排***24、容器节点30和代理节点32还可以包括相同或相似的部件以执行或促进执行本文描述的各种技术。此外,应当理解,关于图2描述的部件是示例性图,并且工业控制***12和其他合适的计算***可以包括如以上详细描述的更多或更少的部件。
记住上述内容,图3示出了描绘容器节点30和代理节点32相对于容器编排***24的相对位置的框图。如以上所提及的,容器编排***24可以包括用于通过多个节点实现一个或更多个容器的期望状态的节点的集合。如图3所示,容器编排***24可以包括主节点62,主节点62可以执行针对容器编排***24的控制平面过程。控制平面过程可以包括使得容器编排***24能够协调容器节点30的操作以满足期望状态的过程。这样,主节点可以执行用于容器编排***24、调度器部件、核心资源控制器等的应用编程接口(API)。作为示例,主容器节点62可以协调组成容器编排***24的集群的节点之间的所有交互。实际上,主容器节点62可以负责决定将在容器节点30上运行的操作,所述操作包括调度工作负载(例如,容器化应用)、管理工作负载的生命周期、扩展和升级、管理工作负载的网络和存储资源等。主容器节点62可以运行API服务器以处理从容器节点30接收的请求和状态更新。
通过操作的方式,集成开发环境(IDE)工具64可以***作者用于开发部署配置文件65。如以上所提及的,部署配置文件65可以包括有关容器、pod、操作容器/pod的约束的细节以及描述部署配置文件65中指定的容器的期望状态的其他信息。在一些实施方式中,可以以YAML文件、JSON文件或与容器编排***24兼容的其他合适的文件格式生成部署配置文件65。在IDE工具64生成部署配置文件65之后,IDE工具64可以将部署配置文件65传送至容器注册表26,容器注册表26可以将该文件连同容器镜像28一起存储,容器镜像28表示存储在部署配置文件65中的容器。
在一些实施方式中,主容器节点62可以经由容器注册表26直接从IDE工具64等接收部署配置文件65。主容器节点62可以使用部署配置文件65来确定收集容器镜像28的位置、确定用于在容器节点30之间建立联网的通信协议、确定用于安装存储卷的位置、存储关于容器的日志的位置等。
基于部署配置文件65中提供的期望状态,主容器节点62可以将容器部署至容器主机节点30。也就是说,主容器节点62可以基于部署配置文件65中提供的约束(例如,CPU或存储器可用性)来调度容器的部署。在容器在容器节点30上进行操作之后,主容器节点62可以管理容器的生命周期,以确保由部署配置文件65指定的容器正根据所指定的约束和期望状态进行操作。
记住上述内容,工业控制***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接收的命令。
在某些实施方式中,容器节点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)或可以监测、控制和操作工业自动化设备或部件的任何其他控制器。
工业自动化设备或部件可以对应于OT设备67。OT设备67可以包括在OT空间中操作的任何合适的工业设备。这样,OT设备67可能涉及调整通过工业***10实现的物理过程。在一些实施方式中,OT设备67可以包括马达控制中心、马达、人机接口(HMI)、操作者接口、接触器、启动器、传感器、驱动器、中继器、保护设备、开关设备、压缩机、网络交换机(例如,以太网交换机、模块化管理型交换机、固定管理型交换机、服务路由器型交换机、工业交换机、非管理型交换机等)等。另外,OT设备67还可以涉及各种工业装备,例如混合器、机器输送机、罐、滑橇、专门的原始设备制造商机器等。OT设备67还可以与装备所使用的设备例如扫描仪、仪表、阀门、流量计等相关联。在一个实施方式中,可以通过控制***66来控制或操作OT设备67的每个方面。
在本文描述的本实施方式中,控制***66可以因此基于从容器节点30接收的命令来执行动作。通过将某些容器生命周期状态映射到控制***66可实施的适当的对应动作中,容器节点30使得能够利用主容器节点62将针对工业控制***12的程序内容容器化、公布至某些注册表并且进行部署,从而在基于IT的容器编排***24与基于OT的工业控制***12之间建立桥梁。
图4示出了使用以上参考图3描述的主容器节点62和容器节点30来跟踪容器的部署的数据流程图80。在步骤82处,IDE工具64可以创建部署配置文件65至主容器节点62的部署。在接收到部署配置文件65之后,主容器节点62可以识别可以满足部署配置文件65中提供的约束规范(例如,存储器、CPU可用性)的容器节点30。也就是说,主容器节点62执行调度操作,所述调度操作涉及检查容器编排***24的每个节点的状态数据、确定针对部署配置文件65中提供的约束是否存在合适的节点等。
在识别到合适的容器节点之后,在步骤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的部署进行调度以用于执行以维持期望状态。
记住上述内容,图5示出了容器节点30可以经由容器编排***24的主容器节点62实现以对活动进行协调的方法110。尽管方法110的以下描述被描述为由容器节点30执行,但是应当理解,被配置成与工业控制***12和容器编排***24的节点集群接口的任何合适的容器节点均可以执行本文中描述的操作。另外,尽管以特定顺序描述了方法110,但是应当理解,可以以任何合适的顺序执行方法110。
现在参照图5,在框112处,容器节点30可以从主容器节点62接收pod。如以上所提及的,pod可以包括被部署至主机(例如,容器节点30)的一个或更多个容器。在一些实施方式中,pod可以操作以指定一组容器之间的协调操作。pod可以包括对与该pod有关的一个或更多个容器镜像28的存储位置的指示或参考。在一些实施方式中,容器镜像28可以被存储在容器注册表26中。这样,pod可以提供对用于访问容器注册表26中的存储位置的网络地址或其他地址的指示。
在从主容器节点62接收到pod之后,在框114处,容器节点30可以从容器注册表26下载相关的容器镜像28。如以上所提及的,容器镜像28表示封装应用及其软件相关性的数据。容器镜像28可以是可以作为独立软件执行而与对应容器节点30正在使用的操作***无关的可执行软件捆绑包。在一些实施方式中,容器节点30可以经由主容器节点62或任何其他合适的通信方案直接从容器注册表26接收容器镜像。
在接收到容器镜像28之后,在框116处,容器节点30可以运行容器镜像28或对其进行解包,并且基于容器镜像28确定可以由控制***66执行的命令。也就是说,容器镜像28可以包括容器节点30可执行的软件应用。然而,这些软件应用可能不能由控制***66执行。这样,容器节点30可以确定针对控制***66的命令,这些命令与封装在容器镜像28中的软件应用相对应。在一些实施方式中,软件应用中的某些操作可以被映射至可以由控制***66执行的某些操作。例如,用于创建、运行、启动、暂停、停止和删除的软件应用命令可以分别被映射至可以由控制***66执行的下载、下载/运行、运行、空闲和卸载命令。
在基于容器镜像28确定了可以由控制***66实施的命令之后,在框118处,容器节点30可以生成可以由控制***66检索和执行的包。也就是说,容器节点30可以将所确定的命令组织或构造为可以由控制***66使用的软件包。例如,如果控制***66对应于PLC,则可以根据PLC自身可以用于编程的编程结构(例如,梯形逻辑)来组织该包。
在框120处,容器节点30可以将包存储在控制***66可访问的存储器或文件***中。在一些实施方式中,容器节点30可能不能直接与控制***66接口。然而,容器节点30可以向控制***66提供对其存储器或存储组件的访问,使得控制***66可以对已存储的包进行检索。控制***66可以被编程为定期地(例如,每天、每小时)检查文件***是否有更新或可用于下载的新包。
应当注意,方法110可以描述作为容器编排***24的一部分的容器节点30的被动-间接操作模式。也就是说,容器节点30被限制于执行可以由主容器节点62提供的命令的子集,而不是执行作为容器编排***24的一部分的节点能够执行的全部命令。此外,容器节点30可能不能执行容器中提供的所有生命周期操作。例如,如以上所描述的,容器节点30可以促进控制***66的包下载操作,但是,如果控制***66不具有可以被映射至相应容器生命周期操作的对应操作,则它可能不能执行容器中指定的每个功能。
在一些实施方式中,容器节点30可以在被动-直接操作模式下操作,在被动-直接操作模式下,容器节点30可以作为节点参与容器编排***24。这样,容器节点30可以支持容器生命周期操作的全部集合。也就是说,由于控制***66能够实现由主容器节点62提供的有限命令集,因此可以通过边车(sidecar)计算模块来实现或执行容器节点30,边车计算模块可以托管可以执行容器编排***24中的节点可以执行的全套操作的容器主机守护进程。这样,边车计算模块可以是能够执行操作***(OS)的任何合适的计算***,使得从主容器节点62接收的命令可以由相应的边车计算模块实施。
通过以边车计算模块来实现容器节点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的操作和状态的可见性。
记住这一点,图6示出了根据本文描述的实施方式的用于容器节点30将包直接发送至控制***66并且将机器状态数据直接发送至主容器节点62的方法130。与以上描述的方法110类似,可以由任何合适的计算***并且以任何合适的顺序来执行方法130的以下描述。应当注意,以下描述的方法130对应于在被动-直接操作模式下操作容器节点30。这样,容器节点30可以从主容器节点62等接收编排命令并对从主容器节点62等接收的编排命令进行解译,并且与控制***66直接接口以验证控制***66是否正在期望状态下操作。
参照图6,在框132处,容器节点30可以从主容器节点62或作为容器编排***24的一部分的某个其他节点接收编排命令。编排命令可以包括关于控制***66当前应该正在执行的一个或更多个容器的指令。这样,编排命令可以是监测功能的一部分,该监测功能使容器节点30验证控制***66的机器状态数据是否对应于如部署配置文件65指定的预期机器状态。
在框134处,容器节点30可以从控制***66检索机器状态数据。机器状态数据可以包括由控制***66控制的各个OT设备的当前操作状态(例如,主动、非主动)、可用处理资源(例如,CPU可用性)、可用存储器资源(例如,存储装置、RAM)等。机器状态数据还可以指示控制***66是否正在执行任何容器。这样,可以将机器状态数据报告回主容器节点62,以确保存在由部署配置文件65指定的期望状态。
为了接收机器状态数据,容器节点30可以经由适当的OT通信协议向控制***66发送请求。响应于接收到请求,控制***66可以查询数据库、存储单元或者可能包括关于所请求的数据的信息的其他合适的存储装置。在检索到所请求的信息之后,控制***66可以使用与它接收请求的OT通信协议相同的OT通信协议将所请求的数据发送至容器节点30。
在一些实施方式中,容器节点30可以被嵌入或集成到控制***66的一个或更多个核中。这样,容器节点30可以使用板载通信方法与控制***66的部分传送数据。可替选地,容器节点30可以直接从相应的存储器位置检索机器状态数据。
在从控制***66接收到机器状态数据之后,在框136处,容器节点30可以基于部署配置文件65确定控制***66是否正在期望状态下操作。在本实施方式中,容器节点30可以评估控制***66是否正在执行如部署配置文件65中指定的容器。也就是说,由于容器节点30可以执行容器主机守护进程,因此容器节点30可以通过监测控制***66的机器状态数据来参与对分布在整个容器调度***24中的容器的管理。
如果控制***66正在期望状态下操作,则容器节点30可以进行至框138,并且将机器状态数据发送至主容器节点62。然后,主容器节点62可以检查其他容器节点30是否正在实现期望状态。
然而,如果容器节点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的协调。
通过采用容器节点30以使得容器编排***24能够在控制***66上实施软件容器,本文中描述的本实施方式使得能够对多个控制***66和多个OT设备67的控制进行协调以控制工业自动化***10中的操作。也就是说,期望机器状态可以包括工业装备的期望操作参数,并且容器编排***24可以监测可用的工业装备资源,以确保通过经由与控制***66通信地耦接的容器节点30协调活动来连续实现期望机器状态。
除了在被动-间接模式和被动-直接模式下操作之外,容器节点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。
另外,代理节点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的期望机器状态的集合。使用容器编排***在工业控制***中实现无服务器功能
除了协调IT***与OT***之间的通信外,容器编排***24还可以用于使用本文所描述的实施方式来实现功能即服务(FaaS)操作或无服务器功能。更具体地,主容器节点62可以使用相应的工作容器节点等将FaaS操作分配在一个或更多个控制***70上。以这种方式,容器编排***24可以利用控制***70在OT空间中的可用资源来协调各种OT操作。
通过介绍,无服务器功能或FaaS操作对应于使得能够在无需考虑相应设备上可用的可用计算资源的情况下执行某些逻辑或应用(例如,包、容器)的计算方案。换句话说,不管控制***66的当前状态(例如,CPU可用性、存储器可用性、线路可用性、设备可用性)如何,主容器节点62都可以识别工作容器节点68和/或控制***70以托管和/或执行应用。在一些实施方式中,可以基于在另一***(例如,控制***70)中发生的异步事件来触发FaaS操作。例如,主容器节点62对来自容器编排***24的其他容器节点的传入消息进行监测,以得到可能导致FaaS操作执行的事件、触发器或通知。另外,主容器节点62可以监测共享文件***以得到新文件、被添加至数据库表的行、被添加至数据库的数据等。主容器节点62还可以侦听API端点调用(例如,GET、POST、PUT、Delete)或任何其他合适的触发事件。在任何情况下,主容器节点62可以采用连续地(例如,定期地)监测外部***以得到状态变化的功能(例如,执行应用),所述状态变化对应于导致另一应用执行。
记住这一点,图7示出了用于使用本文描述的实施方式来执行示例FaaS操作的方法150。作为示例,下面描述的方法150将被详细描述为由主容器节点62执行。然而,应当注意,能够协调容器编排***24中的节点的活动的任何合适的容器节点例如代理节点32均可以执行方法150。另外,尽管以特定顺序描述了方法150的以下描述,但是应当理解,可以以任何合适的顺序来执行方法150。
现在参照图7,在框152处,主容器节点62可以从容器节点30、工作容器节点68或容器编排***24中的其他合适的节点接收基于事件的通知。在一些实施方式中,基于事件的通知可以和与控制***66、OT设备67等相对应的状况或状态有关。这样,基于事件的通知可以对应于满足某个条件、超过某个阈值、降至低于某个阈值等的状态。例如,基于事件的通知可以与以下状况有关:所述状况和与控制***66相关联的计算属性(例如,CPU可用性)、OT设备67的机器可用性(例如,可用、不可用)或由控制***66检测到的其他变量有关。这样,基于事件的通知可以由控制***66生成并报告给容器节点30,容器节点30可以将基于事件的通知转换成主容器节点62可解译的格式。
在框154处,主容器节点62可以根据基于事件的通知来确定要执行的分析操作或逻辑操作。也就是说,主容器节点62可以监测基于事件的通知,这可以使主容器节点62响应于接收到基于事件的通知而执行应用或功能(例如,容器)。在一些实施方式中,所调用的功能可能涉及对存储在各种设备(例如,OT设备、控制***)上的数据执行某些分析操作。例如,如果基于事件的通知涉及OT设备67过热或者相应的控制***66检测到与OT设备67相关联的温度超过阈值,则主容器节点62可以执行分析操作以确定多个OT设备在一段时间(例如,24小时)内的平均温度增幅。
为了执行分析操作,主容器节点62可以识别在执行分析时可能涉及的一个或更多个函数(例如,方程式、过程)、一个或更多个变量以及其他数据元素。在一些实施方式中,主容器节点62可以响应于接收到基于事件的通知而执行容器,并且该容器可以包括关于要执行的分析操作、用于执行分析操作的函数、完成分析操作所涉及的变量或数据等的相关信息。可以用于执行分析操作的信息或数据的一部分可以包括预分析数据。预分析数据可以包括已被预处理或收集以促进更高级别的分析操作的某些数据集。再次参考上面提供的示例,为了确定多个OT设备的平均温度增幅,预分析数据可以包括一个OT设备在一段时间内的平均温度增幅。
记住这一点,用于执行分析操作的容器可以使主容器节点62确定容器编排***24的其他节点是否可以执行某些预分析操作。可替选地,容器可以包括用于其他容器节点30执行相应的预分析操作的命令或指令的列表。在任何情况下,在框156处,基于由相应容器提供的指令,主容器节点62可以确定与在框154处确定的分析操作有关的预分析操作。
在确定了要由各种容器节点30或其他工业控制***66执行的预分析操作之后,在框158处,主容器节点62可以生成或检索用于部署至一个或更多个容器节点30的一个或更多个pod。如以上关于图4所描述的,pod可以包括使相应的容器节点30检索与pod相关联的相应容器镜像28的可执行指令。在一些实施方式中,pod可以作为如下容器的一部分存储,所述容器指定可以执行相应的预分析操作的容器节点30和/或控制***66。
在一些实施方式中,在部署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及其本地调度操作来促进预分析操作命令的协调。
在识别到适当的容器节点30之后,主容器节点62可以将pod发送至相应的容器节点30。然后,容器节点30可以拉取与所接收的pod相关联的容器镜像,并且将相关联的包存储在与控制***66共享的文件***上或将该包(例如,经由被动-直接模式、主动模式操作)直接发送至控制***66以供实施。
在控制***66执行预分析操作并且获取预分析数据之后,在框164处,主容器节点62可以从容器节点30接收预分析数据。如以上所讨论的,容器节点30可以经由OT通信协议接收预分析数据,并且将接收到的数据转换成主容器节点62可解译的格式。由于预分析数据在数据源附近被处理并且被组织为预分析数据,因此,被发送至主容器节点62的数据的量小于为获得预分析数据而分析的原始数据的量。这样,容器编排***24可以通过使用控制***70来处理原始数据并传送较小的预分析数据结果,来减少跨容器编排***24的节点传送的网络业务的量或容量。
记住这一点,本实施方式使得容器编排***24能够通过协调不同控制***70上的各种数据处理操作来在工业自动化环境中实现无服务器功能。作为结果,来自不同领域(例如,IT领域和OT领域)的用户和/或开发者可以使用在其各自的环境中的其各自的工具来创建联合解决方案。例如,通过控制***60工作的控制工程师可以使用诸如梯形逻辑或功能块的语言来创建鲁棒的控制程序,而IT工程师可以使用诸如Python或JavaScript的语言来创建分析或集成解决方案。容器编排***24可以协调跨不同领域的任务的部署,同时跨IT领域和OT领域维持期望的机器状态。以这种方式,容器编排***24使得每个开发者能够在不牺牲其各自工具的优势或者不对其他开发者的领域过度了解的情况下构建他们的解决方案部分。此外,通过采用控制***70(例如,chassis(机架)中的控制器或其他计算表面(compute surface)/边车)来执行某些功能(例如,IT操作),本文描述的本实施方式可以降低复杂度,所述复杂度与各种设备(例如,OT设备和IT设备)之间的联网连接以及通过利用某些OT通信协议在整个通信中提供安全性相关联。此外,通过协调工业控制***12的控制***70上的操作,容器编排***24可以通过根据可用资源和期望的机器状态调度操作来提高所生成数据的可靠性和可用性。
由于主容器节点62在容器中部署功能(例如,使其无服务器),因此容器编排***24使IT开发者不必了解功能所运行于的基础结构。此外,由于功能的逻辑在容器中运行,因此控制工程师并不关心更改已经实现的控制程序的性能或行为的其他处理。作为结果,本文描述的本实施方式提供了鲁棒的计算架构,该计算架构利用工业控制***12中可用的控制***70以及容器编排***24的生命周期管理操作来有效地协调数据分析操作、机器控制操作、线路控制操作等。作为示例,容器编排***24可以将要执行的分析操作推送至靠近数据输入源的位置,并且使分析操作的结果可用于下游分析。另外,容器编排***24可以对数据进行整形以供其他服务使用、使用GraphQL生成用于图形表示的用户友好模式、提供对第三方***的访问(例如,调用web服务、访问数据库)以及执行IT领域中的其他操作。此外,容器编排***24可以协调OT操作,例如从控制***66获得秘诀数据以用于批处理、将信息记录到MES应用、报告检测到的OT设备异常、跟踪库存的原料消耗和质量等。实际上,可以经由容器编排***24使IT设备可以获得OT数据以用于数据处理,从而利用IT设备对OT数据的数据处理能力。
使用容器编排***在工业控制***中提供滚动更新
除了将分析操作推送至控制***之外,本实施方式还可以用于向控制***66、OT设备67以及工业***10、工业控制***12等中可能存在的其他合适的组件提供滚动更新。在工业环境中,软件补丁、固件更新和其他更新由控制***66在相应的OT设备67脱机时实现。也就是说,为了更新控制***66或OT设备67,可以在对控制***66和/或OT设备67实施更新之前使相应设备脱机。在工业自动化***10中,使组件脱机可以直接影响生产,因为较少的在线OT设备67可以降低工业***10的生产率或效率。
记住这一点,本文描述的容器编排***24可以协调工业***10的各个组件上的更新分配,以确保在维持工业***10的期望状态的同时对组件进行更新。也就是说,用于分配更新的部署配置文件65可以包括指示可以在任何给定时间保持运行的控制***66和/或OT设备67各自的数量的期望状态数据。在一些实施方式中,为了实施以下用于提供更新的方法,冗余控制***66和/或OT设备67可用于允许容器编排***24在组件之间转移操作,以在某些组件脱机时对其进行更新并且保持其他组件在线以执行其各自的操作。另外,容器编排***24可以基于针对各个控制***66和/或OT设备67的预期操作安排来调度对更新的部署。也就是说,容器编排***24可以监测各个控制***66和/或OT设备67的操作模式,并且调度相应pod的部署以在计划使组件脱机的时间段内对这些组件进行更新。在任何情况下,本文描述的本实施方式使得能够基于可用资源和期望状态以协调的方式向工业***10中的组件提供更新,以确保工业***10继续根据期望协议进行操作。
作为示例,图8示出了容器编排***24中的主容器节点62可以用于向控制***66和/或OT设备67分配更新的方法180的流程图。与以上描述的方法类似,尽管方法180被描述为由主容器节点62且以特定顺序执行,但是应当理解,方法180可以由容器编排***24中的任何合适的计算***或节点以任何合适的顺序执行。
现在参照图8,在框182处,主容器节点62可以接收针对目标控制***66的更新数据。更新数据可以经由部署配置文件65或经由容器编排***24的用户输入的命令提供。更新数据可以包括软件更新、控制器更新、固件更新或可以修改目标控制***66和/或OT设备67的操作的其他类型的更新。另外,更新数据可以包括可以实施更新的目标控制***66和/或目标OT设备67的指示。在一些实施方式中,更新数据还可以包括针对工业***10的控制***66和/或OT设备的集合的期望机器状态数据。期望机器状态数据可以包括控制***66和/或OT设备的数量以及各个组件的对应的期望操作状态。这样,主容器节点62可以对工业***10的组件进行分析,以确保在向目标控制***66和/或OT设备67提供更新的同时维持期望的机器状态。
在框184处,主容器节点62可以接收目标控制***66和其他控制***70以及/或者作为工业控制***12的一部分并且对于容器编排***24可见的关联OT设备67的机器状态数据。这样,主容器节点62可以将对相应组件的机器状态数据的请求发送至与目标控制***66和其他控制***70通信地耦接的代理节点32和/或目标容器节点30、容器节点68。机器状态数据可以包括有关相应控制***66和70的某些计算资源(例如,存储器、处理能力)的可用性的数据。另外,机器状态数据还可以包括关于由控制***66和70执行的过程和/或容器的信息。此外,机器状态数据还可以包括与所连接的OT设备67的操作状态(例如,操作模式、状态)有关的信息。
基于控制***66和70和/或OT设备67的机器状态数据,主容器节点62可以对pod至目标控制***66和冗余控制***70的部署进行调度。冗余控制***70可以包括可以与目标OT设备67接口并与之通信的任何合适的控制***70。这样,pod可以与挂起相应控制***70和/或相应OT设备67的操作有关。另外,pod可以与使用冗余控制***70来执行相应控制***70和/或相应OT设备71的挂起操作有关。
在一些实施方式中,主容器节点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的相应操作的组件。
另外,替换控制***70和/或OT设备71可以对应于当前可能被用于某些操作但也可以被配置成执行附加操作的其他控制***和/或OT设备。也就是说,一些控制***可以包括足够的处理和计算资源以控制多个OT设备。这样,主容器节点62可以经由相应的容器节点从这些控制***接收机器状态数据,以确定它们是否将能够执行目标控制***66和/或OT设备67的操作。
在识别到替换控制***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的功能。
在将pod部署至替换控制***70和/或OT设备71以及目标控制***66和/或OT设备67之后,在框190处,主容器节点62可以再次接收主容器节点62可访问的控制***和/或OT设备的机器状态数据。这样,主容器节点62可以在pod被部署至冗余控制***70和/或OT设备71以及目标控制***66和/或OT设备67之后接收经更新的机器状态数据。主容器节点62可以验证工业***10正在达到本文中的各个组件的期望机器状态。
基于经更新的机器状态数据,在框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中的组件列表以表示每个组件的当前配置。
通过采用容器调度***24对工业***10中的组件执行更新操作,本文描述的本实施方式使得工业***10能够在不减少正常运行时间或降低生产效率的情况下继续操作。实际上,其他更新方法涉及使组件断电,从而降低了工业***10的生产或操作效率。此外,当相应组件(例如,控制***)从由相应OT设备执行的协调操作中脱离时,更新可能涉及在设计时环境中执行任务。记住这一点,容器编排***24在运行时环境中协调更新过程,同时组件继续执行其相应的操作。实际上,各种组件的操作可以在工业***10中的可用资源之间转移,但是工业***10的操作任务保持在线,并且因此工业***10的生产率保持不变。
除了提供滚动更新之外,容器编排***24还可以执行其他高可用性操作,例如定期地测试工业控制***12或任何合适的控制***66/70的健康状况并将检测到的健康状况传送回主容器节点62。如果健康检查失败,则主容器节点62可以发起经由代理节点32启动的新的控制过程pod,其对应于不健康的控制***66/70、OT设备67/71等。可替选地,主容器节点62可以识别另一合适的代理节点32,并且经由该代理节点32发起新的控制过程pod,从而替换故障组件并保持相应OT设备67/71的控制***的可用性。
虽然本文仅示出和描述了当前公开的实施方式的某些特征,但是本领域技术人员将想到许多修改和改变。因此,应当理解,所附权利要求旨在涵盖落入本文描述的实施方式的真实精神内的所有这些修改和改变。

Claims (20)

1.一种***,包括:
多个控制***,用于控制多个操作技术OT设备的多个操作;
计算节点集群中的第一计算节点,所述计算节点是容器编排***的一部分,其中,所述第一计算节点被配置成:
接收针对所述多个控制***中的第一控制***、所述多个OT设备中的第一OT设备或者所述第一控制***和所述第一OT设备两者的更新数据,其中,所述第一控制***、所述第一OT设备或者所述第一控制***和所述第一OT设备两者被配置成执行一个或更多个操作,其中,所述更新数据被配置成更新由所述第一控制***、所述第一OT设备或者所述第一控制***和所述第一OT设备两者执行的一个或更多个软件组件;
经由所述计算节点集群的一部分从所述多个控制***中检索多个机器状态数据集,其中,所述多个机器状态数据集中的每个机器状态数据集对应于与所述多个控制***中的每个控制***、所述多个OT设备中的每个OT设备或者所述多个控制***中的每个控制***和所述多个OT设备中的每个OT设备两者相关联的操作状态;
基于所述多个机器状态数据集,将第二控制***识别为代替所述第一控制***执行所述一个或更多个操作的合适的主机;
将第一容器集存储在第二计算节点能够访问的第一文件***中,其中,所述第一容器集被配置成使所述第二计算节点中止所述一个或更多个操作;以及
将第二容器集存储在与所述第二控制***相关联的第三计算节点能够访问的第二文件***中,其中,所述第二容器集被配置成使所述第三计算节点经由所述第二控制***、与所述第二控制***相关联的第二OT设备或者所述第二控制***和所述第二OT设备两者执行所述一个或更多个操作。
2.根据权利要求1所述的***,其中,所述第一计算节点被配置成协调如下自动过程:所述自动过程用于管理或调度用于经由所述计算节点集群跨所述多个控制***执行的多个容器的部署。
3.根据权利要求2所述的***,其中,所述多个容器中的每个容器包括一个或更多个应用以及与所述一个或更多个容器中的每个容器相关联的一个或更多个运行时相关性。
4.根据权利要求1所述的***,其中,所述第一控制***、所述第一OT设备或者所述第一控制***和所述第一OT设备两者被配置成:在所述第一控制***、所述第一OT设备或者所述第一控制***和所述第一OT设备两者脱机时,使用所述更新数据更新所述一个或更多个软件组件。
5.根据权利要求1所述的***,其中,所述第一计算节点被配置成:基于与多个期望机器状态相比的所述多个机器状态数据集,将所述第二控制***识别为所述合适的主机。
6.根据权利要求1所述的***,其中,所述第二控制***、所述第二OT设备或者所述第二控制***和所述第二OT设备两者对应于用于执行所述一个或更多个操作的冗余控制***、冗余OT设备或者所述冗余控制***和所述冗余OT设备两者。
7.根据权利要求1所述的***,其中,所述第一计算节点被配置成在运行时环境期间传送所述第一容器集和所述第二容器集。
8.根据权利要求7所述的***,其中,所述第一计算节点被配置成:
将所述第一容器集直接传送至所述第二计算节点;以及
将所述第二容器集直接传送至所述第三计算节点。
9.一种方法,包括:
经由容器编排***中的计算节点集群中的第一计算节点从所述计算节点集群中的第二计算节点接收第一容器集;
经由所述第一计算节点基于所述第一容器集从注册表中检索包括第一组容器的第一镜像文件,其中,所述第一容器集包括所述第一镜像文件在所述注册表中的位置的指示,并且其中,所述第一组容器被配置成使多个控制***中的控制***中止一个或更多个操作;
经由所述第一计算节点基于所述第一组容器生成第一包;
经由所述第一计算节点将所述第一包存储在与所述控制***共享的文件***中;
经由所述第一计算节点从所述第二计算节点接收第二容器集;
经由所述第一计算节点基于所述第二容器集从所述注册表中检索包括第二组容器的第二镜像文件,其中,所述第二容器集包括所述第二镜像文件在所述注册表中的第二位置的第二指示,并且其中,所述第二组容器被配置成使所述控制***更新一个或更多个软件组件;
经由所述第一计算节点基于所述第二组容器生成第二包;以及
经由所述第一计算节点将所述第二包存储在所述文件***中。
10.根据权利要求9所述的方法,包括经由操作技术OT通信协议将所述第一包和所述第二包直接发送至所述控制***。
11.根据权利要求10所述的方法,其中,经由信息技术IT通信协议接收所述第一容器集和所述第二容器集。
12.根据权利要求9所述的方法,包括:
在所述一个或更多个软件组件被更新之后,经由所述第一计算节点从所述第二计算节点接收第三容器集;
经由所述第一计算节点基于所述第三容器集从所述注册表中检索包括第三组容器的第三镜像文件,其中,所述第三容器集包括所述第三镜像文件在所述注册表中的第三位置的第三指示,并且其中,所述第三组容器被配置成使所述控制***恢复所述一个或更多个操作;
经由所述第一计算节点基于所述第三组容器生成第三包;以及
经由所述第一计算节点将所述第三包存储在所述文件***中。
13.根据权利要求12所述的方法,包括:在接收所述第三容器集之前,向所述第二计算节点发送与所述控制***、通信地耦接至所述控制***的操作技术OT设备或者所述控制***和所述OT设备两者相关联的机器状态数据。
14.根据权利要求9所述的方法,其中,由所述控制***、通信地耦接至所述控制***的操作技术OT设备或者所述控制***和所述OT设备两者执行所述一个或更多个操作。
15.根据权利要求9所述的方法,包括:当所述控制***在运行时环境中操作时,将所述包直接发送至所述控制***。
16.一种非暂态计算机可读介质,包括计算机可执行指令,所述计算机可执行指令在被执行时被配置成使处理器执行包括以下操作的操作:
接收针对多个控制***中的第一控制***、多个OT设备中的第一OT设备或者所述第一控制***和所述第一OT设备两者的更新数据,其中,所述第一控制***、所述第一OT设备或者所述第一控制***和所述第一OT设备两者被配置成执行一个或更多个操作,其中,所述更新数据被配置成更新由所述第一控制***、所述第一OT设备或者所述第一控制***和所述第一OT设备两者执行的一个或更多个软件组件;
经由作为容器编排***的一部分的计算节点集群的一部分从所述多个控制***中检索多个机器状态数据集,其中,所述多个机器状态数据集中的每个机器状态数据集对应于与所述多个控制***中的每个控制***、所述多个OT设备中的每个OT设备或者所述多个控制***中的每个控制***和所述多个OT设备中的每个OT设备相关联的操作状态;
基于所述多个机器状态数据集,将所述多个控制***中的第二控制***识别为代替所述第一控制***执行所述一个或更多个操作的合适的主机;
生成第一容器集并且将所述第一容器集存储在所述节点集群中的第一计算节点能够访问的第一文件***中,其中,所述第一容器集被配置成使所述第一计算节点中止所述一个或更多个操作;以及
生成第二容器集并且将所述第二容器集存储在所述节点集群中的第二计算节点能够访问的第二文件***中,其中,所述第二计算节点与所述第二控制***相关联,其中,所述第二容器集被配置成使所述第二计算节点经由所述第二控制***、与所述第二控制***相关联的第二OT设备或者所述第二控制***和所述第二OT设备两者执行所述一个或更多个操作。
17.根据权利要求16所述的非暂态计算机可读介质,其中,所述多个机器状态数据集中的每个机器状态数据集与所述多个控制***中的相应控制***上可用的计算资源的量相对应。
18.根据权利要求16所述的非暂态计算机可读介质,其中,所述计算机可执行指令被配置成使所述处理器执行包括以下操作的操作:生成第三容器集并且将所述第三容器集存储在所述第一文件***中,其中,所述第三容器集被配置成使所述第一计算节点更新所述一个或更多个软件组件。
19.根据权利要求18所述的非暂态计算机可读介质,其中,所述计算机可执行指令被配置成使所述处理器执行包括以下操作的操作:
接收所述一个或更多个软件组件被更新的指示;
生成第四容器集并将所述第四容器集存储在所述第二文件***中,其中,所述第四容器集被配置成使所述第二计算节点中止所述一个或更多个操作。
20.根据权利要求19所述的非暂态计算机可读介质,其中,所述计算机可执行指令被配置成使所述处理器执行包括以下操作的操作:生成第五容器集并将所述第五容器集存储在所述第一文件***中,其中,所述第五容器集被配置成使所述第一计算节点恢复所述一个或更多个操作。
CN202110699110.1A 2020-09-22 2021-06-23 使用容器编排***来更新操作技术设备 Pending CN114253569A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/028,736 2020-09-22
US17/028,736 US11513877B2 (en) 2020-09-22 2020-09-22 Updating operational technology devices using container orchestration systems

Publications (1)

Publication Number Publication Date
CN114253569A true CN114253569A (zh) 2022-03-29

Family

ID=76829274

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110699110.1A Pending CN114253569A (zh) 2020-09-22 2021-06-23 使用容器编排***来更新操作技术设备

Country Status (3)

Country Link
US (2) US11513877B2 (zh)
EP (1) EP3998529A1 (zh)
CN (1) CN114253569A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115904419A (zh) * 2023-03-03 2023-04-04 杭州比智科技有限公司 一种基于自动化脚本安装应用软件的方法及装置

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11770377B1 (en) * 2020-06-29 2023-09-26 Cyral Inc. Non-in line data monitoring and security services
US20220091572A1 (en) * 2020-09-22 2022-03-24 Rockwell Automation Technologies, Inc. Integrating container orchestration systems with operational technology devices
EP4064045A1 (en) * 2021-03-25 2022-09-28 ABB Schweiz AG Method for real-time updating of process software
US20220404811A1 (en) * 2021-06-16 2022-12-22 Fisher-Rosemount Systems, Inc. Systems and Methods for Dynamically Maintained Redundancy and Load Balancing in Software Defined Control Systems for Industrial Process Plants
US20220404813A1 (en) * 2021-06-16 2022-12-22 Fisher-Rosemount Systems, Inc. Software defined control system including i/o server services that communicate with containerized services
US20220405130A1 (en) * 2021-06-16 2022-12-22 Fisher-Rosemount Systems, Inc. Systems and Methods for Dynamically Maintained Redundancy and Load Balancing in Software Defined Control Systems for Industrial Process Plants
US11966723B2 (en) * 2021-12-06 2024-04-23 Sap Se Automatic management of applications in a containerized environment
US20230421615A1 (en) * 2022-06-28 2023-12-28 Rockwell Automation Technologies, Inc. Systems and methods for automatically deploying security updates in an operations technology network
US20240028322A1 (en) * 2022-07-21 2024-01-25 Vmware, Inc. Coordinated upgrade workflow for remote sites of a distributed container orchestration system
US20240085889A1 (en) * 2022-09-08 2024-03-14 Rockwell Automation Technologies, Inc. Dynamic routing and edge orchestration for industrial automation data
US11947342B1 (en) 2022-09-19 2024-04-02 Rockwell Automation Technologies, Inc. Container registry and subscription service for industrial systems
US11846918B1 (en) 2022-09-22 2023-12-19 Rockwell Automation Technologies, Inc. Data driven digital twins for industrial automation device operation enhancement
US20240103491A1 (en) * 2022-09-22 2024-03-28 Rockwell Automation Technologies, Inc. Automation device firmware as a service via a container implementation
US20240103493A1 (en) * 2022-09-28 2024-03-28 Rockwell Automation Technologies, Inc. Systems and methods for condition-based deployment of chainable compute operations for constrained computing devices
LU503173B1 (de) 2022-12-12 2024-06-12 Phoenix Contact Gmbh & Co Orchestrierungssystem zum Aktualisieren von Containern mit darin enthaltenen Applikationen sowie hierauf basiertes Orchestrierungsverfahren
DE102022132909A1 (de) 2022-12-12 2024-06-13 Phoenix Contact Gmbh & Co. Kg Orchestrierungssystem zum Aktualisieren von Containern mit darin enthaltenen Applikationen sowie hierauf basiertes Orchestrierungsverfahren

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017064560A1 (en) 2015-10-13 2017-04-20 Schneider Electric Industries Sas Centralized management of a software defined automation system
US10615998B2 (en) * 2016-08-17 2020-04-07 Red Hat, Inc. State analysis of remote computing images
US12045693B2 (en) * 2017-11-22 2024-07-23 Amazon Technologies, Inc. Packaging and deploying algorithms for flexible machine learning
US20190377604A1 (en) * 2018-06-11 2019-12-12 Nuweba Labs Ltd. Scalable function as a service platform
KR102125260B1 (ko) 2018-09-05 2020-06-23 주식회사 나눔기술 분산 지능모듈의 통합관리 시스템
US10715388B2 (en) * 2018-12-10 2020-07-14 Sap Se Using a container orchestration service for dynamic routing
US11182206B2 (en) * 2019-01-10 2021-11-23 Vmware, Inc. Event proxies for functions-as-a-service (FAAS) infrastructures
US10754637B1 (en) * 2019-01-28 2020-08-25 International Business Machines Corporation Patch management in a hybrid computing environment
US11150963B2 (en) 2019-02-28 2021-10-19 Cisco Technology, Inc. Remote smart NIC-based service acceleration
JP6746741B1 (ja) * 2019-03-08 2020-08-26 ラトナ株式会社 コンテナオーケストレーション技術を利用したセンサ情報処理システム、センサ情報処理システムの制御方法、センサ情報処理システムの制御に用いるコンピュータプログラム、及び、その記録媒体。
US11711268B2 (en) * 2019-04-30 2023-07-25 Intel Corporation Methods and apparatus to execute a workload in an edge environment
US11347806B2 (en) * 2019-12-30 2022-05-31 Servicenow, Inc. Discovery of containerized platform and orchestration services
US11722356B2 (en) * 2020-01-09 2023-08-08 Vmware, Inc. Enabling integration of solutions with software-defined networking platform
US11429399B2 (en) * 2020-06-08 2022-08-30 Pivotal Software, Inc. Configuration container for container orchestration platform
US11550641B2 (en) * 2020-07-24 2023-01-10 Red Hat, Inc. Extending the kubernetes API in-process

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115904419A (zh) * 2023-03-03 2023-04-04 杭州比智科技有限公司 一种基于自动化脚本安装应用软件的方法及装置
CN115904419B (zh) * 2023-03-03 2023-05-16 杭州比智科技有限公司 一种基于自动化脚本安装应用软件的方法及装置

Also Published As

Publication number Publication date
US11789794B2 (en) 2023-10-17
US20220091583A1 (en) 2022-03-24
US20230050765A1 (en) 2023-02-16
US11513877B2 (en) 2022-11-29
EP3998529A1 (en) 2022-05-18

Similar Documents

Publication Publication Date Title
US11789794B2 (en) Updating operational technology devices using container orchestration systems
CN114253224B (zh) 将容器编排***与操作技术设备集成
CN114296405B (zh) 使用容器编排***和操作技术设备实现无服务器功能
US11846929B2 (en) Automation visualization content delivery via container orchestration systems
EP4336350A1 (en) Dynamic routing and edge orchestration for industrial automation data
EP4345621A1 (en) Systems and methods for condition-based deployment of chainable compute operations for constrained computing devices
EP4345616A1 (en) Containerized modeling of device updates or modifications via digital twins
US11947342B1 (en) Container registry and subscription service for industrial systems
US12013687B1 (en) Systems and methods for energy management of operation technology networks by an information technology network
US20240255929A1 (en) Container registry and subscription service for industrial systems
EP4354280A2 (en) Systems and methods for automatically deploying security updates in an operations technology network
US20240103475A1 (en) Chainable and nested edge for industrial automation device analytics
US20240103491A1 (en) Automation device firmware as a service via a container implementation
EP4345562A1 (en) Systems and methods for container-based data collection and analysis in an operational technology network
US20240103455A1 (en) Application driven enhancement to industrial automation device via container implementation
US20240103894A1 (en) Systems and methods managing containers in an operational technology network
US20240103494A1 (en) Systems and methods managing containers in an operational technology network
EP4343459A1 (en) Data driven digital twins for industrial automation device operation enhancement

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