Operator
目录
Overview
基于 OLM (Operator Lifecycle Manager) 框架,OperatorHub 提供了统一的界面来管理 Operators 的安装、升级及生命周期。
管理员可以通过 OperatorHub 安装和管理 Operators,实现 Kubernetes 应用的全生命周期自动化,包括创建、更新和删除。
OLM 主要由以下组件和 CRD 组成:
- OLM (olm-operator):管理 Operators 的完整生命周期,包括安装、升级和版本冲突检测。
- Catalog Operator:管理 Operator 目录并生成相应的 InstallPlans。
- CatalogSource:命名空间作用域的 CRD,管理 Operator 目录源并提供 Operator 元数据(如版本信息、管理的 CRDs)。平台提供 3 个默认 CatalogSources:system、platform 和 custom。system 中的 Operators 不会在 OperatorHub 中显示。
- ClusterServiceVersion (CSV):命名空间作用域的 CRD,描述 Operator 的特定版本,包括所需的资源、CRDs 和权限。
- Subscription:命名空间作用域的 CRD,描述订阅的 Operator、其来源、获取渠道及升级策略。
- InstallPlan:命名空间作用域的 CRD,描述实际执行的安装操作(如创建 Deployments、CRDs、RBAC)。Operator 只有在 InstallPlan 被批准后才会安装或升级。
Operator Sources
为明确 OperatorHub 中不同 Operators 的生命周期策略,平台提供了 5 种来源类型:
-
由 提供和维护,包含全生命周期管理、安全更新、技术支持及 SLA 承诺。 -
Curated
从开源社区精选,版本与社区保持一致,无代码修改或重新编译。 提供指导和安全更新,但不保证 SLA 或生命周期管理。 -
Community
由开源社区提供,定期更新以保证可安装性,但不保证功能完整性;无 SLA 或 支持。 -
Marketplace
由通过 认证的第三方厂商提供和维护。 提供平台集成支持,核心维护由厂商负责。 -
Custom
由用户开发并上传,以满足自定义使用需求。
Pre-installation Preparation
在安装 Operator 之前,需要了解以下关键参数:
Installation Mode
OLM 提供三种安装模式:
- Single Namespace
- Multi Namespace
- Cluster
推荐使用 Cluster 模式(AllNamespaces)。 平台最终将升级至 OLM v1,仅支持 AllNamespaces 安装模式,因此应尽量避免使用 SingleNamespace 和 MultiNamespace。
Update Channel
如果 Operator 提供多个更新渠道,可选择订阅的渠道,例如 stable。
Approval Strategy
选项:Automatic 或 Manual。
- Automatic:当选定渠道发布新版本时,OLM 会自动升级 Operator。
- Manual:当有新版本时,OLM 会创建升级请求,需集群管理员手动批准后才会升级。
注意: 提供的 Operators 仅支持 Manual 模式,否则安装失败。
Installation Location
建议为每个 Operator 创建独立的命名空间。
若多个 Operators 共享同一命名空间,其 Subscriptions 可能会合并为单个 InstallPlan:
- 若该命名空间中的 InstallPlan 需要 Manual 批准且处于待审批状态,可能阻塞同一 InstallPlan 中其他 Subscriptions 的自动升级。
Installing via Web Console
-
登录 Web 控制台并切换至 Administrator 视图。
-
进入 Marketplace > OperatorHub。
-
若状态为 Absent:
- 从 Customer Portal 下载 Operator 软件包,或联系支持。
- 使用
violet将软件包上传至目标集群(详见 CLI)。 - 在 Marketplace > Upload Packages 页面切换至 Operator 标签页,确认上传。
-
若状态为 Ready,点击 Install 并按照 Operator 用户指南操作。
Installing via YAML
以下示例演示了来自 (仅 Manual)和非 来源(Manual 或 Automatic)的 Operator 安装方法。
与集群插件必须始终安装在 global cluster(使用 YAML 时)不同,Operators 安装在希望运行的 目标集群 中。执行任何 YAML 清单前,请确保已连接至目标集群。
Manual
harbor-ce-operator 来自 ,仅支持 Manual 批准。
Manual 模式下,即使发布新版本,Operator 也不会自动升级,必须手动 Approve 后,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:指定 Manual 批准时安装的版本,若为空则默认安装渠道中最新版本。Automatic 模式不需此字段。
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表示成功)
Automatic
clickhouse-operator 来自非 来源,其批准策略可设置为 Automatic。
Automatic 模式下,发布新版本时 Operator 会自动升级,无需手动批准。
1. 查看可用版本
示例输出:
2. 确认 catalogSource
示例输出:
表示 clickhouse-operator 来自 platform catalogSource。
3. 创建命名空间
4. 创建 Subscription
字段说明同 Manual 模式。
5. 查看 Subscription 状态
6. 查看 CSV
示例输出:
安装成功。
Upgrade Process
升级流程从上传新的 Operator 版本开始。
上传完成后,等待约 10–15 分钟,平台同步新版本信息。
同步完成后,升级按照 Subscription 中配置的策略执行:
-
若 Operator Approval Strategy 设置为 Automatic,则自动升级。
-
若设置为 Manual,则需手动批准升级请求。可选择以下升级方式:
- 批量升级:在 平台管理 > 集群管理 > 集群 > 功能 页面执行升级。
- 单独升级:在 OperatorHub 中手动批准升级请求。
注意:仅 提供的 Operators 支持批量升级。