Kubernetes Operators🦄 简单解释

2025-06-07

Kubernetes Operators🦄 简单解释

了解什么是 Kubernetes Operator、为什么会出现这个 Operator 概念以及何时应该使用它们


概述:
为了让您有个大致的了解,Operator 主要用于有状态应用程序。因此,我首先比较一下 Kubernetes 如何管理无状态和有状态应用程序。然后,我会比较不使用 Operator 和使用 Kubernetes Operator 部署和管理有状态应用程序的优劣。

  • 1. Kubernetes 上的无状态应用程序
  • 2. 无需 Operator 的有状态应用程序
  • 3. 有状态应用程序与 Operator 🦄

► 观看完整视频🎬:Kubernetes Operators 讲解

1. Kubernetes 上的无状态应用程序

Kubernetes 可以以全自动的方式管理无状态应用程序的完整生命周期,因为这些应用程序没有部署的业务逻辑。

这意味着 K8s 不需要知道任何特定于应用程序的业务逻辑即可自动创建、更新和删除它们。🔝

所以基本上,一旦部署了应用程序,您就无需亲自控制它是否正常运行。而且,当您进行诸如更新或扩展之类的小改动时,它几乎可以毫无问题地运行。

太棒了!😎

2. 无 Operator 的有状态应用程序

对于有状态应用程序(例如数据库),整个过程并不那么简单。
它们需要在整个生命周期中提供更多的“指导”,因为有状态应用程序的副本并不完全相同。

无运算符的有状态应用程序

每个实例都有其状态和身份。这意味着,它们需要按照特定的顺序启动、更新和销毁。这些细节甚至会因应用程序而异:Mysql 有其特定的执行方式,Postgres 和 Elasticsearch 有其他执行方式,等等。🙄

因此,Kubernetes 本身/内部并不具备自动化部署每个有状态应用程序所需的所有知识🤷🏻‍♂️。

这就是为什么这类应用程序需要人工干预——需要那些“操作”这些应用程序的人。👩🏻‍💻

3. 使用 Operator 实现有状态应用程序

操作员解决了这个问题,基本上用“软件”操作员取代了这个“人类”操作员

DevOps 团队需要执行的所有手动任务现在都被打包到一个程序中,该程序具有关于如何部署特定应用程序的知识和智能,例如 Postgres 或 Prometheus。💡

那么 Operator 是如何做到这一点的呢?🤔

其核心具有与 k8s 相同的控制循环机制,用于监视应用程序状态的变化。

Kubernetes 控制循环

它还使用 CRD,它基本上是一个扩展 Kubernetes API 的自定义 K8s 组件。

因此,它以基本的 Kubernetes 资源及其控制器概念为基础,并在此基础上包含领域或特定于应用程序的知识,以自动化其“操作”的应用程序的整个生命周期
带有运算符的有状态应用程序

更多详情请见此处的视频👩🏻‍💻


Kubernetes 101紧凑易读的电子书包 🚀
这是一种快速查找某些内容或在工作中刷新知识的便捷方法,可用作备忘单 😎

喜欢、分享并关注我😍以获取更多内容:

文章来源:https://dev.to/techworld_with_nana/kubernetes-operators-simply-explained-2jp6
PREV
Kubernetes 服务简介
NEXT
Kubernetes 架构简述