本指南概述了 Operator 生命周期管理器 (OLM) 中的多租户和运算符共同部署。
Operator 生命周期管理器 (OLM) 处理安装在同一命名空间中的 OLM 管理的运算符,这意味着它们的 `Subscription` 资源与相关运算符共同部署在同一命名空间中。即使它们实际上并不相关,OLM 也会在其中任何一个更新时考虑它们的状态,例如它们的版本和更新策略。
此默认行为体现在以下两种方式中:
挂起更新的 `InstallPlan` 资源包括同一命名空间中所有其他运算符的 `ClusterServiceVersion` (CSV) 资源。
同一命名空间中的所有运算符共享相同的更新策略。例如,如果一个运算符设置为手动更新,则所有其他运算符的更新策略也设置为手动。
这些情况可能导致以下问题:
难以推断运算符更新的安装计划,因为其中定义的资源比仅更新的运算符多得多。
无法使命名空间中的一些运算符自动更新,而其他运算符手动更新,这是集群管理员的常见需求。
这些问题通常是因为,当使用 OpenShift Dedicated Web 控制台安装运算符时,默认行为会将支持 **所有命名空间** 安装模式的运算符安装到默认的 `openshift-operators` 全局命名空间中。
作为具有 `dedicated-admin` 角色的管理员,您可以使用以下工作流程手动绕过此默认行为:
创建一个用于安装运算符的项目。
创建一个自定义的 *全局运算符组*,这是一个监视所有命名空间的运算符组。通过将此运算符组与您刚刚创建的命名空间关联,它使安装命名空间成为全局命名空间,从而使在那里安装的运算符在所有命名空间中可用。
在安装命名空间中安装所需的运算符。
如果运算符具有依赖项,则这些依赖项会自动安装在预先创建的命名空间中。因此,依赖运算符具有相同的更新策略和共享安装计划是有效的。有关详细过程,请参阅“在自定义命名空间中安装全局运算符”。