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-critical
或system-node-critical
-
用于分配默认优先级的空集合 (
""
) - 预先存在的和自定义优先级类
-
Kubernetes 提供的默认优先级类之一:
在以前的版本中,唯一可以被覆盖的 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>"