Operator
目录
概述
基于 OLM (Operator Lifecycle Manager) 框架,OperatorHub 提供了统一的界面,用于管理 Operators 的安装、升级及生命周期。 管理员可以通过 OperatorHub 安装和管理 Operators,实现 Kubernetes 应用的全生命周期自动化,包括创建、更新和删除。
OLM 主要由以下组件和 CRD 组成:
- OLM (olm-operator):管理 Operators 的完整生命周期,包括安装、升级和版本冲突检测。
- Catalog Operator:管理 Operator 目录并生成相应的 InstallPlans。
- CatalogSource:一个命名空间范围的 CRD,管理 Operator 目录源并提供 Operator 元数据(如版本信息、管理的 CRD)。平台提供 3 个默认 CatalogSources:system、platform 和 custom。system 中的 Operators 不会在 OperatorHub 中显示。
- ClusterServiceVersion (CSV):一个命名空间范围的 CRD,描述 Operator 的特定版本,包括其所需的资源、CRD 和权限。
- Subscription:一个命名空间范围的 CRD,描述订阅的 Operator、其来源、获取渠道及升级策略。
- InstallPlan:一个命名空间范围的 CRD,描述实际执行的安装操作(如创建 Deployment、CRD、RBAC)。Operator 只有在 InstallPlan 被批准后才会安装或升级。
Operator 来源
为明确 OperatorHub 中不同 Operators 的生命周期策略,平台提供了 5 种来源类型:
-
由 提供和维护,包含完整的生命周期管理、安全更新、技术支持和 SLA 承诺。
-
Curated 从开源社区精选,版本与社区保持一致,无代码修改或重新编译。 提供指导和安全更新,但不保证 SLA 或生命周期管理。
-
Community 由开源社区提供,定期更新以保证可安装性,但不保证功能完整性;不提供 SLA 或 支持。
-
Marketplace 由经过 认证的第三方厂商提供和维护。 提供平台集成支持,核心维护由厂商负责。
-
Custom 由用户自行开发并上传,以满足自定义使用需求。
安装前准备
安装 Operator 前,需要了解以下关键参数:
安装模式
OLM 提供三种安装模式:
- 单命名空间
- 多命名空间
- 集群级
推荐使用集群级模式(AllNamespaces)。 平台最终将升级至 OLM v1,仅支持 AllNamespaces 安装模式,因此应尽量避免使用 SingleNamespace 和 MultiNamespace。
更新渠道
如果 Operator 提供多个更新渠道,可选择订阅的渠道,如 stable。
审批策略
选项:自动 或 手动。
- 自动:当所选渠道发布新版本时,OLM 会自动升级 Operator。
- 手动:当有新版本时,OLM 会创建升级请求,需集群管理员手动批准后才会升级。
注意:来自 的 Operators 仅支持 手动 模式,否则安装失败。
安装位置
建议为每个 Operator 创建独立的命名空间。
若多个 Operators 共享同一命名空间,其 Subscriptions 可能会合并为单个 InstallPlan:
- 若该命名空间中的 InstallPlan 需要手动审批且处于待审批状态,可能阻塞同一 InstallPlan 中其他 Subscriptions 的自动升级。
通过 Web 控制台安装
-
登录 Web 控制台并切换至 管理员 视图。
-
进入 Marketplace > OperatorHub。
-
若状态为 Absent:
- 从 Customer Portal 下载 Operator 包,或联系支持。
- 使用
violet将包上传至目标集群(详见 CLI)。 - 在 Marketplace > Upload Packages 页面切换至 Operator 标签页,确认上传。
-
若状态为 Ready,点击 Install 并按照 Operator 用户指南操作。
通过 YAML 安装
以下示例展示了来自 (仅支持手动)和非 来源(支持手动或自动)的 Operator 安装方法。
与集群插件(使用 YAML 时必须安装在 global cluster)不同,Operator 安装在希望运行的 目标集群 中。执行 YAML 清单前,请确保已连接至目标集群。
手动模式
harbor-ce-operator 来自 ,仅支持 手动 审批。
手动模式下,即使发布新版本,Operator 也不会自动升级,必须先手动 批准,OLM 才会执行升级。
1. 查看可用版本
示例输出:
字段说明:
- CHANNEL:Operator 渠道名称
- NAME:CSV 资源名称
- VERSION:Operator 版本
2. 确认 catalogSource
示例输出:
表示 harbor-ce-operator 来自 platform catalogSource。
3. 创建命名空间
4. 创建 Subscription
字段说明:
- annotation
cpaas.io/target-namespaces:建议设置为空,空表示集群范围安装。 - .metadata.name:Subscription 名称(符合 DNS 规范,最长 253 字符)。
- .metadata.namespace:Operator 安装的命名空间。
- .spec.channel:订阅的 Operator 渠道。
- .spec.installPlanApproval:审批策略(
Manual或Automatic),此处为Manual,需手动审批安装/升级。 - .spec.source:Operator catalogSource。
- .spec.sourceNamespace:必须设置为 cpaas-system,因平台提供的所有 catalogSources 均位于该命名空间。
- .spec.startingCSV:指定安装的版本(手动审批时必填),为空则默认安装渠道中最新版本。自动审批时可不填。
5. 查看 Subscription 状态
关键输出:
- .status.state:
UpgradePending表示 Operator 正等待安装或升级。 - Condition InstallPlanPending = True:等待手动审批。
- .status.currentCSV:当前订阅的最新 CSV。
- .status.installPlanRef:关联的 InstallPlan,必须批准后才会执行安装。
6. 批准 InstallPlan
示例输出:
手动批准:
等待 CSV 创建,Phase 变为 Succeeded:
示例输出:
字段说明:
- NAME:已安装的 CSV 名称
- DISPLAY:Operator 显示名称
- VERSION:Operator 版本
- REPLACES:升级时被替换的 CSV
- PHASE:安装状态(
Succeeded表示成功)
自动模式
clickhouse-operator 来自非 来源,审批策略可设置为 自动。
自动模式下,发布新版本时 Operator 会自动升级,无需手动审批。
1. 查看可用版本
示例输出:
2. 确认 catalogSource
示例输出:
表示 clickhouse-operator 来自 platform catalogSource。
3. 创建命名空间
4. 创建 Subscription
字段说明同手动模式。
5. 查看 Subscription 状态
6. 验证 CSV
示例输出:
安装成功。
升级流程
升级流程从上传新的 Operator 版本开始。
上传完成后,等待约 10–15 分钟,平台同步新版本信息。
同步完成后,升级遵循 Subscription 中配置的策略:
-
若 Operator 审批策略 为 自动,则自动升级。
-
若为 手动,则需手动批准升级请求。可选择以下升级方式:
- 批量升级:在 平台管理 > 集群管理 > 集群 > 功能 页面执行升级。
- 单独升级:在 OperatorHub 中手动批准升级请求。
注意:仅 提供的 Operators 支持批量升级。