Operator
目录
OverviewOperator SourcesPre-installation PreparationInstallation ModeUpdate ChannelApproval StrategyInstallation LocationInstalling via Web ConsoleInstalling via YAMLManual1. 查看可用版本2. 确认 catalogSource3. 创建命名空间4. 创建 Subscription5. 查看 Subscription 状态6. 批准 InstallPlanAutomatic1. 查看可用版本2. 确认 catalogSource3. 创建命名空间4. 创建 Subscription5. 查看 Subscription 状态6. 查看 CSVUpgrade ProcessOverview
基于 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 支持批量升级。