Operator 是基于 Kubernetes 自定义控制器和自定义资源定义(CRD)构建的扩展机制,旨在自动化复杂应用的完整生命周期管理。在 Alauda Container Platform 中,Operator Backed 应用指通过预集成或用户自定义的 Operator 创建的应用实例,其运行流程由 Operator Lifecycle Manager (OLM) 管理,包括安装、升级、依赖关系解析和访问控制等关键环节。
复杂操作自动化:Operator 克服了 Kubernetes 原生资源(如 Deployment、StatefulSet)在管理有状态应用时的局限性,解决分布式协调、持久存储和版本滚动更新等复杂问题。例如:Operator 编码逻辑实现数据库集群故障切换、跨节点数据一致性和备份恢复的自主操作。
声明式、状态驱动架构:Operator 通过基于 YAML 的声明式 API 定义期望的应用状态(如 spec.replicas: 5),持续对比实际状态与声明状态,实现自愈能力。与 GitOps 工具(如 Argo CD)深度集成,确保环境配置一致性。
智能生命周期管理:
标准化生态集成:OLM 规范 Operator 打包(Bundle)和分发渠道,实现从 OperatorHub 或私有仓库一键部署生产级应用(如 Etcd)。企业增强:Alauda Container Platform 扩展 RBAC 策略和多集群分发能力,满足企业合规需求。
该 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 的安装及升级。
在 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 资源创建过程需要异步调和,完成时间取决于集群状态,可能需要几分钟。
若资源创建失败: