$ oc get csvs -n openshift
Operator Lifecycle Manager (OLM) 控制器由名为 `cluster` 的 `OLMConfig` 自定义资源 (CR) 配置。集群管理员可以修改此资源以启用或禁用某些功能。
本文档概述了当前由 OLM 支持并由 `OLMConfig` 资源配置的功能。
当 Operator 由 Operator Lifecycle Manager (OLM) 安装时,默认情况下会在 Operator 配置为监视的每个命名空间中创建其集群服务版本 (CSV) 的简化副本。这些 CSV 称为 *复制的 CSV*,它们向用户传达哪些控制器正在积极协调给定命名空间中的资源事件。
当 Operator 配置为使用 `AllNamespaces` 安装模式(相对于针对单个或指定的命名空间集)时,会在集群的每个命名空间中为 Operator 创建一个复制的 CSV。在特别大的集群中,命名空间和已安装的 Operator 可能达到数百或数千个,复制的 CSV 会消耗大量资源,例如 OLM 的内存使用量、集群 etcd 限制和网络。
为了支持这些更大的集群,集群管理员可以全局禁用使用 `AllNamespaces` 模式安装的 Operator 的复制的 CSV。
如果禁用复制的 CSV,则以 `AllNamespaces` 模式安装的 Operator 的 CSV 只会复制到 `openshift` 命名空间,而不是集群的每个命名空间。在禁用了复制的 CSV 的模式下,Web 控制台和 CLI 的行为有所不同。
|
编辑名为 `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,并删除前面提到的事件。