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