带你读《云原生应用开发 Operator原理与实践》第一章引言1.2Operator 介绍(七)-阿里云开发者社区

开发者社区> 人民邮电出版社> 正文

带你读《云原生应用开发 Operator原理与实践》第一章引言1.2Operator 介绍(七)

简介: 《云原生应用开发 Operator原理与实践》第一章引言1.2Operator 介绍(七)
+关注继续查看

1.2.3        主流Operator 开发工具介绍


我们通过前面的内容了解到,Operator的运行机制是作为自定义扩展资源注册到Controller   Manager,通过 List-Watch的方式监听对应资源的变化,然后在周期内的各个环节进行相应的协调。在Operator开发工具出现前,用户为了实现一个 Operator, 需要完全实现从KubernetesClient创建,到监听 KubernetesAPIServer请求,再到请求队列化,以及后面的业务逻辑等一整套逻辑。

Operator开发工具将 Operator 实现过程逻辑封装和抽象成公共的库和工具,并通过SDK等方式供开发者二次开发使用。开发者在开发 Operator   时,只需要通过开发工具生成脚手架代码——他们无须关心 Kubernetes   APIServer   发来的请求是怎样进入请求队列,被依次执行的,只需要专注于如何处理当前的请求即可。其他事情,Scaffolding代码中用到的Controller-runtime 等库会帮助处理。

目前,OperatorSDK(来自于 CoreOS)和 Kubebuilder(来自于 Kubernetes)是开发Operator常用的两种SDK,或者称为大框架(Framework),两种方式都完成了步骤规范和初始化元素,并生成相应的模板,便于开发者实现加入自定义的功能。接下    来我们为大家分别介绍上述两种工具。

1. Kubebuilder

 

Kubebuilder是一个帮助开发者快速开发KubernetesAPI 的脚手架命令行工具,依赖Controller-tool和 Controller-runtime等库,简化 KubernetesController   的开发,并且对 Kubernetes 的几个常用库进行了封装,图 1-11为 Kubebuilder 的工作流程。

Kubebuilder 的整体工作流程如下。

(1)初始化一个新的工程目录。

(2)  创建一个或多个资源   API   CRD,然后将字段添加到资源。

(3)  在控制器中实现协调循环(ReconcileLoop),监听额外的资源。

(4)  在集群中运行测试(自动安装   CRD   并自动启动控制器)。

(5)更新引导测试新字段和业务逻辑。

(6)生产环境使用 Dockerfile构建和发布容器。

其中步骤(2)和(3)是 Kubebuilder核心业务逻辑,其余步骤均通过自动生成脚手架代码方式完成。Kubebuilder脚手架生成 Operator的代码后,开发者只需要在图1-11 的 Reconciler中实现自己的控制逻辑即可完成 Operator的构建和发布。

image.png

 

图 1—11Kubebuider的工作流程

 

2. OperatorFramework

 

OperatorFramework是 RedHat和 Kubernetes 社区共同推出的开源项目框架,旨在帮助开发者高效、快速地开发自身业务对应的 Operator。OperatorFramework其实是一组用于快速开发Operator的开源工具集,它主要包含如下 3个组件

(1)OperatorSDK

OperatorSDK提供了一组用于构建、测试和打包 Operator的工具,一个 Operator开发者可以利用 SDK方便、高效地生成一套具备基础框架的 Operator脚手架代码,它抽象了Client-go库的实现细节,开发者无须了解如何扩展复杂的Kubernetes API模型和具体的Controller框架。OperatorSDK工具与手动编写CRD/Operator代码相比,需要完成 CRD类型创建及Reconcile控制循环,但是对于创建目录结构、定义注册和文件等通用步骤均由 OperatorSDK 自动帮助完成。

(2)Operator 生命周期管理

Operator的生命周期管理由 OLM(Operator   Lifecycle   Manager)完成,当开发者使用 SDK构建好自己的Operator后,可以使用 OLM将其部署到对应的 Kubernetes集群中。通过 OLM,集群管理员可以控制 Operator部署在哪些 Namespace中。除此以外,OLM还负责在Operator实例运行的生命周期中进行相应的管理工作,如 Operator和其依赖资源的自动化更新等运维操作。

(3)OperatorMetering

在 Kubernetes 广泛应用的自动扩缩容或混合云部署等业务场景下,资源计量是客户的重要需求,同时它也是业务应用计量计费的依据。另外,对于大规模分布式的 Operator应用场景,Metering也是聚合统计资源和服务使用情况的有效手段之一。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【译】Databricks使用Spark Streaming和Delta Lake对流式数据进行数据质量监控介绍
本文主要对Databricks如何使用Spark Streaming和Delta Lake对流式数据进行数据质量监控的方法和架构进行了介绍,本文探讨了一种数据管理架构,该架构可以在数据到达时,通过主动监控和分析来检测流式数据中损坏或不良的数据,并且不会造成瓶颈。
1087 0
Android官方开发文档Training系列课程中文版:动画视图之转场框架介绍
原文地址:http://android.xsoftlab.net/training/transitions/index.html 引言 Activity所呈现的UI经常会由用户的输入或者其它事件而发生变化。
815 0
阿里巴巴的云原生与开发者 | 10月15号栖夜读
今天的首篇文章,讲述了 : 利用云原生技术构建应用简便快捷,部署应用轻松自如,运行应用按需伸缩。如今,云原生已经成为下一代技术发展的趋势。在 2019 杭州云栖大会开发者峰会上,阿里巴巴资深技术专家李响就为大家分享了阿里巴巴的云原生技术与开发者的那些故事。
2880 0
单片机复位电路原理介绍
复位电路的工作原理在书本上有介绍,51单片机要复位只需要在第9引脚接个高电平持续2us就可以实现,那这个过程是如何实现的呢?在单片机系统中,系统上电启动的时候复位一次,当按键按下的时候系统再次复位,如果释放后再按下,系统还会复位。
1586 0
阿里开源!云原生应用自动化引擎 OpenKruise | 直击 KubeCon | 6月26号云栖夜读
今天的首篇文章,讲述了:近期开展的 KubeCon China 2019 上,阿里云将陆续为全球用户分享阿里巴巴超大规模云原生落地实践、云原生前沿技术与应用包括 OpenKruise 开源项目、开放云原生应用中心(Cloud Native App Hub),同时将重磅发布边缘容器、云原生应用管理与交付体系等产品和服务。
4947 0
iOS平台应用开发的敏捷设计流程
  本文翻译自《Computer Arts》中对专注于iPhone和iPad应用开发的设计师Sarah Parmenter的访谈录,希望对iPhone应用开发的朋友能有所帮助。   以下为全部译文:   对设计师来说,iPhone和iPad是全新的平台。
634 0
Elasticsearch Top5典型应用场景
题记 刚接触Elasticsearch的朋友,或多或少会遇到一个问题,Elasticsearch在实际公司应用中除了搜索到底能做什么? 本文给出了答案。 除了“You Know, for Search”,Elasticsearch的使用会不断增长和变化。ObjectRocket作为一家托管云计算公司,已经在ObjectRocket平台上提供托管Elasticsearch一段时间了,并且能够看到我们客户之间的一些明确趋势以及他们如何使用该产品。以下是我们在平台上看到的Top5场景用例:
8 0
472
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载