4.11. 目录源 pod 调度

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

  • 只有 kubernetes.io/os=linux 节点选择器
  • 没有优先级类名称
  • 没有容限

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

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

先决条件

  • 源类型的 CatalogSource 对象 定义了 spec.image

流程

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

      grpcPodConfig:
        nodeSelector:
          custom_label: <label>

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

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

先决条件

  • 源类型的 CatalogSource 对象 定义了 spec.image

流程

  • 编辑 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: namespace: openshift-marketplace
  annotations:
    operatorframework.io/priorityclass: system-cluster-critical

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

其他资源

4.11.3. 覆盖目录源 pod 的容限

先决条件

  • 源类型的 CatalogSource 对象 定义了 spec.image

流程

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

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

其他资源