2.2. Operator 控制器


Operator Controller 是 Operator Lifecycle Manager (OLM) v1 的中央组件,它消耗其他 OLM v1 组件 catalogd。它使用一个 API 扩展 Kubernetes,用户可以安装 Operator 和扩展。

2.2.1. ClusterExtension API

要在 OLM v1 中管理已安装的扩展,请使用 ClusterExtension API。此合并的 API 通过将多个 OLM (Classic)对象替换为单一集群范围的资源来简化扩展管理。

重要

在 OLM v1 中,ClusterExtension 对象是集群范围的。这与 OLM (Classic)不同,Operator 可以是命名空间范围的或集群范围的。在 OLM (Classic)中,范围取决于相关 SubscriptionOperatorGroup 对象的配置。

有关 OLM (Classic)行为的更多信息,请参阅 多租户和 Operator colocation

ClusterExtension 对象示例

apiVersion: olm.operatorframework.io/v1
kind: ClusterExtension
metadata:
  name: <extension_name>
spec:
  namespace: <namespace_name>
  config:
    configType: Inline
    inline:
      watchNamespace: <namespace_name>
  serviceAccount:
    name: <service_account_name>
  source:
    sourceType: Catalog
    catalog:
      packageName: <package_name>
      channels:
        - <channel>
      version: "<version>"

config
如果扩展支持监视特定命名空间,请使用此字段配置扩展行为。如需更多信息,请参阅"扩展配置"。

2.2.1.1. 指定目标版本的自定义资源(CR)示例

在 Operator Lifecycle Manager (OLM) v1 中,集群管理员可以在自定义资源(CR)中声明性地设置 Operator 或扩展的目标版本。

您可以通过指定以下字段来定义目标版本:

  • Channel
  • 版本号
  • 版本范围

如果您在 CR 中指定频道,OLM v1 会安装可在指定频道中解析的 Operator 或扩展的最新版本。当向指定的频道发布更新时,OLM v1 会自动更新至可以从频道解析的最新发行版本。

带有指定频道的 CR 示例

apiVersion: olm.operatorframework.io/v1
  kind: ClusterExtension
  metadata:
    name: <clusterextension_name>
  spec:
    namespace: <installed_namespace>
    serviceAccount:
      name: <service_account_installer_name>
    source:
      sourceType: Catalog
      catalog:
        packageName: <package_name>
        channels:
          - latest 
1

1
可选:安装可从指定频道解析的最新版本。对频道的更新会自动安装。指定 channels 参数的值(数组)。

如果在 CR 中指定 Operator 或扩展的目标版本,OLM v1 将安装指定的版本。当在 CR 中指定目标版本时,OLM v1 在向目录发布更新时不会更改目标版本。

如果要更新集群中安装的 Operator 版本,您必须手动编辑 Operator 的 CR。指定 Operator 的目标版本将 Operator 的版本固定到指定的发行版本。

指定了目标版本的 CR 示例

apiVersion: olm.operatorframework.io/v1
  kind: ClusterExtension
  metadata:
    name: <clusterextension_name>
  spec:
    namespace: <installed_namespace>
    serviceAccount:
      name: <service_account_installer_name>
    source:
      sourceType: Catalog
      catalog:
        packageName: <package_name>
        version: "1.11.1" 
1

1
可选:指定目标版本。如果要更新安装的 Operator 或扩展版本,您必须手动将 CR 更新至所需的目标版本。

如果要为 Operator 或扩展定义可接受的版本范围,您可以使用比较字符串指定版本范围。当您指定版本范围时,OLM v1 会安装可由 Operator Controller 解析的 Operator 或扩展的最新版本。

指定了版本范围的 CR 示例

apiVersion: olm.operatorframework.io/v1
  kind: ClusterExtension
  metadata:
    name: <clusterextension_name>
  spec:
    namespace: <installed_namespace>
    serviceAccount:
      name: <service_account_installer_name>
    source:
      sourceType: Catalog
      catalog:
        packageName: <package_name>
        version: ">1.11.1" 
1

1
可选:指定所需版本范围是否大于 1.11.1。如需更多信息,请参阅"支持版本范围"。

创建或更新 CR 后,运行以下命令来应用配置文件:

命令语法

$ oc apply -f <extension_name>.yaml

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部