【云原生架构】节俭 Kubernetes operator 第1部分:简介

在线体验各类最新模型,更有模型 免费Token 额度领取!
立即体验
简介: 【云原生架构】节俭 Kubernetes operator 第1部分:简介

什么是Operator?

Kubernetes平台是围绕控制器的软件设计模式构建的,该控制器是管理两个实体之间数据流的软件组件。在Kubernetes中,控制器监视在一个资源中发现的声明状态的更改,然后通过创建或更改其他下游资源来响应状态更改请求。由于控制器对帐过程连续发生,因此此过程称为“主动对帐”。如图1所示。


创建部署时,可以观察到此行为的一个示例。创建新的部署资源后,将向部署控制器通知资源更改,并通过创建新的副本集做出反应。反过来,副本集控制器对副本集资源做出反应,并导致创建一个或多个Pod。稍后,如果您要修改部署的图像属性,则部署控制器将使用新的图像属性创建新的副本集,同时逐步淘汰旧的副本集。尽管对下游资源采取的操作根据资源而有所不同,但其他控制器的行为类似。

像其他控制器一样,操作员也要注意Kubernetes资源的修改。但是,与Kubernetes平台概念(如部署,状态集和服务(在许多类型的软件中通用))不同,操作员将特定于软件的知识体现在控制器中。考虑一个复杂的工作负载,例如集群数据库,其中需要按照该软件独有的精确顺序来组织常见的操作活动。

实践中的Operator

让我们考虑一个例子。也许升级数据库需要先启动数据格式的先决条件步骤,然后再启动最新版本的容器软件,并且所有吊舱都需要在数据迁移之前停止。或者,可能需要按特定顺序启动Pod,以确保共识算法可以识别所有群集成员。操作员负责协调这些活动,同时利用最终用户可以编辑的资源模型中的声明性或所需状态。

将声明的状态与特定于实现的活动分开,使用户可以在没有特定于软件的知识的情况下控制软件的实例。知识被编码到操作员提供的控制器中。同时,另一软件的操作特性以其自己的方式是独特的,因此具有自己的运算符。

规模化Operator

如果单独部署operator,他们将消耗很少的资源。实际上,我们通过使用Kube Builder SDK和golang语言生成控制器来进行一些分析。然后,我们分析了生成的控制器的实际CPU和内存使用情况,以及对生成的资源请求和限制进行自省。下表中汇总了此信息:


这些数目是针对单个控制器容器的,集群中容器的总数由以下各项确定:

软件包中特定于软件的运算符的数量(Redis的一个运算符,Postgres的一个运算符)。

单个运算符的唯一实例数。为了隔离起见,Redis运算符可能安装在一个命名空间中,而Redis运算符实例的另一个实例存在于另一个命名空间中。

上面的指标是针对每个Pod的,但是出于冗余的考虑,每个操作员部署可能会部署3次。

如果我们要计划由10个名称空间隔离的10个运算符,并且冗余为3,这将导致以下资源消耗:

我们可以对这些数据进行一些重要的观察:

  • 在上述规模下,一个以上的内核将专门用于保持空闲操作员的运行。
  • 除了实际的资源消耗外,operator还计入集群的资源配额。
  • 您选择安装哪些操作程序,以及在什么作用范围内(例如名称空间或群集范围)进行大规模安装。

我们可以无服务器吗?

当然,许多操作员实例的资源利用率可能会影响集群资源需求,但是它是否非常适合无服务器?现实情况是,许多控制器的需求并不恒定,尤其是当单个操作员实例的范围已限于特定的名称空间时。

Kubernetes资源修改事件通常源于两个用户修改单个资源以及通过机器驱动或批处理作业。单个用户可能会强烈地操纵资源一段时间,然后一段时间不会。例如,您可以创建一个Redis集群,然后在根据自己的特定需求微调该集群时编辑各个参数,但是在此之后,您将继续编辑应用程序的其他部分。对于机器驱动的作业,其中一些按计划运行,而另一些则由源更改事件驱动,这些事件通常在工作日左右聚集。

单一资源或资源种类上的活动集群趋向于倾向于无服务器模型。在此模型中,容器进程仅在工作到达时才保持活动状态,但是可以在活动停止的时间段内停止这些容器。

请继续关注有关现有operator部署和新设计模式的更多帖子

随着operator继续在Kubernetes生态系统中获得关注,并且自定义控制器变得越来越普遍,这些容器流程的资源需求值得注意。在本系列的第2部分中,我们将考虑一些既适用于现有operator部署又适用于利用Knative提供无服务器功能的新设计模式的特定技术方法。

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
存储 Cloud Native 数据处理
从嵌入式状态管理到云原生架构:Apache Flink 的演进与下一代增量计算范式
本文整理自阿里云资深技术专家、Apache Flink PMC 成员梅源在 Flink Forward Asia 新加坡 2025上的分享,深入解析 Flink 状态管理系统的发展历程,从核心设计到 Flink 2.0 存算分离架构,并展望未来基于流批一体的通用增量计算方向。
670 0
从嵌入式状态管理到云原生架构:Apache Flink 的演进与下一代增量计算范式
|
11月前
|
运维 监控 Cloud Native
从本土到全球,云原生架构护航灵犀互娱游戏出海
本文内容整理自「 2025 中企出海大会·游戏与互娱出海分论坛」,灵犀互娱基础架构负责人朱晓靖的演讲内容,从技术层面分享云原生架构护航灵犀互娱游戏出海经验。
888 15
|
11月前
|
运维 监控 Cloud Native
从本土到全球,云原生架构护航灵犀互娱游戏出海
内容整理自「 2025 中企出海大会·游戏与互娱出海分论坛」,灵犀互娱基础架构负责人朱晓靖的演讲内容,从技术层面分享云原生架构护航灵犀互娱游戏出海经验。
|
9月前
|
Cloud Native Serverless API
微服务架构实战指南:从单体应用到云原生的蜕变之路
🌟蒋星熠Jaxonic,代码为舟的星际旅人。深耕微服务架构,擅以DDD拆分服务、构建高可用通信与治理体系。分享从单体到云原生的实战经验,探索技术演进的无限可能。
微服务架构实战指南:从单体应用到云原生的蜕变之路
|
9月前
|
Java Linux 虚拟化
【Docker】(1)Docker的概述与架构,手把手带你安装Docker,云原生路上不可缺少的一门技术!
1. Docker简介 1.1 Docker是什么 为什么docker会出现? 假定您在开发一款平台项目,您的开发环境具有特定的配置。其他开发人员身处的环境配置也各有不同。 您正在开发的应用依赖于您当前的配置且还要依赖于某些配置文件。 您的企业还拥有标准化的测试和生产环境,且具有自身的配置和一系列支持文件。 **要求:**希望尽可能多在本地模拟这些环境而不产生重新创建服务器环境的开销 问题: 要如何确保应用能够在这些环境中运行和通过质量检测? 在部署过程中不出现令人头疼的版本、配置问题 无需重新编写代码和进行故障修复
736 2
|
9月前
|
人工智能 Kubernetes Cloud Native
Higress(云原生AI网关) 架构学习指南
Higress 架构学习指南 🚀写在前面: 嘿,欢迎你来到 Higress 的学习之旅!
3402 0
|
12月前
|
缓存 Cloud Native Java
Java 面试微服务架构与云原生技术实操内容及核心考点梳理 Java 面试
本内容涵盖Java面试核心技术实操,包括微服务架构(Spring Cloud Alibaba)、响应式编程(WebFlux)、容器化(Docker+K8s)、函数式编程、多级缓存、分库分表、链路追踪(Skywalking)等大厂高频考点,助你系统提升面试能力。
1533 0
|
弹性计算 API 持续交付
后端服务架构的微服务化转型
本文旨在探讨后端服务从单体架构向微服务架构转型的过程,分析微服务架构的优势和面临的挑战。文章首先介绍单体架构的局限性,然后详细阐述微服务架构的核心概念及其在现代软件开发中的应用。通过对比两种架构,指出微服务化转型的必要性和实施策略。最后,讨论了微服务架构实施过程中可能遇到的问题及解决方案。
|
Cloud Native Devops 云计算
云计算的未来:云原生架构与微服务的革命####
【10月更文挑战第21天】 随着企业数字化转型的加速,云原生技术正迅速成为IT行业的新宠。本文深入探讨了云原生架构的核心理念、关键技术如容器化和微服务的优势,以及如何通过这些技术实现高效、灵活且可扩展的现代应用开发。我们将揭示云原生如何重塑软件开发流程,提升业务敏捷性,并探索其对企业IT架构的深远影响。 ####
506 3

热门文章

最新文章