亲历者说: Kubernetes API 与 Operator, 不为人知的开发者战争( 七 )
比如 , 你提交的 API 对象是一个应用 , 描述的是这个应用必须有三个实例 , 那么无论接下来你的 API 对象发生任何“风吹草动” , 控制器都会检查一遍这个集群里是不是真的有三个应用实例在运行 。 并且 , 它会根据这次检查的结果来决定 , 是不是需要对集群做某些操作来完成这次“调谐”过程 。 当然 , 这里控制器正是依靠 etcd 的 Watch API 来实现对 API 对象变化的感知的 。 在整个过程中 , 你提交的 API 对象就是 Kubernetes 控制器眼中的“金科玉律” , 是接下来控制器执行调谐逻辑要达到的唯一状态 。 这就是我们所说的“终态”的含义 。
而 Operator 的设计 , 其实就是把这个“控制器”模式的思想 , 贯彻的更加彻底 。 在 Operator 里 , 你提交的 API 对象不再是一个单体应用的描述 , 而是一个完整的分布式应用集群的描述 。 这里的区别在于 , 整个分布式应用集群的状态和定义 , 都成了Kubernetes 控制器需要保证的“终态” 。 比如 , 这个应用有几个实例 , 实例间的关系如何处理 , 实例需要把数据存储在哪里 , 如何对实例数据进行备份和恢复 , 都是这个控制器需要根据 API 对象的变化进行处理的逻辑 。
推荐阅读
- 星巴克API密钥被曝泄露 曝光者获巨额奖金
- python机器学习API介绍23:高级篇——支持向量机
- 从零开始入门 K8s | Kubernetes 调度和资源管理
- python机器学习API介绍21:层次聚类算法介绍
- python机器学习API介绍20: 密度聚类及其用法
- python机器学习API介绍18: LLE模型用于数据降维
- DataPipeline陈诚:2020年,企业将从关注商业智能转向数据应用
- 图解Kubernetes应用部署
- 英特尔oneAPI:定义未来十年应用程序开发的统一、简化的编程模型
- 清华教师转行美妆电商,年卖36亿!曾2200万拍下Papi酱广告