×

本指南概述了OpenShift Dedicated中操作符生命周期管理器(OLM)的组件架构。

组件职责

操作符生命周期管理器(OLM)由两个操作符组成:OLM操作符和目录操作符。

这两个操作符都负责管理作为OLM框架基础的自定义资源定义(CRD)

表1. 由OLM和目录操作符管理的CRD
资源 简称 所有者 描述

ClusterServiceVersion (CSV)

csv

OLM

应用程序元数据:名称、版本、图标、所需资源、安装等等。

InstallPlan

ip

目录

要创建的资源的计算列表,用于自动安装或升级CSV。

CatalogSource

catsrc

目录

CSV、CRD和包的存储库,用于定义应用程序。

Subscription

sub

目录

用于通过跟踪包中的通道来保持CSV最新。

OperatorGroup

og

OLM

配置部署在与OperatorGroup对象相同的命名空间中的所有操作符,以便在命名空间列表或集群范围内监视其自定义资源(CR)。

这两个操作符还负责创建以下资源

表2. 由OLM和目录操作符创建的资源
资源 所有者

部署

OLM

服务账户

(集群)角色

(集群)角色绑定

CustomResourceDefinitions (CRDs)

目录

ClusterServiceVersions

OLM操作符

在CSV中指定的所需资源存在于集群之后,OLM操作符负责部署由CSV资源定义的应用程序。

OLM操作符不关心所需资源的创建;您可以选择使用CLI或目录操作符手动创建这些资源。这种关注点的分离允许用户在他们选择利用OLM框架的程度方面逐步参与。

OLM操作符使用以下工作流程

  1. 监视命名空间中的集群服务版本(CSV),并检查是否满足要求。

  2. 如果满足要求,则运行CSV的安装策略。

    CSV必须是操作符组的活动成员才能运行安装策略。

目录操作符

目录操作符负责解析和安装集群服务版本(CSV)及其指定的所需资源。它还负责监视目录源以获取通道中包的更新,并在需要时自动将其升级到最新版本。

要跟踪通道中的包,您可以创建一个Subscription对象,配置所需的包、通道和要用于提取更新的CatalogSource对象。当找到更新时,将代表用户将相应的InstallPlan对象写入命名空间。

目录操作符使用以下工作流程

  1. 连接到集群中的每个目录源。

  2. 监视用户创建的未解析安装计划,如果发现

    1. 找到与请求的名称匹配的CSV,并将CSV添加为已解析的资源。

    2. 对于每个托管或所需的CRD,将CRD添加为已解析的资源。

    3. 对于每个所需的CRD,找到管理它的CSV。

  3. 监视已解析的安装计划,并在用户批准或自动批准的情况下为其创建所有已发现的资源。

  4. 监视目录源和订阅,并根据它们创建安装计划。

目录注册表

目录注册表存储用于在集群中创建的CSV和CRD,并存储有关包和通道的元数据。

包清单是目录注册表中的一个条目,它将包标识与CSV集相关联。在一个包中,通道指向特定的CSV。由于CSV明确地引用了它们替换的CSV,因此包清单为目录操作符提供了更新通道中CSV到最新版本所需的所有信息,逐步遍历每个中间版本。