4.8. 目录源 pod 调度


当源类型 grpc 的 Operator Lifecycle Manager (OLM) 目录源定义 spec.image 时,Catalog Operator 会创建一个提供定义的镜像内容的 pod。默认情况下,此 pod 在规格中定义以下内容:

  • 只有 kubernetes.io/os=linux 节点选择器。
  • 默认优先级类名称:system-cluster-critical
  • 没有容限。

作为管理员,您可以通过修改 CatalogSource 对象的可选 spec.grpcPodConfig 部分中的字段来覆盖这些值。

重要

Marketplace Operator openshift-marketplace 负责管理默认的 OperatorHub 自定义资源 (CR)。此 CR 管理 CatalogSource 对象。如果您试图修改 CatalogSource 对象的 spec.grpcPodConfig 部分中的字段,则 Marketplace Operator 会自动恢复这些修改。默认情况下,如果您修改了 CatalogSource 对象的 spec.grpcPodConfig 部分中的字段,则 Marketplace Operator 会自动恢复这些更改。

要将持久性更改应用到 CatalogSource 对象,您必须首先禁用一个默认的 CatalogSource 对象。

4.8.1. 在本地级别禁用默认 CatalogSource 对象

您可以通过禁用默认的 CatalogSource 对象,对 CatalogSource 对象(如目录源 pod)应用到本地级别。当默认 CatalogSource 对象的配置不符合您的机构需求时,请考虑默认配置。默认情况下,如果您修改 CatalogSource 对象的 spec.grpcPodConfig 部分中的字段,Marketplace Operator 会自动恢复这些更改。

Marketplace Operator openshift-marketplace 负责管理 OperatorHub 的默认自定义资源 (CR)。OperatorHub 管理 CatalogSource 对象。

要将持久性更改应用到 CatalogSource 对象,您必须首先禁用一个默认的 CatalogSource 对象。

流程

  • 要在本地级别禁用所有默认 CatalogSource 对象,请输入以下命令:

    $ oc patch operatorhub cluster -p '{"spec": {"disableAllDefaultSources": true}}' --type=merge
    注意

    您还可以将默认 OperatorHub CR 配置为禁用所有 CatalogSource 对象或禁用特定对象。

4.8.2. 覆盖目录源 pod 的节点选择器

先决条件

  • 源类型的 CatalogSource 对象 定义了 spec.image
  • 您可以使用具有 dedicated-admin 角色的用户访问集群。

流程

  • 编辑 CatalogSource 对象并添加或修改 spec.grpcPodConfig 部分,使其包含以下内容:

      grpcPodConfig:
        nodeSelector:
          custom_label: <label>

    其中 <label> 是您希望目录源 pod 用于调度的节点选择器的标签。

4.8.3. 覆盖目录源 pod 的优先级类名称

先决条件

  • 源类型的 CatalogSource 对象 定义了 spec.image
  • 您可以使用具有 dedicated-admin 角色的用户访问集群。

流程

  • 编辑 CatalogSource 对象并添加或修改 spec.grpcPodConfig 部分,使其包含以下内容:

      grpcPodConfig:
        priorityClassName: <priority_class>

    其中 <priority_class> 是以下之一:

    • Kubernetes 提供的默认优先级类之一:system-cluster-criticalsystem-node-critical
    • 用于分配默认优先级的空集合 ("")
    • 预先存在的和自定义优先级类
注意

在以前的版本中,唯一可以被覆盖的 pod 调度参数是 priorityClassName。这可以通过将 operatorframework.io/priorityclass 注解添加到 CatalogSource 对象来实现。例如:

apiVersion: operators.coreos.com/v1alpha1
kind: CatalogSource
metadata:
  name: example-catalog
  namespace: openshift-marketplace
  annotations:
    operatorframework.io/priorityclass: system-cluster-critical

如果 CatalogSource 对象同时定义了注解和 spec.grpcPodConfig.priorityClassName,注解优先于配置参数。

其他资源

4.8.4. 覆盖目录源 pod 的容限

先决条件

  • 源类型的 CatalogSource 对象 定义了 spec.image
  • 您可以使用具有 dedicated-admin 角色的用户访问集群。

流程

  • 编辑 CatalogSource 对象并添加或修改 spec.grpcPodConfig 部分,使其包含以下内容:

      grpcPodConfig:
        tolerations:
          - key: "<key_name>"
            operator: "<operator_type>"
            value: "<value>"
            effect: "<effect>"
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.