k8s,声明式API对象理解
命令式API
比如:
先kubectl create,再replace的操作,我们称为命令式配置文件操作
kubectl replace的执行过程,是使用新的YAML文件中的API对象,替换原有的API对象;而kubectl apply,则是执行了一个对原有API对象的PATCH操作。
kube-apiserver在响应命令式请求(比如,kubectl replace)的时候,一次只能处理一个写请求,否则会有产生冲突的可能。而对于声明式请求(比如,kubectl apply),一次能处理多个写操作,并且具备Merge能力。
什么是API对象
要快速掌握 Kubernetes (k8s) 中 API 对象的核心知识,以下是最重要的20%,这将帮助你理解和操作80%的 k8s 功能:
-
API对象的概念:
- API对象是 k8s 集群中的
管理操作单元
,每支持一项新功能,就会引入对应的API对象。 - API对象具有三大类属性:
元数据(metadata)、规范(spec)和状态(status)
。- 元数据(metadata):用于标识API对象,包括namespace、name和uid,以及用于匹配不同对象的标签(labels)。
- 规范(spec):描述对象的
期望状态
(Desired State),即用户希望对象所具有的特征。 - 状态(status):描述对象的
实际状态
(Actual State),由 Kubernetes 系统提供和更新。
- API对象是 k8s 集群中的
-
API对象的管理方式:
- 使用
kubectl
工具,可以通过命令式命令、命令式对象配置和声明式对象配置三种方式管理API对象。
- 使用
-
标签(Label)和选择器(Selector):
- 标签是识别 Kubernetes 对象的标签,以 key/value 的方式附加到对象上。
- 选择器用于选择具有特定标签的一组对象。
-
API 组和版本:
- Kubernetes API 遵循 OpenAPI 规范,并以端点
/openapi/v2
提供 API 规范。 - API 组和版本是 Kubernetes API 的重要概念,不同的功能模块被划分为不同的 API 组。
- Kubernetes API 遵循 OpenAPI 规范,并以端点
-
核心API对象:
- Pod:k8s中的基本部署单元,可以包含一个或多个容器。
- Node:k8s中的工作节点,负责运行Pod。
- Master:集群控制节点,负责整个集群的管理和控制。
- Deployment:用于描述应用的部署状态,包括应用的副本数、更新策略等。
- Service:定义了一种访问Pod的方式,可以是ClusterIP、NodePort、LoadBalancer等。
-
API 交互:
- Kubernetes 支持
application/json
和application/yaml
媒体类型用于请求和响应。 - 客户端可以通过设置
Accept
头部来请求服务器以表格形式返回对象。
- Kubernetes 支持
掌握这些核心概念和操作,将为你在 Kubernetes 中管理复杂的应用和服务打下坚实的基础。
Istio项目
-
困难
当一个Pod或者任何一个API对象被提交给APIServer之后,总有一些“初始化”性质的工作需要在它们被Kubernetes项目正式处理之前进行。比如,自动为所有Pod加上某些标签
“初始化”操作的实现,借助的是一个叫作Admission的功能。它其实是Kubernetes项目里一组被称为Admission Controller的代码,可以选择性地被编译进APIServer中,在API对象创建之后会被立刻调用到
如果你现在想要添加一些自己的规则到Admission Controller,就会比较困难。因为,这要求重新编译并重启APIServer -
Istio流程
在它对应的API对象里自动加上Envoy容器的配置
编写一个用来为Pod“自动注入”Envoy容器的Initializer
ConfigMap的data部分,正是一个Pod对象的一部分定义
Initializer要做的工作,就是把这部分Envoy相关的字段,自动添加到用户提交的Pod的API对象
在Initializer更新用户的Pod对象的时候,必须使用PATCH API来完成
Istio将一个编写好的Initializer,作为一个Pod部署在Kubernetes中
事先编写好的“自定义控制器”(Custom Controller)
Kubernetes还允许你通过配置,来指定要对什么样的资源进行这个Initialize操作:InitializerConfiguration
这也就意味着,当你在Initializer里完成了要做的操作后,一定要记得将这个metadata.initializers.pending标志清除掉。这一点,你在编写Initializer代码的时候一定要非常注意
相关文章:
k8s,声明式API对象理解
命令式API 比如: 先kubectl create,再replace的操作,我们称为命令式配置文件操作 kubectl replace的执行过程,是使用新的YAML文件中的API对象,替换原有的API对象;而kubectl apply,则是执行了一…...
【人工智能】用Python和Scikit-learn构建集成学习模型:提升分类性能
《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 集成学习(Ensemble Learning)是通过组合多个弱学习器提升模型性能的机器学习方法,广泛应用于分类、回归及其他复杂任务中。随机森林(Random Forest)和梯度提升(Gradient Boosting)是集成学习的两种…...
MSBUILD : error MSB1009: 项目文件不存在。
环境:win10 vscode1.95.3 clang15.0.4 问题:最近用vscodecmakeclang在windows上编译c项目,用mingw32不报错,用clang报错,错误如下, MSBUILD : error MSB1009: 项目文件不存在。 原因:与其他生成器(如Mak…...
洛谷P1827 [USACO3.4] 美国血统 American Heritage(c嘎嘎)
题目链接:P1827 [USACO3.4] 美国血统 American Heritage - 洛谷 | 计算机科学教育新生态 题目难度:普及 首先介绍下二叉树的遍历: 学过数据结构都知道二叉树有三种遍历: 1.前序遍历:根左右 2.中序遍历:左根…...
YOLOv8模型pytorch格式转为onnx格式
一、YOLOv8的Pytorch网络结构 model DetectionModel((model): Sequential((0): Conv((conv): Conv2d(3, 64, kernel_size(3, 3), stride(2, 2), padding(1, 1))(act): SiLU(inplaceTrue))(1): Conv((conv): Conv2d(64, 128, kernel_size(3, 3), stride(2, 2), padding(1, 1))(a…...
工业—使用Flink处理Kafka中的数据_ProduceRecord1
1 、 使用 Flink 消费 Kafka 中 ProduceRecord 主题的数据,统计在已经检验的产品中,各设备每 5 分钟 生产产品总数,将结果存入Redis 中, key 值为 “totalproduce” , value 值为 “ 设备 id ,最近五分钟生…...
RNACOS:用Rust实现的Nacos服务
RNACOS是一个使用Rust语言开发的Nacos服务实现,它继承了Nacos的所有核心功能,并在此基础上进行了优化和改进。作为一个轻量级、快速、稳定且高性能的服务,RNACOS不仅包含了注册中心、配置中心和Web管理控制台的功能,还支持单机和集…...
响应式编程一、Reactor核心
目录 一、前置知识1、Lambda表达式2、函数式接口 Function3、StreamAPI4、Reactive-Stream1)几个实际的问题2)Reactive-Stream是什么?3)核心接口4)处理器 Processor5)总结 二、Reactor核心1、Reactor1&…...
聚簇索引与非聚簇索引
目录 一、聚簇索引(Clustered Index) 二、非聚簇索引(Non-Clustered Index) 三、示例说明 一、聚簇索引(Clustered Index) 定义: 聚簇索引是一种将数据存储和索引合为一体的索引方式。 表中…...
鸿蒙 Next 可兼容运行 Android App,还支持出海 GMS?
最近 「出境易」和 「卓易通」 应该算是鸿蒙和 Android 开发圈“突如其来”的热门话题,而 「出境易」可能更高频一些,主要也是 Next 5.0 被大家发现刚上架了一个名为「出境易」的应用,通过这个 App 用户可以直接运行不兼容 Next 的 Android A…...
opencv常用图像处理操作
OpenCV 处理图像的通用流程通常包括以下几个步骤,根据具体需求可以调整或跳过某些步骤。以下是一个通用的框架: 读取图像 加载图像文件到内存中以进行后续处理。 import cv2 读取图像 image cv2.imread(‘image.jpg’) # 彩色图像 gray_image cv2…...
<三>51单片机PWM开发SG90和超声测距
目录 1,PWM开发SG90 1.1简介 1.2控制舵机 1.3编程实现 2,超声测距 2.1简介 2.2,超声波测距代码实现 1,PWM开发SG90 1.1简介 PWM,英文名Pulse Width Modulation,是脉冲宽度调制缩写,它是通过对一系列脉冲的宽度进 行调制,等…...
如何加强游戏安全,防止定制外挂影响游戏公平性
在现如今的游戏环境中,外挂始终是一个困扰玩家和开发者的问题。尤其是定制挂(Customized Cheats),它不仅复杂且隐蔽,更能针对性地绕过传统的反作弊系统,对游戏安全带来极大威胁。定制挂通常是根据玩家的需求…...
《矿物学报》
1 简介 《矿物学报》由中国科学院地球化学研究所和中国矿物岩石地球化学学会联合主办,1981年创刊,目前是双月刊,国内外公开发行。主要报道矿物学及相关学科的高水平研究成果,矿物学研究的现状综述和动态分析,以及国内…...
如何将快捷指令添加到启动台
如何将快捷指令添加到启动台/Finder/访达(Mac) 1. 打开快捷指令创建快捷指令 示例创建了一个文件操作测试的快捷指令。 2. 右键选择添加到程序坞 鼠标放在待添加的快捷指令上。 3. 右键添加到访达 鼠标放在待添加的快捷指令上。 之后就可以在启…...
Python NumPy学习指南:从入门到精通
Python NumPy学习指南:从入门到精通 第一部分:NumPy简介与安装 1. 什么是NumPy? NumPy,即Numerical Python,是Python中最为常用的科学计算库之一。它提供了强大的多维数组对象ndarray,并支持大量的数学函…...
rabbitmq 安装延时队列插件rabbitmq_delayer_message_exchange(linux centOS 7)
1.插件版本 插件地址:Community Plugins | RabbitMQ rabbitmq插件需要对应的版本,根据插件地址找到插件 rabbitmq_delayer_message_exchange 点击Releases 因为我rabbitmq客户端显示的版本是: 所以我选择插件版本是: 下载 .ez文…...
【C++】new与malloc、三种传参、函数重载及内联函数
一、new-delete以及malloc-freequbie 1.new: (1)运算符,没有返回值概念,但开出来空间有类型,不需要设置大小 (2)可以在堆区动态开辟空间,并且可以默认执…...
C语言实例_23之计算阶乘和(5!+4!+…+1!)
1. 题目 计算阶乘和(5! 4! … 1!),即先分别计算出从1到5每个数的阶乘,再将这些阶乘值进行累加求和。 2. 阶乘概念及分析 实现主要是迭代和递归: - 迭代实现思路: - 可以通过两层循环来实现,外层循环控制数字从5到…...
zotero中pdf-translate插件和其他插件的安装
1.工具–》插件 2.找插件 3.点击之后看到一堆插件 4.找到需要的,例如pdf-translate 5.点击进入,需要看一下md文档了解下,其实最重要的就是找到特有的(.xpi file) 6.点击刚刚的蓝色链接 7.下载并保存xpi文件 8.回到zotero,安装并使…...
【Linux系统编程】——理解冯诺依曼体系结构
文章目录 冯诺依曼体系结构硬件当代计算机是性价比的产物冯诺依曼的存储冯诺依曼的数据流动步骤冯诺依曼结构总结 冯诺依曼体系结构硬件 下面是整个冯诺依曼体系结构 冯诺依曼结构(Von Neumann Architecture)是现代计算机的基本结构之一,由数…...
C++中实现多态有几种方式
一)虚函数(Virtual Functions)实现多态 概念: 虚函数是在基类中使用关键字virtual声明的成员函数。当一个类包含虚函数时,编译器会为该类创建一个虚函数表(v - table),这个表存储了虚…...
WPF+MVVM案例实战与特效(三十四)- 日志管理:使用 log4net 实现高效日志记录
文章目录 1、概述2、日志案例实现1、LogHelper 类详解2、代码解释3、配置文件4、实际应用案例场景 1:记录系统运行日志场景 2:记录数据库操作日志场景 3:记录 HTTP 请求日志5、总结1、概述 在WPF软件开发中,良好的日志记录机制对于系统的调试、维护和性能优化至关重要。lo…...
AI与低代码技术融合:如何加速企业智能化应用开发?
引言 随着全球数字化转型的步伐加快,企业在智能化应用开发方面面临着前所未有的挑战和机遇。传统的软件开发方式往往需要大量的技术人员、时间和资源,而在瞬息万变的市场环境中,这种模式显得效率低下且难以满足企业快速迭代和创新的需求。 与…...
git常用操作
通过分支src_br开发合并代码 在remote网页端从master分支创建一个src_br(master为合并代码的target分支)本地git仓库更新代码 git pull 切换到src_br分支 git checkout src_br 同步master分支的代码 git rebase master or git merge master or git cherry-pick commit-id…...
DVWA 靶场 SQL 注入报错 Illegal mix of collations for operation ‘UNION‘ 的解决方案
在 dvwa 靶场进行联合 SQL 注入时,遇到报错 Illegal mix of collations for operation UNION报错如下图: 解决办法: 找到文件MySQL.php 大致位置在dvwaincludesDBMS 目录下 使用编辑器打开 检索$create_db 第一个就是 在{$_DVWA[ ‘db_d…...
单片机的基本构成与工作原理
单片机,即微控制器(Microcontroller Unit,MCU),是一种将中央处理器(CPU)、存储器(ROM/RAM)、定时/计数器(Timer/Counter)、中断系统、输入输出(I/O)接口等集成在一块芯片上的微型计算机。它具有体积小、功耗低、成本低…...
qt QSettings详解
1、概述 QSettings是Qt框架中用于应用程序配置和持久化数据的一个类。它提供了一种便捷的方式来存储和读取应用程序的设置,如窗口大小、位置、用户偏好等。QSettings支持多种存储格式,包括INI文件、Windows注册表(仅限Windows平台࿰…...
微信小程序全屏显示地图
微信小程序在界面上显示地图,只需要用map标签 <map longitude"经度度数" latitude"纬度度数"></map>例如北京的经纬度为:116.407004,39.904595 <map class"bgMap" longitude"116.407004" lati…...
【Linux课程学习】:文件第二弹---理解一切皆文件,缓存区
🎁个人主页:我们的五年 🔍系列专栏:Linux课程学习 🌷追光的人,终会万丈光芒 🎉欢迎大家点赞👍评论📝收藏⭐文章 Linux学习笔记: https://blog.csdn.net/d…...
浅谈CI持续集成
1.什么是持续集成 持续集成(Continuous Integration)(CI)是一种软件开发实践,团队成员频繁地将他们的工作成果集成到一起(通常每人每天至少提交一次,这样每天就会有多次集成),并且在每次提交后…...
微信创建小程序码 - 数量不受限制
获取小程序码:小程序码为圆图,且不受数量限制。 目录 文档 接口地址 请求方式 功能描述 注意事项 获取 scene 值 请求参数 返回参数 对接 请求方法 获取小程序码 调用获取小程序码 总结 文档 接口地址 https://api.weixin.qq.com/wxa/get…...
基于 Elasticsearch Completion Suggester 实现高效搜索智能提示
1. 引言 在现代搜索引擎中,搜索智能提示已成为提升用户体验的重要功能之一。无论是电商网站、内容管理平台,还是社交媒体应用,智能提示都能帮助用户快速输入关键字、发现相关内容,并减少拼写错误带来的困扰。 1.1 什么是搜索智能…...
框架建设实战1——创建frame-parent
结合框架的结构,首先我们创建所以使用框架的parent,用以自顶向下的框架组件管理。 本框架基于maven进行依赖管理。具体步骤如下: 1.创建一个module 创建一个maven工程。命名为frame-parent。只有一个pom文件。文件内容主要包含:…...
Qt 安装Qt Serial Port
最近要用Qt写个串口上位机软件,发现Qt的串口库用不了,上网找了一下资料,找到一种解决办法,具体操作如下: 参考文章:https 目录 一、找到QT安装路径,并运行Qt Maintenance Tool二、选择 添加或移…...
GPS模块/SATES-ST91Z8LR:电路搭建;直接用电脑的USB转串口进行通讯;模组上报定位数据转换地图识别的坐标手动查询地图位置
从事嵌入式单片机的工作算是符合我个人兴趣爱好的,当面对一个新的芯片我即想把芯片尽快搞懂完成项目赚钱,也想着能够把自己遇到的坑和注意事项记录下来,即方便自己后面查阅也可以分享给大家,这是一种冲动,但是这个或许并不是原厂希望的,尽管这样有可能会牺牲一些时间也有哪天原…...
Vue Web开发(一)
1. 环境配置 1.1. 开发工具下载 1.1.1. HbuilderX 官网地址:https://uniapp.dcloud.net.cn/ 1.1.2. Visual Studio Code 官网地址:https://code.visualstudio.com/Download 1.1.3. Node环境 官网地址:https://nodejs.cn/ 正常软件安装…...
帮我写一篇关于AI搜索网页上编写的文章是否存在版权问题的文章, 字数在 3000 字左右。文心一言提问, 记录后用.
AI搜索网页上编写的文章是否存在版权问题? 在当今科技飞速发展的时代,AI搜索工具如雨后春笋般涌现,为人们获取信息提供了极大的便利。然而,随之而来的问题是,AI搜索案例中常常出现很多内容缺乏依据,这引发…...
物联网智能项目如何实现设备高效互联与数据处理?
一、硬件(Hardware) 设备互联的基础,涵盖传感器、执行器、网关和边缘计算设备。 传感器与执行器 功能: 采集环境数据(如温度、湿度、运动等)并执行控制命令。优化方向: 低功耗、高精度传感器以…...
《地球化学》
《地球化学》主要报道近代地球化学, 特别是其主要分支学科, 如岩石地球化学、元素地球化学、有机地球化学、环境地球化学、矿床地球化学、实验地球化学、生物地球化学、天体化学、计算地球化学、分析地球化学、海洋地球化学、沉积地球化学、纳米地球化学、油气地球化学和同位素…...
UE5 C++ 不规则按钮识别,复选框不规则识别 UPIrregularWidgets
插件名称:UPIrregularWidgets 插件包含以下功能 你可以点击任何图片,而不仅限于矩形图片。 UPButton、UPCheckbox 基于原始的 Button、Checkbox 扩展。 复选框增加了不规则图像识别功能,复选框增加了悬停事件。 欢迎来到我的博客 记录学习过…...
南京邮电大学《2024年812自动控制原理真题》 (完整版)
本文内容,全部选自自动化考研联盟的:《南京邮电大学812自控考研资料》的真题篇。后续会持续更新更多学校,更多年份的真题,记得关注哦~ 目录 2024年真题 Part1:2024年完整版真题 2024年真题...
LobeChat-46.6k星!顶级AI工具集,一键部署,界面美观易用,ApiSmart 是你肉身体验学习LLM 最好IDEA 工具
LobeChat LobeChat的开源,把AI功能集合到一起,真的太爽了。 我第一次发现LobeChat的时候,就是看到那炫酷的页面,这么强的前端真的是在秀肌肉啊! 看下它的官网,整个网站的动效简直闪瞎我! GitH…...
期权懂|场内个股期权开户流程有哪些?
期权小懂每日分享期权知识,帮助期权新手及时有效地掌握即市趋势与新资讯! 场内个股期权开户流程有哪些? 场内个股期权开户第一步开户: 投资者首先需要在具有期权交易资格的证券公司开立期权账户。 场内个股期权开户第二步选…...
解决python 使用pip 安装模块时遇到的错误SSL: CERTIFICATE_VERIFY_FAILED
最近有一个使用python 2.7.* 使用requests模块的需求,在安装的过程中遇到了一个问题,在这里分享给大家! 安装requests命令如下 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests 遗憾的是,报错了 Collecting requests …...
智慧银行反欺诈大数据管控平台方案(四)
智慧银行反欺诈大数据管控平台的核心内容,是通过整合多维度、多层次的金融交易信息,利用先进的大数据分析、机器学习与人工智能算法,构建一个系统性、实时性和智能化的反欺诈管控网络,旨在提供全面、高效、精准的风险评估机制。该…...
前端项目开发 如何解决 error ‘val‘ is not defined no-undef 问题?
在前端开发中,error val is not defined no-undef 是 ESLint 报出的错误,表示在代码中使用了未定义的变量 val,但是 ESLint 没有找到它的声明。为了解决这个问题,通常有以下几种方法: 1. 检查变量是否正确声明 最常见…...
C++面试突破---C/C++基础
1.C特点 1. C在C语言基础上引入了面对对象的机制,同时也兼容C语言。 2. C有三大特性(1)封装。(2)继承。(3)多态; 3. C语言编写出的程序结构清晰、易于扩充,程序可读性好。…...
【Vue】Scoped、组件间通信、Props检验
目录 Scoped 作用 *原理 组件通信 前置知识 什么是组件通信 为什么需要组件通信 如何进行组件通信 如何辨别两个组件的关系 父子组件通信 父传子 子传父 非父子组件通信 祖先传后代 语法 任意两个组件通信 步骤 Props校验 props是什么 作用 语法 组件的…...
2022 年 9 月青少年软编等考 C 语言三级真题解析
目录 T1. 课程冲突T2. 42 点思路分析T3. 最长下坡思路分析T4. 吃糖果思路分析T5. 放苹果思路分析T1. 课程冲突 此题为 2021 年 9 月三级第一题原题,见 2021 年 9 月青少年软编等考 C 语言三级真题解析中的 T1。 T2. 42 点 42 42 42 是: 组合数学上的第 5 5 5 个卡特兰数字…...