Operator基础:1: Operator Framework简介
Operator显然已经成为Kubernetes中一个非常重要的概念,不说类似的脚手架轮子kubebuilder和kudobuilder已然出现,微软和阿里去年公布的OAM也可以清晰地看到Operator的影子。这篇文章从最早提出Operator概念的CoreOS的文章中再来总结一下相关的基础内容。
Operator Framework
什么是Operator Framework?一个设计用来管理被成为Operator的Kubernetes原生应用的开源工具,作用是什么呢?更加有效、更加自动化以及更加可扩展。而Operator,早在2016年,CoreOS就对此有过定义。
Operator
Operator的由来:从CoreOS的介绍来看当时主要有三点相关的背景触发了Operator的诞生。
- SRE工程师:是一个能写代码的运维工程师,在Google得到了很好地实践。
- Kubernetes应用的配置和部署还是有一定的门槛,对于普通开发者来说有一定难度。
- 无状态的应用管理,无论横向扩缩还是其他的,都很简单,但是有状态的就困难很多。
所以Operator应运而生,代表了SRE类似的人类的运维知识的沉积,使用Operator使得普通的开发人员也能很快具有相关的SRE的能力,使得打包、部署和管理Kubernetes应用成为可能,使得运维最佳能力的固化更加容易。另外Operator也使得SRE的能力能够进一步强化,比如他可以根据观测的状态在毫秒级进行响应,这是人类所无法比拟的,当然风险也更高。
特性说明
Operator Framework提供了如下能力用于帮助开发者更快地开发Operator:
-
Operator SDK: 提供了开发Operator的脚手架功能,稍微降低了相关的开发难度,从构建、测试打包Operator,相关功能都有包含。
-
Operator生命周期管理(OLM):对于Operator在Kubernetes集群上从安装、更新到管理的全生命周期进行管理。一旦使用SDK构建完毕,到上至集群上的这部分操作,OLM开始接棒。
-
Operator Metering(即将合入):提供提供与特定服务的Operator的使用情况的报表。
参考内容
https://coreos.com/blog/introducing-operator-framework
https://coreos.com/blog/introducing-operators.html