10.4. 在集群中添加目录源


将目录源添加到 OpenShift Container Platform 集群可为用户发现和安装 Operator。集群管理员可以创建一个 CatalogSource 对象来引用索引镜像。OperatorHub 使用目录源来填充用户界面。

提示

或者,您可以使用 Web 控制台管理目录源。在 Administration Cluster Settings Configuration OperatorHub 页面中,点 Sources 选项卡,您可以在其中创建、更新、删除、禁用和启用单独的源。

先决条件

  • 构建并推送索引镜像到 registry。
  • 您可以使用具有 cluster-admin 角色的用户访问集群。

流程

  1. 创建一个 CatalogSource 对象来引用索引镜像。如果使用 oc adm catalog mirror 命令将目录镜像到目标 registry,您可以使用 manifests 目录中生成的 catalogSource.yaml 文件作为起点。

    1. 根据您的规格修改以下内容,并将它保存为 catalogSource.yaml 文件:

      apiVersion: operators.coreos.com/v1alpha1
      kind: CatalogSource
      metadata:
        name: my-operator-catalog 
      1
      
        namespace: openshift-marketplace 
      2
      
      spec:
        sourceType: grpc
        grpcPodConfig:
          securityContextConfig: <security_mode> 
      3
      
        image: <registry>/<namespace>/redhat-operator-index:v4.19 
      4
      
        displayName: My Operator Catalog
        publisher: <publisher_name> 
      5
      
        updateStrategy:
          registryPoll: 
      6
      
            interval: 30m
      1
      如果您在上传到 registry 前将内容镜像到本地文件,请从 metadata.name 字段中删除任何反斜杠(/)字符,以避免在创建对象时出现 "invalid resource name" 错误。
      2
      如果您希望目录源对所有命名空间中的用户全局可用,请指定 openshift-marketplace 命名空间。否则,您可以指定一个不同的命名空间来对目录进行作用域并只对该命名空间可用。
      3
      指定 legacyrestricted 的值。如果没有设置该字段,则默认值为 legacy。在以后的 OpenShift Container Platform 发行版本中,计划默认值为 restricted
      注意

      如果您的目录无法使用 restricted 权限运行,建议您手动将此字段设置为 legacy

      4
      指定索引镜像。如果您在镜像名称后指定了标签,如 :v4.19,则目录源 Pod 会使用镜像 pull 策略 Always,这意味着 pod 始终在启动容器前拉取镜像。如果您指定了摘要,如 @sha256:<id>,则镜像拉取策略为 IfNotPresent,这意味着仅在节点上不存在的镜像时才拉取镜像。
      5
      指定发布目录的名称或机构名称。
      6
      目录源可以自动检查新版本以保持最新。
    2. 使用该文件创建 CatalogSource 对象:

      $ oc apply -f catalogSource.yaml
  2. 确定成功创建以下资源。

    1. 检查 pod:

      $ oc get pods -n openshift-marketplace

      输出示例

      NAME                                    READY   STATUS    RESTARTS  AGE
      my-operator-catalog-6njx6               1/1     Running   0         28s
      marketplace-operator-d9f549946-96sgr    1/1     Running   0         26h

    2. 检查目录源:

      $ oc get catalogsource -n openshift-marketplace

      输出示例

      NAME                  DISPLAY               TYPE PUBLISHER  AGE
      my-operator-catalog   My Operator Catalog   grpc            5s

    3. 检查软件包清单:

      $ oc get packagemanifest -n openshift-marketplace

      输出示例

      NAME                          CATALOG               AGE
      jaeger-product                My Operator Catalog   93s

现在,您可以在 OpenShift Container Platform Web 控制台中通过 OperatorHub 安装 Operator。

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部