Operator工作原理 - Operator原理与实践 - 入门 - 含官方翻译中文文档 - Operator好处?

2023-05-16

 一 简单理解

推荐阅读1:https://developer.aliyun.com/article/798703

我们将 CRD, Controller, Webhook 三者合起来叫 Operator。一个 Operator 工程一般必须包含 CRD 和 Controller,Admission 是可选的。如果说 Kubernetes 是 "操作系统" 的话,Operator 是 Kubernetes 的第一层应用,它部署在 Kubernetes 里,使用 Kubernetes "扩展资源" 接口的方式向更上层用户提供服务。
 

Kubernetes 项目中的大部分编排对象(比如 Deployment、StatefulSet、DaemonSet,以及 Job),“有状态应用”的管理方法, Kubernetes 添加自定义 API 对象和编写自定义控制器。

可能你已经感觉到,在 Kubernetes 中,管理“有状态应用”是一个比较复杂的过程,尤其是编写 Pod 模板的时候,总有一种“在 YAML 文件里编程序”的感觉,让人很不舒服。

而在 Kubernetes 生态中,还有一个相对更加灵活和编程友好的管理“有状态应用”的解决方案,它就是:Operator。
————————————————
版权声明:本文为CSDN博主「Zeb-D」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u014229282/article/details/109294829

推荐阅读:

对比helm和opeartor 有图浅显易懂:https://www.yj-example.cn/?p=1581

Operator常用的模板:https://github.com/operator-framework/awesome-operators

Redis Cluster Operator: https://github.com/ucloud/redis-cluster-operator

二 翻译官方文档

https://www.bookstack.cn/read/kubernetes-1.23-zh/83e827d61b58b652.mdhttps://www.bookstack.cn/read/kubernetes-1.23-zh/83e827d61b58b652.md

初衷

Operator 模式旨在捕获(正在管理一个或一组服务的)运维人员的关键目标。 负责特定应用和 service 的运维人员,在系统应该如何运行、如何部署以及出现问题时如何处理等方面有深入的了解。

在 Kubernetes 上运行工作负载的人们都喜欢通过自动化来处理重复的任务。 Operator 模式会封装你编写的(Kubernetes 本身提供功能以外的)任务自动化代码。

Kubernetes 上的 Operator

Kubernetes 为自动化而生。无需任何修改,你即可以从 Kubernetes 核心中获得许多内置的自动化功能。 你可以使用 Kubernetes 自动化部署和运行工作负载, 甚至 可以自动化 Kubernetes 自身。

Kubernetes 的 Operator 模式概念允许你在不修改 Kubernetes 自身代码的情况下,通过为一个或多个自定义资源关联控制器 来扩展集群的能力。 Operator 是 Kubernetes API 的客户端,充当 自定义资源 的控制器。

Operator 示例

使用 Operator 可以自动化的事情包括:

  • 按需部署应用
  • 获取/还原应用状态的备份
  • 处理应用代码的升级以及相关改动。例如,数据库 schema 或额外的配置设置
  • 发布一个 service,要求不支持 Kubernetes API 的应用也能发现它
  • 模拟整个或部分集群中的故障以测试其稳定性
  • 在没有内部成员选举程序的情况下,为分布式应用选择首领角色

想要更详细的了解 Operator?下面是一个示例:

  1. 有一个名为 SampleDB 的自定义资源,你可以将其配置到集群中。
  2. 一个包含 Operator 控制器部分的 Deployment,用来确保 Pod 处于运行状态。
  3. Operator 代码的容器镜像。
  4. 控制器代码,负责查询控制平面以找出已配置的 SampleDB 资源。
  5. Operator 的核心是告诉 API 服务器,如何使现实与代码里配置的资源匹配。
    • 如果添加新的 SampleDB,Operator 将设置 PersistentVolumeClaims 以提供 持久化的数据库存储,设置 StatefulSet 以运行 SampleDB,并设置 Job 来处理初始配置。
    • 如果你删除它,Operator 将建立快照,然后确保 StatefulSet 和 Volume 已被删除。
  6. Operator 也可以管理常规数据库的备份。对于每个 SampleDB 资源,Operator 会确定何时创建(可以连接到数据库并进行备份的)Pod。这些 Pod 将依赖于 ConfigMap 和/或具有数据库连接详细信息和凭据的 Secret。
  7. 由于 Operator 旨在为其管理的资源提供强大的自动化功能,因此它还需要一些 额外的支持性代码。在这个示例中,代码将检查数据库是否正运行在旧版本上, 如果是,则创建 Job 对象为你升级数据库。

三 Operator 好处 

研究了一段实践Operator自定义资源之前,我们需要先了解一点:为啥要搞Operator?

helm不香吗?deployment+cronjob和job+configmap+secret不够用吗?

对 ,不够,例如:

1)不同应用平台需要管理的目标各有差异,如何在 Kubernetes 中兼容定义管理的目标?

2)如何管理和备份系统的应用数据,协调各应用之间不同生命周期的状态?

3)能否用同样的 kubectl 命令来管理自己定义的复杂分布式应用?

...

原文:Operator云原生应用开发——Operator介绍 - 左扬 - 博客园 (cnblogs.com)

四 Operator原理与实践 

推荐阅读:

Operator 基础原理和概念_operator原理_我想骑车的博客-CSDN博客

Operator原理与实践 这其实是一本书:

《云原生应用开发 Operator原理与实践》

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Operator工作原理 - Operator原理与实践 - 入门 - 含官方翻译中文文档 - Operator好处? 的相关文章

  • 海思平台水印功能实现之二定时器Timer

    定时器可以自己创建或者直接使用POSIX Timer 我们这边水印每隔1秒刷新时间的时候使用的是POSIX Timer POSIX timer相关的操作 主要包括创建一个timer timer create 设定timer timer se
  • 机器视觉模型——投影矩阵

    1 概述 机器视觉就是用机器代替人眼和人脑来做测量和判断 机器视觉系统工作的基本过程是获取目标的图像后 xff0c 对图像进行识别 特征提取 分类 数学运算等分析操作 xff0c 并根据图像的分析计算结果 xff0c 来对相应的系统进行控制
  • 2014英伟达校园招聘-上海

    时间 xff1a 2013 10 19 地点 xff1a 上海交通大学中院楼 申请职位 xff1a 嵌入式系统工程师 1 指针数组和数组指针 函数指针 指针函数 2 存储对齐 3 Getmemory问题 4 6进制转换成10进制 5 时钟方
  • 库实现之分配内存对齐的程序aligned_malloc和aligned_free函数

    分配内存管理对齐的程序 void aligned malloc int size int alignment void ptr 61 void malloc size 43 alignment if ptr void aligned 61
  • 解决warning: incompatible implicit declaration of built-in function 'malloc'

    由于代码中使用了malloc函数和字符串函数 xff0c 编译时出现错误 warning incompatible implicit declaration of built in function malloc warning incom
  • 解决虚拟机安装64位系统“此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态”的问题

    在Intel i5 4460的主机上安装Ubuntu 14 04 xff08 64位 xff09 xff0c 虚拟机使用的是Vmware 10 0 0 build 1295980 在新建好虚拟机 xff0c 运行时候就出现了VMware W
  • 【CentOS7】yum安装时出现错误Errno 14 Couldn't resolve host的解决办法

    在安装python sphinx时出现Errno 14 Couldn 39 t resolve host xff0c 什么东东 xff1f root 64 localhost jansson 1 2 yum install python s
  • SAS (Serial Attached SCSI) 技术详解

    xff08 一 xff09 什么是SAS SAS xff08 Serial Attached SCSI xff09 即串行SCSI技术 xff0c 是一种磁盘连接技术 xff0c 它综合了并行SCSI和串行连接技术 xff08 如FC SS
  • mdadm命令解析

    mdadm命令解析 一 在linux系统中目前以MD Multiple Devices 虚拟块设备的方式实现软件RAID 利用多个底层的块设备虚拟出一个新的虚拟设备 并且利用条带化 stripping 技术将数据块均匀分布到多个磁盘上来提高
  • fio使用指南

    这个文档是对fio 2 0 9 HOWTO文档的翻译 xff0c fio的参数太多了 xff0c 翻译这个文档时并没有测试每一个参数的功能和使用方法 xff0c 只有少量参数做了试验 xff0c 大部分的参数采用的是根据字面翻译或是个人理解
  • pixhawk双机通信测试例子

    本文针对 mavlink 和 topic 有一定熟悉的读者 Pixhawk 自有固件 xff0c mavlink 程序主要是针对 pixhawk 与地面站通信的 所以要实现双机通信需要修改一些代码 这里主要是利用 example px4 m
  • umask命令学习体会

    输入您的搜索字词 提交搜索表单 Web www csdn net umask因为需要一个相逆过程和文件的x位设置问题 xff0c 经常会混 xff0c 发以此文加强记忆 umask 功能说明 xff1a 指定在建立文件时预设的权限掩码 语
  • 树莓派4b安装Ubuntu20.04及ROS并使用激光雷达建图

    一 安装Ubuntu20 04 1 1 镜像下载和烧录 树莓派的Ubuntu系统镜像可以在Ubuntu官网下载 xff0c Server是服务器版本 xff0c amd64代表64位 xff0c armhf代表32位 xff0c raspi
  • linux查看设备和硬盘序列号 ip mac地址

    最近公司查设备 xff0c 记录一下相关的命令 xff0c 方便以后使用 主要针对centos xff0c ubuntu加上 sudo 应该就可以 xff1b 几个命令都可以用 大家可以对比查看核对 1 设备序列号 查看硬件相关所有的序列号
  • ubuntu系统 - 数据库 mysql命令 5.7 mysql常用命令 - 持续更新版 含mysql主从

    一 初始安装和基础 首先删除mysql sudo apt get remove mysql 然后清理残留的数据 dpkg l grep rc awk 39 print 2 39 sudo xargs dpkg P 它会跳出一个对话框 xff
  • openstack 对比 k8s 深度好文

    原文 xff1a https www cnblogs com goldsunshine p 9872142 html 当下云计算的领域里热度最高的两个项目 xff0c 无疑是OpenStack和Kubernetes 如果云计算是一个风起云涌
  • k8s官方中文文档学习

    网址 xff1a https www kubernetes org cn k8s
  • Docker镜像使用规范和latest标签 理解(为更新回滚做准备)

    dockerfile规范参考链接 xff1a Dockerfile编写规范 Loull 博客园 原文链接 xff1a Docker镜像latest标签 june js 博客园 当使用命令 docker pull mysql 拉取镜像时 xf
  • k8s存储 : volumeMounts

    原文 xff1a Kubernetes核心概念之Volume存储数据卷详解 linux运维技术的技术博客 51CTO博客 volume数据卷用法 在Docker中就有数据卷的概念 xff0c 当容器删除时 xff0c 数据也一起会被删除 x
  • grafana模板大全

    原文 xff1a https www jianshu com p 367d52fe1171 前言 xff1a 本篇文章分三部分来介绍常用的grafana模板 数据来源均为prometheus 数据来源为zabbix或其他的请绕行 xff01

随机推荐