Creating applications from Operator Backed
了解 Operator Backed 应用
Operator 是基于 Kubernetes 自定义控制器和自定义资源定义(CRD)构建的扩展机制,旨在实现复杂应用的完整生命周期管理自动化。在 Alauda Container Platform 中,Operator Backed Application 指通过预集成或用户自定义的 Operator 创建的应用实例,其运行流程由 Operator Lifecycle Manager(OLM)管理,包括安装、升级、依赖关系解析和访问控制等关键环节。
核心能力
-
复杂操作自动化:Operator 克服了 Kubernetes 原生资源(如 Deployment、StatefulSet)在管理有状态应用时的局限性,解决分布式协调、持久存储和版本滚动升级等复杂问题。例如:Operator 编码的逻辑可实现数据库集群故障切换、跨节点数据一致性和备份恢复的自主操作。
-
声明式、状态驱动架构:Operator 通过基于 YAML 的声明式 API 定义期望的应用状态(如 spec.replicas: 5),持续调和实际状态与声明状态,实现自愈能力。与 GitOps 工具(如 Argo CD)深度集成,确保环境配置一致性。
-
智能生命周期管理:
- 滚动升级与回滚:OLM 的 Subscription 对象订阅更新通道(如 stable、alpha),触发 Operator 及其管理应用的自动版本迭代。
- 依赖关系解析:Operator 动态识别运行时依赖(如特定存储驱动、CNI 插件),确保部署成功。
-
标准化生态集成:OLM 标准化 Operator 打包(Bundle)和分发渠道,实现从 OperatorHub 或私有仓库一键部署生产级应用(如 Etcd)。企业增强:Alauda Container Platform 扩展了 RBAC 策略和多集群分发能力,满足企业合规需求。
Operator Backed 应用 CRD
该 Operator 设计与实现充分借鉴开源社区标准和方案,其自定义资源定义(CRD)设计融合了 Kubernetes 生态内成熟的最佳实践和架构模式。CRD 设计参考资料:
-
CatalogSource:定义集群可用的 Operator 包来源,如 OperatorHub 或自定义 Operator 仓库。
-
ClusterServiceVersion (CSV):Operator 的核心元数据定义,包含名称、版本、提供的 API、所需权限、安装策略及详细生命周期管理信息。
-
InstallPlan:Operator 安装的实际执行计划,由 OLM 根据 Subscription 和 CSV 自动生成,详细描述创建 Operator 及其依赖资源的具体步骤。
-
OperatorGroup:定义 Operator 提供服务和调和资源的目标命名空间集合,同时限制 Operator 的 RBAC 权限范围。
-
Subscription:用于声明用户希望在集群中安装和跟踪的特定 Operator,包括 Operator 名称、目标通道(如 stable、alpha)和更新策略。OLM 利用 Subscription 创建和管理 Operator 的安装与升级。
通过 Web 控制台创建 Operator Backed 应用
-
在 Container Platform 中,左侧导航栏进入 Applications > Applications。
-
点击 Create。
-
选择 Create from Catalog 作为创建方式。
-
选择一个 Operator Backed 实例并配置 Custom Resource Parameters。选择一个 Operator 管理的应用实例,并在 CR 清单中配置其自定义资源(CR)规格,包括:
spec.resources.limits(容器级资源限制)。spec.resourceQuota(Operator 定义的配额策略)。其他 CR 相关参数如spec.replicas、spec.storage.className等。
-
点击 Create。
Web 控制台将跳转至 Applications > Operator Backed Apps 页面。
注意: Kubernetes 资源创建过程为异步调和,完成时间视集群状况可能需数分钟。
故障排查
若资源创建失败:
- 查看控制器调和错误:
- 验证 API 资源是否可用:
- 确认 CRD/Operator 准备就绪后重试创建: