带你读《云原生应用开发:Operator原理与实践》——1.2.3 主流 Operator 开发工具介绍

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: 带你读《云原生应用开发:Operator原理与实践》——1.2.3 主流 Operator 开发工具介绍

1.2.3 主流 Operator 开发工具介绍


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

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

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

1. Kubebuilder

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

Kubebuilder 的整体工作流程如下。

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

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

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

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

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

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

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

image.png

图 1-11 Kubebuilder 的工作流程

2. Operator Framework

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

(1) Operator SDK

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

(2) Operator 生命周期管理

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

(3) Operator Metering

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

1.3  本章小结

本章从云计算的发展历史角度介绍了云原生的起源与发展。Kubernetes 已经成为目前云原生应用开发、编排、部署的标准,在其生态之中,Operator 是一种广受欢迎的云原生应用开发框架。本章也介绍了 Operator 相关的历史、组成及使用方式。第 2 章将详细介绍Operator。

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
1月前
|
Kubernetes 监控 Cloud Native
云原生时代下的应用开发与部署实践
【10月更文挑战第4天】在云原生的浪潮中,开发者和运维人员面临着新的挑战和机遇。本文将通过实际案例,展示如何在云平台上高效地开发、部署和管理应用,同时确保系统的可扩展性和高可用性。我们将深入探讨容器化技术、微服务架构以及持续集成/持续部署(CI/CD)流程的实施策略,旨在为读者提供一套完整的云原生解决方案框架。
|
2月前
|
Kubernetes Cloud Native 持续交付
云原生技术在现代应用开发中的角色与实践
【9月更文挑战第9天】 随着云计算技术的飞速发展,云原生(Cloud Native)已经成为推动企业数字化转型的核心力量。本文将深入探讨云原生的基本概念、关键技术及其在实际开发中的应用案例,旨在为读者提供一条清晰的云原生技术学习路径和应用指南。通过实例分析,我们将揭示云原生如何优化资源管理、提升应用性能及加快部署速度,进而帮助企业构建更加灵活、可靠和高效的软件系统。
|
10天前
|
Kubernetes Cloud Native 持续交付
云原生技术在现代应用开发中的实践与思考
【10月更文挑战第35天】云原生技术,作为云计算的进阶形态,正引领着软件开发和运维的新潮流。本文将深入探讨云原生技术的核心理念、关键技术组件以及在实际项目中的应用案例,帮助读者理解如何利用云原生技术优化应用架构,提高开发效率和系统稳定性。我们将从容器化、微服务、持续集成/持续部署(CI/CD)等角度出发,结合实际代码示例,展现云原生技术的强大能力。
|
19天前
|
监控 Cloud Native 持续交付
云原生技术深度解析:重塑现代应用开发与部署范式####
本文深入探讨了云原生技术的核心概念、关键技术组件及其在现代软件开发中的重要性。通过剖析容器化、微服务架构、持续集成/持续部署(CI/CD)等关键技术,本文旨在揭示云原生技术如何促进应用的敏捷性、可扩展性和高可用性,进而推动企业数字化转型进程。不同于传统摘要仅概述内容要点,本部分将融入具体案例分析,直观展示云原生技术在实际应用中的显著成效与挑战应对策略,为读者提供更加丰富、立体的理解视角。 ####
|
30天前
|
Kubernetes Cloud Native 持续交付
云原生技术:重塑现代应用开发与部署模式####
本文深入探讨了云原生技术的核心概念、发展历程及其在现代软件开发和部署中的关键作用。通过分析云原生架构的特点,如容器化、微服务、持续集成与持续部署(CI/CD),以及它如何促进应用的可伸缩性、灵活性和效率,本文旨在为读者提供一个关于云原生技术全面而深入的理解。此外,还将探讨实施云原生策略时面临的挑战及应对策略,帮助组织更好地把握数字化转型的机遇。 ####
|
30天前
|
人工智能 Serverless API
云原生应用开发平台CAP:一站式应用开发及生命周期管理解决方案
阿里云的云应用开发平台CAP(Cloud Application Platform)是一款一站式应用开发及应用生命周期管理平台。它提供丰富的Serverless与AI应用模板、高效的开发者工具链及企业级应用管理功能,帮助开发者快速构建、部署和管理云上应用,大幅提升研发、部署和运维效能。
91 1
|
1月前
|
Kubernetes Cloud Native 持续交付
云原生技术在现代应用开发中的实践与展望
【10月更文挑战第7天】随着技术的不断演进,云计算已从简单的资源租用模式转变为支持复杂、高效、灵活的云原生应用架构。本文将深入探讨云原生技术的核心概念及其在现代应用开发中的应用,通过分析Kubernetes容器编排和微服务架构的实践案例,揭示云原生技术如何推动软件开发的现代化进程。文章旨在为开发者和架构师提供一套实用的云原生应用开发指南,同时展望未来云原生技术的发展方向。
29 8
|
1月前
|
Cloud Native 测试技术 云计算
云原生技术在现代应用开发中的角色与实践
【9月更文挑战第31天】本文深入探讨了云原生技术如何革新现代应用开发流程,通过实际案例分析,揭示了其对提高开发效率、确保系统可扩展性和可靠性的显著影响。文章不仅介绍了云原生的核心概念,还提供了实施策略和最佳实践,旨在为开发者提供一条清晰的云原生转型之路。
|
2月前
|
Kubernetes Cloud Native 持续交付
云原生技术在现代应用开发中的实践与思考
【9月更文挑战第23天】本文将深入探讨云原生技术如何革新现代应用的开发流程。通过分析云原生的核心概念、优势以及实际应用案例,我们旨在揭示这一新兴技术范式如何助力开发者和企业更高效、灵活地构建和部署应用程序。文章还将提供具体代码示例,展示云原生技术在实际项目中的应用,帮助读者更好地理解和掌握该技术。
|
2月前
|
Cloud Native 持续交付 开发者
云原生技术在现代应用开发中的应用与实践
【9月更文挑战第22天】本文将深入探讨云原生技术如何革新现代应用开发,通过实际案例分析其对提高开发效率、促进持续集成与交付的显著影响。我们将从云原生的基本概念出发,逐步展开到容器化、微服务架构、自动化管理的实践操作,以及这些技术如何协同工作以支持复杂应用的快速迭代和扩展。文章旨在为开发者提供一套云原生技术的实践框架,帮助他们构建更加灵活、可维护的应用系统。

热门文章

最新文章