operators起初是一种设计模式,于2106年由coreos blog发布。operator的目的是将可操作的知识应用到软件中。从前,这些知识仅存在于管理员的脑海、大量的shell脚本、或者自动化软件例如ansible中,然而这些独立于kubernetes 集群之外,并且难于集成进来。CoreOs基于operators改变了这一切。
operators利用用来执行和自动化了安装、配置等,也自动化了重新配置,更新,回退,重启,恢复的等一系列活动。我们称这些运用为云原生运用。基于operator,你可以不用同时操作pods, deployments, services or configmaps而去操作只需要操作暴露出来的一个单一的objects而实现操作整个应用。
实现这些,核心概念就是kubernets的controller。一个controller是一个最基本的软件的循环,其在kubernetes的主node上不停的运行,来保证特定的kubernetes的主体处于某种特定状态。
operators就是这样一组定制化的controllers,用来管理整个应用。
operator本身是在集群中运行在pod上的一组软件,和kubernetes api服务器进行交互,来管理一个应用相关的objects。