亲历者说: Kubernetes API 与 Operator, 不为人知的开发者战争(12)
举个例子 , 假设下面这个 YAML 文件定义的 , 是一个 3 节点 etcd 集群的描述:
有了这样一个 etcdCluster 对象 , 那么开发者接下来要做的事情 , 就是编写一个 etcdCluster Controller , 使得当任何用户提交这样一个 YAML 文件给 Kubernetes 之后 , 我们自己编写的 Controller 就会响应 etcdCluster “增加”事件 , 为用户创建出 3 个节点的 etcd 集群出来 。 然后 , 它还会按照我们在 Controller 编写的事件响应逻辑 , 自动的对这个集群的节点更新、删除等事件做出处理 , 执行我定义的其他运维功能 。 像这样一个 etcdCluster Controller , 就是 etcd Operator 的核心组成部分了 。
而作为 etcd 的开发者 , CoreOS 的两位工程师把对 etcd 集群的运维工作编写成 Go 语言代码 , 一点都不困难 。 可是 , 要完成这个 Operator 真正困难在于:Kubernetes 只认识 Pod、Node、Service 等这些 Kubernetes 自己原生的 API 对象 , 它怎么可能认识开发者自己定义的这个 etcdCluster 对象呢?
在当时 , Kubernetes 项目允许用户自己添加 API 对象的插件能力 , 叫做 Third Party Resource , 简称:TPR 。
推荐阅读
- 星巴克API密钥被曝泄露 曝光者获巨额奖金
- python机器学习API介绍23:高级篇——支持向量机
- 从零开始入门 K8s | Kubernetes 调度和资源管理
- python机器学习API介绍21:层次聚类算法介绍
- python机器学习API介绍20: 密度聚类及其用法
- python机器学习API介绍18: LLE模型用于数据降维
- DataPipeline陈诚:2020年,企业将从关注商业智能转向数据应用
- 图解Kubernetes应用部署
- 英特尔oneAPI:定义未来十年应用程序开发的统一、简化的编程模型
- 清华教师转行美妆电商,年卖36亿!曾2200万拍下Papi酱广告