讲在前面
今天谈谈Kubernetes生态中目前非常活跃的一个概念“Operator”。是的,我认为它是一个概念,一个设计模式。它并不是一个开发框架,一种资源或者说一个项目,这个概念由CoreOS提出。Operator的概念是从Kubernetes的CRD(Custom Resource Definition)自定义资源衍生而来。Kubernetes 的API设计是跨时代的,这种面向资源模型的声明式API体系,使得其能够在分布式体系管理各种资源。CRD的提出更是为开发者打开了创新的大门,从最开始的分布式应用部署,到更广阔的应用开发/发布场景,再到各类云服务场景。各类型资源都接入到Kubernetes API中有效协同管理。Operator的概念在这个过程中推波助澜,我们可以从 awesome-operators 这里看到,各种Operator实现种类齐全。
Operator模式与实践
Operator是一个设计模式,那它到底是一种什么样的模式。要分析这个问题我们可以先理解理解在Kubernetes中Deployment这个资源是如何设计和工作的。Deployment作为我们在Kubernetes中部署无状态应用的标准化方式,其实它的完整工作方式也是Operator设计模式的一种官方实践。在通过其他的标准Operator设计实践来进行理解。我们从以下两个方面来说明Operator模式。
资源定义
Deployment是一种资源,它有完整的定义和Kubernetes API原生的支持。资源的定义中大致分为三个部分:
- Metadata
- Specification
- Stat

最低0.47元/天 解锁文章
890

被折叠的 条评论
为什么被折叠?



