首页 > 其他分享 >Kubernetes从零到精通(17-扩展-Operator模式)

Kubernetes从零到精通(17-扩展-Operator模式)

时间:2024-09-30 12:22:01浏览次数:11  
标签:控制器 Kubernetes 17 应用程序 零到 CRD Operator 自定义

目录

一、简介

二、核心概念

三、工作原理

四、Operator Framework SDK示例

1.准备工作

2. 定义MySQLCluster CRD

3. 自定义资源实例

4. 编写控制器逻辑

5. 部署Operator

6. 验证


一、简介

        Kubernetes中的Operator模式是一种用于简化和自动化管理复杂应用程序(尤其是有状态应用程序)的模式。Operator模式是通过扩展Kubernetes的API来管理特定的应用程序或服务,它是以Kubernetes的控制器为核心的设计模式,允许开发者用Kubernetes的标准工具来管理应用程序的生命周期。

        我们可以在operatorhub.io上找到现成的、适合自己需求的Operator。也可以用一些库和工具,编写自己的云原生Operator,例如Kubernetes从零到精通(16-扩展-CRD、Custom Controller)中的kubebuilder工具。

二、核心概念

定制资源定义(CRD, Custom Resource Definition):Kubernetes中可以通过CRD自定义自己的资源类型(Custom Resource, CR),这些资源类型可以是应用特定的,例如数据库实例、缓存集群等。

定制控制器(Custom Controller):控制器是一段用于监控和管理CR的逻辑。它定期检查当前状态和目标状态之间的差异,做出相应的调整。控制器通常使用Kubernetes API监视自定义资源的变化并执行相应的操作。

Operator:Operator是结合了CRD和控制器的具体实现,能够以自动化的方式管理和操作复杂的应用程序。例如,一个MySQL Operator可能会管理MySQL集群的生命周期,包括备份、恢复、扩展等任务。

三、工作原理

定义定制资源(CRD):定义一种新的资源类型(例如MySQLCluster),以表示你的应用程序或服务。

编写控制器逻辑:控制器负责监控这些自定义资源对象的生命周期事件,处理它们的创建、更新、删除等操作。

部署Operator:通过Kubernetes中的部署方式,将Operator控制器运行在集群中。Operator会定期对比实际状态和期望状态,并做出调整。

操作和管理应用程序:Operator根据定义好的规则和逻辑自动操作应用程序,例如扩展、备份、恢复等。

四、Operator Framework SDK示例

<

标签:控制器,Kubernetes,17,应用程序,零到,CRD,Operator,自定义
From: https://blog.csdn.net/fzw1030/article/details/142653051

相关文章

  • Kubernetes从零到精通(16-扩展-CRD、Custom Controller)
    目录一、简介二、CRD1.CRD介绍2.CRD工作流程三、CustomController1.CustomController介绍2.CustomController工作流程四、示例1.创建CR2.配置权限RBAC3.创建CustomController3.1Go项目初始化3.2 main.go编写3.3构建镜像3.4部署Controller4.测试CR和控......
  • 转载 https://blog.csdn.net/h1773655323/article/details/142098658#:~:text=%E7%94%
    在Ubuntu20.04上安装Python3.12:详细教程写bug如流水于2024-09-1014:41:34发布阅读量837收藏11点赞数4分类专栏:Python文章标签:ubuntupythonlinux版权Python专栏收录该内容53篇文章7订阅订阅专栏今天这篇文章将指导您如何在Ubuntu20.04上安装Python3.12......
  • [雅礼集训 2017 Day1]市场 题解
    题目链接题目分析听说是很典的一道题,很明显难点在于除法下取整的操作。类似花神那一道题,但是由于有区间加,所以无法进行暴力修改。很明显暴力复杂度爆炸,考虑下取整带来的性质:对于一对相邻的数,很明显有\(\lfloor\frac{x-1}{k}\rfloor\le\lfloor\frac{x}{k}\rfloor-1\)。......
  • 2024 最新 Navicat Premium 17.0.13 简体中文版(亲测可用)
    步骤如下:一、官网下载安装包:https://www.navicat.com.cn/download/navicat-premium  二、安装NavicatPremium17  注意:安装完后不要打开已打开自行退出三、补丁下载关注后发送“navicat17”即可获取补丁下载地址,无套路。 四、安装补丁先将下载下来的压缩包里面......
  • 南沙C++信奥赛老师解一本通题1217:棋盘问题
    ​ 【题目描述】在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放 kk 个棋子的所有可行的摆放方案 CC。【输入】输入含有多组测试数据。每组数据......
  • 2024-2025-1 20241417 《计算机基础与程序设计》第一周学习总结
    作业信息这个作业属于哪个课程<班级的链接>(如2024-2025-1-计算机基础与程序设计)这个作业要求在哪里2024-2025-1计算机基础与程序设计第一周作业这个作业的目标让我对本周所学了解的更为深刻,并总结不足作业正文...本博客链接教材学习内容总结1.学习了第一......
  • C语言 17 宏定义
    前面认识了#include指令,接着来看#define指令,它可以实现宏定义。宏是啥意思?把参数批量替换到文本中,这种实现通常称为宏(macro)或定义宏(definemacro)可以通过#define来定义宏,规则如下:#define宏名(记号)内容比如现在想通过宏定义一个PI:#definePI3.1415926这样就可以......
  • The 2023 ICPC Asia Jinan Regional Contest (The 2nd Universal Cup. Stage 17: Jina
    赛时4题,策略重大失误,g题思路假了但是以为是代码问题硬调3.5h,m题本来是可以过的,e是网络流说不定也能过呢。xixike大力平衡树直接打过k题省去思考双优先队列算法的时间,太强A观察到同级同形状括号如果有四个就一定可以交换顺序,而且是充要的,经典括号匹配用栈存储就过了,我代码比较丑......
  • java 警告:源发行版17 需要目标发行版17
    问题:在从网上复制的项目想要在本地部署,或者本地有多个jdk版本,在开启项目时容易出现jdk版本不一致的问题,导致项目不能运行起来。解决:解决这种问题主要时修改各个模块的jdk版本,使之一致。即确保以下几个地方的版本一致1、在ProjectStructure的Project下确保SDK和Languagel......
  • 学期2024-2025-1 学号 20241317 《计算机基础与程序设计》第1周学习总结
    这个作业属于哪个课程 https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP这个作业要求在哪里 https://www.cnblogs.com/rocedu/p/9577842.html#WEEK01这个作业的目标 1.基于VirtualBox虚拟机安装Ubuntu和安装Linux系统2.快速浏览一遍教材计算机科学概论(第七版),课本每章提......