Kubernetes Operator是coreos提出的Kubernetes的扩展软件,它是一个感知应用状态的控制器,通过扩展Kubernetes API CRD来创建、管理和配置应用实例。
介绍
Kubernetes 社区通过 https://operatorhub.io/ 分享 Operator。
- Kubernetes Operator 是一种封装、部署和管理 Kubernetes 应用的方法,包括:
- 目的是简化在 Kubernetes 中部署复杂的、有状态的应用
- 使用场景
- 按需部署应用
- 获取/还原应用状态的备份
- 处理应用代码的升级以及相关改动。例如,数据库 schema 或额外的配置设置
- 分布式应用集群部署等
Operator controller 工作过程:
- 通过 Kubernetes API 观察/获取 Operator 定义的资源状态
- 分析当前状态与期望状态的差别
- 调用 Kubernetes API 消除差别
开发 Operator 的工具
有多种不同的方式开发 Operator,从本质看,都是在 k8s 控制器运行时上进行封装
,支持自动生成脚手架代码。Kubernetes Operator 实现方式主要包括: