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 提供了统一的界面,用于管理 Operator 的安装、升级和生命周期。管理员可以使用 OperatorHub 安装和管理 Operators,实现 Kubernetes 应用的全生命周期自动化,包括创建、更新和删除。
OLM 主要由以下组件和 CRD 组成:
- OLM (olm-operator):管理 Operator 的完整生命周期,包括安装、升级和版本冲突检测。
- Catalog Operator:管理 Operator 目录并生成相应的 InstallPlans。
- CatalogSource:一个命名空间作用域的 CRD,管理 Operator 目录源并提供 Operator 元数据(如版本信息、管理的 CRD)。平台提供 3 个默认 CatalogSource:system、platform 和 custom。system 中的 Operators 不会在 OperatorHub 中显示。
- ClusterServiceVersion (CSV):一个命名空间作用域的 CRD,描述 Operator 的特定版本,包括其所需的资源、CRD 和权限。
- Subscription:一个命名空间作用域的 CRD,描述订阅的 Operator、其来源、获取渠道和升级策略。
- InstallPlan:一个命名空间作用域的 CRD,描述实际要执行的安装操作(如创建 Deployment、CRD、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)。 平台最终将升级到只支持 AllNamespaces 安装模式的 OLM v1,因此应尽量避免使用 SingleNamespace 和 MultiNamespace。
Update Channel
如果 Operator 提供多个更新渠道,可以选择订阅的渠道,例如 stable。
Approval Strategy
选项:Automatic 或 Manual。
- Automatic:当选定渠道发布新版本时,OLM 会自动升级 Operator。
- Manual:当有新版本时,OLM 会创建升级请求,需集群管理员手动批准后才会升级。
注意:来自 的 Operators 仅支持 Manual 模式,否则安装会失败。
Installation Location
建议为每个 Operator 创建独立的命名空间。
如果多个 Operators 共享同一命名空间,它们的 Subscription 可能会被合并为单个 InstallPlan:
- 如果该命名空间中的某个 InstallPlan 需要手动批准且处于待定状态,可能会阻塞同一 InstallPlan 中其他 Subscription 的自动升级。
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 时)不同,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
示例输出:
安装成功。
Upgrade Process
升级流程从上传新的 Operator 版本开始。
上传完成后,等待约 10–15 分钟,平台同步新版本信息。
同步完成后,升级遵循 Subscription 中配置的策略:
-
如果 Operator Approval Strategy 设置为 Automatic,则自动升级。
-
如果设置为 Manual,则需手动批准升级请求。可选择以下升级方式:
- 批量升级:在 平台管理 > 集群管理 > 集群 > 功能 页面执行升级。
- 单独升级:在 OperatorHub 中手动批准升级请求。
注意:仅 提供的 Operators 支持批量升级。