4.3. 管理目录


集群管理员可向其集群添加 目录、或策展 Operator 和 Kubernetes 扩展集合。Operator 作者将其产品发布到这些目录中。当您向集群添加目录时,您可以访问发布到目录中的 Operator 和扩展的版本、补丁和无线更新。

您可以使用自定义资源 (CR) 从 CLI 中声明性管理目录和扩展。

基于文件的目录是 Operator Lifecycle Manager (OLM) 中目录格式的最新迭代。它是基于纯文本(JSON 或 YAML)和早期 SQLite 数据库格式的声明式配置演变,并且完全向后兼容。

重要

Kubernetes 定期弃用后续版本中删除的某些 API。因此,从使用删除 API 的 Kubernetes 版本的 OpenShift Container Platform 版本开始,Operator 无法使用删除 API 的 API。

4.3.1. 关于 OLM v1 中的目录

您可以使用 catalogd 组件查询 Kubernetes 扩展的目录,如 Operator 和控制器,从而发现可安装的内容。Catalogd 是一个 Kubernetes 扩展,为集群客户端解包目录内容,并是微服务的 Operator Lifecycle Manager (OLM) v1 套件的一部分。目前,catalogd 解包要打包并分发为容器镜像的目录内容。

4.3.2. OLM v1 中红帽提供的 Operator 目录

Operator Lifecycle Manager (OLM) v1 默认在集群上包含以下红帽提供的 Operator 目录。如果要在集群中添加额外目录,请为目录创建一个自定义资源(CR)并将其应用到集群。以下自定义资源(CR)示例显示了集群中安装的默认目录。

Red Hat Operator 目录

apiVersion: olm.operatorframework.io/v1
kind: ClusterCatalog
metadata:
  name: openshift-redhat-operators
spec:
  priority: -100
  source:
    image:
      pollIntervalMinutes: <poll_interval_duration> 
1

      ref: registry.redhat.io/redhat/redhat-operator-index:v4.19
    type: Image
Copy to Clipboard Toggle word wrap

1
指定轮询远程 registry 以获取较新的镜像摘要的时间间隔(以分钟为单位)。要禁用轮询,不要设置字段。

认证的 Operator 目录

apiVersion: olm.operatorframework.io/v1
kind: ClusterCatalog
metadata:
  name: openshift-certified-operators
spec:
priority: -200
  source:
    type: image
    image:
      pollIntervalMinutes: 10
      ref: registry.redhat.io/redhat/certified-operator-index:v4.19
    type: Image
Copy to Clipboard Toggle word wrap

Red Hat Marketplace 目录

apiVersion: olm.operatorframework.io/v1
kind: ClusterCatalog
metadata:
  name: openshift-redhat-marketplace
spec:
  priority: -300
  source:
    image:
      pollIntervalMinutes: 10
      ref: registry.redhat.io/redhat/redhat-marketplace-index:v4.19
    type: Image
Copy to Clipboard Toggle word wrap

社区 Operator 目录

apiVersion: olm.operatorframework.io/v1
kind: ClusterCatalog
metadata:
  name: openshift-community-operators
spec:
  priority: -400
  source:
    image:
      pollIntervalMinutes: 10
      ref: registry.redhat.io/redhat/community-operator-index:v4.19
    type: Image
Copy to Clipboard Toggle word wrap

以下命令在集群中添加目录:

命令语法

$ oc apply -f <catalog_name>.yaml 
1
Copy to Clipboard Toggle word wrap

1
指定目录 CR,如 my-catalog.yaml

4.3.3. 在集群中添加目录

要将目录添加到用于 Operator Lifecycle Manager (OLM) v1 使用量的集群,请创建一个 ClusterCatalog 自定义资源(CR)并将其应用到集群。

流程

  1. 创建目录自定义资源(CR),如下例所示:

    my-redhat-operators.yaml 文件示例

    apiVersion: olm.operatorframework.io/v1
    kind: ClusterCatalog
    metadata:
      name: my-redhat-operators 
    1
    
    spec:
      priority: 1000 
    2
    
      source:
        image:
          pollIntervalMinutes: 10 
    3
    
          ref: registry.redhat.io/redhat/community-operator-index:v4.19 
    4
    
        type: Image
    Copy to Clipboard Toggle word wrap

    1
    当目录应用到集群时,该目录会使用 metadata.name 字段的值自动标记。有关标签和目录选择的更多信息,请参阅"目录内容解析"。
    2
    可选:指定与集群中的其他目录相关的目录优先级。如需更多信息,请参阅"按优先级选择目录"。
    3
    指定轮询远程 registry 以获取较新的镜像摘要的时间间隔(以分钟为单位)。要禁用轮询,不要设置字段。
    4
    spec.source.image.ref 字段中指定目录镜像。
  2. 运行以下命令在集群中添加目录:

    $ oc apply -f my-redhat-operators.yaml
    Copy to Clipboard Toggle word wrap

    输出示例

    clustercatalog.olm.operatorframework.io/my-redhat-operators created
    Copy to Clipboard Toggle word wrap

验证

  • 运行以下命令以验证目录的状态:

    1. 运行以下命令检查目录是否可用:

      $ oc get clustercatalog
      Copy to Clipboard Toggle word wrap

      输出示例

      NAME                            LASTUNPACKED   SERVING   AGE
      my-redhat-operators             55s            True      64s
      openshift-certified-operators   83m            True      84m
      openshift-community-operators   43m            True      84m
      openshift-redhat-marketplace    83m            True      84m
      openshift-redhat-operators      54m            True      84m
      Copy to Clipboard Toggle word wrap

    2. 运行以下命令,检查目录的状态:

      $ oc describe clustercatalog my-redhat-operators
      Copy to Clipboard Toggle word wrap

      输出示例

      Name:         my-redhat-operators
      Namespace:
      Labels:       olm.operatorframework.io/metadata.name=my-redhat-operators
      Annotations:  <none>
      API Version:  olm.operatorframework.io/v1
      Kind:         ClusterCatalog
      Metadata:
        Creation Timestamp:  2025-02-18T20:28:50Z
        Finalizers:
          olm.operatorframework.io/delete-server-cache
        Generation:        1
        Resource Version:  50248
        UID:               86adf94f-d2a8-4e70-895b-31139f2eeab7
      Spec:
        Availability Mode:  Available
        Priority:           1000
        Source:
          Image:
            Poll Interval Minutes:  10
            Ref:                    registry.redhat.io/redhat/community-operator-index:v4.19
          Type:                     Image
      Status: 
      1
      
        Conditions:
          Last Transition Time:  2025-02-18T20:29:00Z
          Message:               Successfully unpacked and stored content from resolved source
          Observed Generation:   1
          Reason:                Succeeded 
      2
      
          Status:                True
          Type:                  Progressing
          Last Transition Time:  2025-02-18T20:29:00Z
          Message:               Serving desired content from resolved source
          Observed Generation:   1
          Reason:                Available
          Status:                True
          Type:                  Serving
        Last Unpacked:           2025-02-18T20:28:59Z
        Resolved Source:
          Image:
            Ref:  registry.redhat.io/redhat/community-operator-index@sha256:11627ea6fdd06b8092df815076e03cae9b7cede8b353c0b461328842d02896c5 
      3
      
          Type:   Image
        Urls:
          Base:  https://catalogd-service.openshift-catalogd.svc/catalogs/my-redhat-operators
      Events:    <none>
      Copy to Clipboard Toggle word wrap

      1
      描述目录的状态。
      2
      显示目录处于当前状态的原因。
      3
      显示目录的镜像引用。

4.3.4. 删除目录

您可以通过删除其自定义资源 (CR) 来删除目录。

先决条件

  • 已安装目录。

流程

  • 运行以下命令来删除目录:

    $ oc delete clustercatalog <catalog_name>
    Copy to Clipboard Toggle word wrap

    输出示例

    clustercatalog.olm.operatorframework.io "my-redhat-operators" deleted
    Copy to Clipboard Toggle word wrap

验证

  • 运行以下命令验证目录是否已删除:

    $ oc get clustercatalog
    Copy to Clipboard Toggle word wrap

4.3.5. 禁用默认目录

您可以禁用 OpenShift Container Platform 中包含的红帽提供的目录。

流程

  • 运行以下命令来禁用默认目录:

    $ oc patch clustercatalog openshift-certified-operators -p \
      '{"spec": {"availabilityMode": "Unavailable"}}' --type=merge
    Copy to Clipboard Toggle word wrap

    输出示例

    clustercatalog.olm.operatorframework.io/openshift-certified-operators patched
    Copy to Clipboard Toggle word wrap

验证

  • 运行以下命令验证目录是否已禁用:

    $ oc get clustercatalog openshift-certified-operators
    Copy to Clipboard Toggle word wrap

    输出示例

    NAME                            LASTUNPACKED   SERVING   AGE
    openshift-certified-operators                  False     6h54m
    Copy to Clipboard Toggle word wrap

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat