4.4. 配置 Operator Lifecycle Manager 功能
Operator Lifecycle Manager(OLM)控制器由名为 cluster
的 OLMConfig
自定义资源(CR)进行配置。集群管理员可以修改此资源以启用或禁用某些功能。
本文档概述了由 OLMConfig
资源配置的 OLM 当前支持的功能。
4.4.1. 禁用复制的 CSV
当 Operator Lifecycle Manager (OLM) 安装 Operator 时,默认情况下会在 Operator 配置为监视的每个命名空间中创建其集群服务版本 (CSV) 的简化副本。这些 CSV 称为 复制的 CSV,并告知用户控制器在给定命名空间中主动协调资源事件。
当 Operator 配置为使用 AllNamespaces
安装模式时,与将单个或指定命名空间集为目标时,会在集群中的每个命名空间中创建 Operator 的复制的 CSV。在大型集群中,带有命名空间和安装的 Operator 可能存在于数百个或数千种 CSV 中,复制的 CSV 消耗大量资源,如 OLM 的内存用量、集群 etcd 限值和网络带宽。
为了支持这些较大的集群,集群管理员可以为使用 AllNamespaces
模式全局安装的 Operator 禁用复制的 CSV。
如果您禁用复制的 CSV,则在 AllNamespaces
模式中安装的 Operator 只将其 CSV 复制到 openshift
命名空间,而不是集群中的每个命名空间。在禁用复制的 CSV 模式中,Web 控制台和 CLI 的行为有所不同:
-
在 web 控制台中,默认行为会被修改为显示每个命名空间中的
openshift
命名空间中复制的 CSV,即使 CSV 不会实际复制到每个命名空间中。这允许常规用户仍可在其命名空间中查看这些 Operator 的详情,并创建相关的自定义资源 (CR)。 在 OpenShift CLI (
oc
) 中,常规用户可以使用oc get csvs
命令查看直接安装在其命名空间中的 Operator,但openshift
命名空间中的复制的 CSV 无法在其命名空间中可见。受此限制影响的 Operator 仍然可用,并继续协调用户命名空间中的事件。要查看安装的全局 Operator 的完整列表,类似于 Web 控制台行为,所有经过身份验证的用户都可以运行以下命令:
$ oc get csvs -n openshift
流程
编辑名为
cluster
的OLMConfig
对象,将spec.features.disableCopiedCSVs
字段设置为true
:$ oc apply -f - <<EOF apiVersion: operators.coreos.com/v1 kind: OLMConfig metadata: name: cluster spec: features: disableCopiedCSVs: true 1 EOF
- 1
- 为
AllNamespaces
安装模式 Operator 禁用复制的 CSV
验证
当禁用复制的 CSV 时,OLM 会在 Operator 命名空间中捕获这些信息:
$ oc get events
输出示例
LAST SEEN TYPE REASON OBJECT MESSAGE 85s Warning DisabledCopiedCSVs clusterserviceversion/my-csv.v1.0.0 CSV copying disabled for operators/my-csv.v1.0.0
当
spec.features.disableCopiedCSVs
字段缺失或设置为false
时,OLM 会为使用AllNamespaces
模式安装的所有 Operator 重新创建复制的 CSV,并删除前面提到的事件。
其他资源