Operator初识

2022-01-06  本文已影响0人  quanCN

简介

CoreOS在2016年底提出了Operator的概念,当时的一段官方定义如下:
An Operator represents human operational knowledge in software, to reliably manage an application.
“Operator 可以通过软件的方式定义人类的运维操作,并可靠地管理应用”

Operator定义了一组在Kubernetes集群中打包和部署复杂业务应用的方法,它可以方便地在不通集群中部署并在不同的客户间传播共享,同时Operator还提供了一套应用在运行时刻的监控管理方法,还可以时刻监控应用自身状态和该应用在Kubernetes集群中的关注事件,并在毫秒级做出响应处理,比如对应用的自动化容灾或是滚动升级等高级运维操作

进一步讲,Operator的设计和实现并不是千篇一律的,开发者可以根据自身业务需求,不断演进应用和自定义模型,同时面向具体的自动化场景在控制器中扩展相应的业务逻辑

Operator与Kubernetes

在Kubernetes实现容器编排的核心思想中,会使用控制器(Controller)模式对etcd里的API模型对象变化保持不断监听(Watch),并在控制器中对指定事件进行响应处理,针对不同API模型,可以在对应的控制权中添加响应的业务逻辑,通过这种方式完成应用编排中各阶段的事件处理。而Operator正是基于控制器模式,允许应用开发者通过扩展Kubernetes API对象的方式,将复杂的分布式应用集群抽象为一个自定义的API对象,通过对自定义API模型的请求,实现基本的运维操作

Operator 开发流程

如图为一个项目从开发到开源再到被使用的全生命周期流程:


Operator Framework

Operator Framework 是一组用于快速开发Operator的开源工具集,它可以帮助Operator用户迅速找到开发的切入点并按照标准实现符合自身需求的Operator原型,它主要包含了如下3个组件:

下图是利用Operator Framework进行Operator开发、打包、部署以及基于Operator实例进行云原生应用创建、管理和运维的标准流程


Operator 组成部分

如图一个完整的Operator通常包括如下内容


上一篇 下一篇

猜你喜欢

热点阅读