当前位置: 首页 > news >正文

kubernets基础入门

        首先通过Kubernets架构图来认识Kubernets各个功能组件之间是怎么相互关联配合工作的。

一、Kubernets架构图:

通过上图来介绍集群功能组件通信详细过程:

     kubernetes api server 作为集群的核心,负责集群各功能模块之间的通信。集群内的各个功能模块通过API SERVER 将信息存入到etcd数据库中,同样想要获取和操作这些数据时,也是通过API SERVER的REST接口(GET、LIST、WATCH)来实现,从而实现各模块之间的交互。

  1. kubelet --> api server 如上图每个node节点每隔一个时间周期,就会调用一次API SERVER的REST接口来报告自身的状态,API SERVER 接收到这些信息之后,将节点信息更新到etcd数据库中。并且kubelet 还通过API SERVER 的WATCH接口监听Pod信息,如果监听到新的Pod副本被调用绑定到本节点,则执行pod对应的容器的创建与启动;如果监听到Pod的删除操作,则删除本节点相应的Pod容器;如果检测到修改操作,则kubelet会相应的修改本节点的Pod的容器。

  2. kube controller manager -- > api server 如上图 kube controller manager 中的node controller模块通过API SERVER模块提供的WATCH接口,实时监控node信息,并做相应的处理。

  3. schdeuler --> api server 当scheduler 通过api server 的WATCH接口监听到新建Pod副本的信息后,它会检索所有符合该Pod要求的node列表,开始执行Pod调度逻辑,调度成功后将Pod绑定到目标节点上。

 主节点主要包含以下组件:

        kubectl 是一个客户端的管理工具,直接管理API server,提供一个请求到一个api server,中间有一个auth认证(判断是否有权限访问),api 将信息存储到etcd数据库中,然后scheduler和controller-manager做各自的事情。

  1. API Server(k8s 提供的整个集群统一入口,提供了http RESTFUl api 的方式)
  2. scheduler :做集群节点的调度(调度器,根据调度算法绑定到指定的node上)
  3. contorller-manager: 负责任务(控制器)(另外一种解释:维持副本期望数目)
  4. etcd:键值对数据库,存储k8s集群的所有重要信息(存储的是持久化的数据)

 Node节点包含以下组件:

  1. kubelet:直接跟docker(容器引擎)进行交互实现容器的生命周期管理。
  2. kube-proxy:负责写入规则至iptables,IPVS实现服务映射访问。

 还有其他可添加组件说明:

  1. CoreDNS:可以为集群中的SVC创建一个域名ip的对应关系解析。(实现负载均衡的其中一项功能)
  2. Dashboard:给k8s集群提供一个B/S结构访问体系。
  3. ingress controller:官方只能提供四层代理,ingress提供七层代理。
  4. Federation:可以提供一个跨集群多k8s的统一管理功能。
  5. Prometheus:提供一个k8s集群监控平台。
  6. ELK:提供k8s一个日志分析平台。

 二、资源管理方式

2.1概述

1.命令式对象管理:直接通过命令的方式去操作kuberntes的资源

kubectl run nginx-pod --image=nginx:1.17.1 --port=80

2.命令式对象配置:通过命令配置和配置文件去操作 Kubernetes 的资源。

kubectl create/patch/delete -f nginx-pod.yaml

3.声明式对象配置:通过 apply 命令和配置文件去操作 Kubernetes 的资源。

kubectl apply -f nginx-pod.yaml

2.2命令式对象管理

2.2.1 kubectl 命令

  • kubectl 是 Kubernetes 集群的命令行工具,通过它能够对集群本身进行管理,并能够在集群上进行容器化应用的安装和部署。
  • kubectl 命令的语法如下: 
kubectl [command] [type] [name] [flags]
参数:
command:指定要对资源执行的操作,如:create、get 、delete 等。
type:指定资源的类型,如:deployment 、pod 、service 等。
name:指定资源的名称,名称大小写敏感。
flags:指定额外的可选参数。

2.2.2 常用命令

1.基本命令

命令翻译命令作用
create创建创建一个资源
edit编译编辑一个资源        
get获取获取一个资源
patch更新更新一个资源
delete删除删除一个资源
explain解释展示资源信息

2.运行与调试

命令翻译命令作用
run运行在集群中运行一个指定镜像
expose暴露暴露资源为Service
describe    描述显示内部资源详细信息
logs日志输入容器在Pod的日志
attach缠绕进入运行中的容器
exec执行执行容器中的一个命令
cp复制在Pod内外复制文件
rollout首次展示管理资源的发布
scale规模扩缩容Pod的数量
autoscale自动调整自动调整Pod的数量

3.高级命令

命令翻译命令作用
apply应用通过对文件对资源进行配置
label标签更新资源上的标签

4.其他命令

命令翻译命令作用
cluster-info        集群信息显示集群信息       
version版本显示当前Client与Server的版本

2.2.3资源类型

  Kubernetes 中所有的内容都抽象为资源,可以通过下面的命令进行查看:

kubectl api-resources

经常使用资源类型:

资源名称缩写资源作用
nodesno集群组成部分
namespacesns隔离Pod
Podspo加载容器
replicationcontrollersrc控制Pod资源控制器
replicasetsrs控制Pod资源控制器
deploymentsdeploy控制Pod资源控制器
daemonsetsds控制Pod资源控制器
jobs控制Pod资源控制器
cronjobscj控制Pod资源控制器
horizontalpodautoscalershpa控制Pod资源控制器
statefulsetssts控制Pod资源控制器
servicessvc统一Pod对外接口
ingressing统一Pod对外接口
persistentvolumeclaimspvc存储
persistentvolumespv存储
volumeattachments 存储
configmapscm配置
secrets配置

2.3 命令式对象配置

命令式对象配置就是通过命令配置和配置文件去操作 Kubernetes 的资源。

命令式对象配置的方式操作资源,可以简单的认为:命令 + yaml 配置文件(里面是命令需要的各种参数)。

比如创建一个nginx-pod.yaml文件,如下:

apiVersion: v1
kind: Namespace
metadata:name: dev
---
apiVersion: v1
kind: Pod
metadata:name: nginxpodnamespace: dev
spec:containers:- name: nginx-containersimage: nginx:1.17.1
  • 执行 create 命令,创建资源:
kubectl create -f nginxpod.yaml
  • 执行 get 命令,查看资源:
kubectl get -f nginxpod.yaml

  • 执行 delete 命令,删除资源:
kubectl delete -f nginxpod.yaml

2.4 声明式对象配置

声明式对象配置:通过 apply 命令和配置文件去操作 Kubernetes 的资源。

声明式对象配置和命令式对象配置类似,只不过它只有一个 apply 命令。

apply 命令相当于 create 命令和 patch 命令。

比如创建一个nginx-pod.yaml文件,如下:

apiVersion: v1
kind: Namespace
metadata:name: dev
---
apiVersion: v1
kind: Pod
metadata:name: nginxpodnamespace: dev
spec:containers:- name: nginx-containersimage: nginx:1.17.1
  • 执行 apply 命令:
kubectl apply -f nginxpod.yaml

2.5 总结

创建和更新资源使用声明式对象配置:kubectl apply -f xxx.yaml。

删除资源使用命令式对象配置:kubectl delete -f xxx.yaml。

查询资源使用命令式对象管理:kubectl get(describe) 资源名称。

相关文章:

kubernets基础入门

首先通过Kubernets架构图来认识Kubernets各个功能组件之间是怎么相互关联配合工作的。 一、Kubernets架构图: 通过上图来介绍集群功能组件通信详细过程: kubernetes api server 作为集群的核心,负责集群各功能模块之间的通信。集群内的各个功…...

【数据库初阶】MySQL数据类型

🎉博主首页: 有趣的中国人 🎉专栏首页: 数据库初阶 🎉其它专栏: C初阶 | C进阶 | 初阶数据结构 亲爱的小伙伴们,大家好!在这篇文章中,我们将深入浅出地为大家讲解 MySQL…...

(九千七-星河襟)椭圆曲线加密(ECC, Elliptic Curve Cryptography)及其例题

椭圆曲线加密(ECC)是一种基于椭圆曲线数学的公钥加密技术。它提供了一种高效的加密方法,能够在较小的密钥长度下实现与传统加密算法(如RSA)相同的安全级别。以下是ECC的主要特点和工作原理的总结: 1. 基本…...

LookingGlass使用

背景 Looking Glass 是一款开源应用程序,可以直接使用显卡直通的windows虚拟机。 常见环境是Linux hostwindows guest,基本部署结构图: 编译 git clone --recursive https://github.com/gnif/LookingGlass.git编译client mkdir client/b…...

ArcGIS Server 10.2授权文件过期处理

新的一年,arcgis server授权过期了,服务发不不了。查看ecp授权文件,原来的授权日期就到2024.12.31日。好吧,这里直接给出处理方法。 ArcGIS 10.2安装时,有的破解文件中会有含一个这样的注册程序,没有的话&…...

js es6 reduce函数, 通过规格生成sku

const specs [{ name: 颜色, values: [红色, 蓝色, 绿色] },{ name: 尺寸, values: [S, M, L] } ];function generateSKUs(specs) {return specs.reduce((acc, spec) > {const newAcc [];for (const combination of acc) {for (const value of spec.values) {newAcc.push(…...

Spring 事务底层原理

61 张图,剖析 Spring 事务,就是要钻到底! 拜托!面试请不要再问我 Transactional my: AOP Transactional PlatformTransactionManager:数据源隔离 TransactionInterceptor:拦截添加了注解的…...

ruoyi 分页 查询超出后还有数据; Mybatis-Plus 分页 超出后还有数据

修改:MybatisPlusConfig 类中 分页合理化修改为:paginationInnerInterceptor.setOverflow(false);...

基于Java的超级玛丽游戏的设计与实现【源码+文档+部署讲解】

目 录 1、绪论 1.1背景以及现状 1.2 Java语言的特点 1.3 系统运行环境及开发软件: 1.4 可行性的分析 1.4.1 技术可行性 1.4.2 经济可行性 1.4.3 操作可行性 2、 需求分析 2.1 用户需求分析 2.2功能需求分析 2.3界面设计需求分析…...

智慧工地信息管理与智能预警平台

建设背景与政策导向 智慧工地信息管理与智能预警平台的出现,源于工地管理面临的诸多挑战,如施工地点分散、危险区域多、监控手段落后等。随着政府对建筑产业现代化的积极推动,各地纷纷出台政策支持智慧工地的发展,旨在通过信息技…...

使用Apache Mahout制作 推荐引擎

目录 创建工程 基本概念 关键概念 基于用户与基于项目的分析 计算相似度的方法 协同过滤 基于内容的过滤 混合方法 创建一个推荐引擎 图书评分数据集 加载数据 从文件加载数据 从数据库加载数据 内存数据库 协同过滤 基于用户的过滤 基于项目的过滤 添加自定…...

记录:导出功能:接收文件流数据进行导出(vue3)

请求接口:一定要加responseType: blob 后端返回数据: api.js export function export() {return request({url: dev/api/export,method: get,responseType: blob,//一定要加}) } vue: import {export} from /api// 导出 const exportTab…...

GraphRAG vs 传统 RAG:如何通过知识图谱提升 AI 检索能力

相比传统 RAG 仅能独立检索文本片段的局限性,GraphRAG通过构建实体关系图谱实现了信息间的连接,让 AI 能更完整地理解和检索复杂的关联信息,从而生成更准确和连贯的回答 问题背景: 想象有一本详细记录某人(X)成就的传记,每个章节都描述了他的…...

问题清除指南|关于num_classes与 BCELoss、BCEWithLogitsLoss 和 CrossEntropyLoss 的关系

前言:关于「 num_classes 1 」引发的探究。 2024年尾声,学弟问到一个问题:在研究工作 CNNDetection 的github开源代码 networks/trainer.py 文件的 line 27 self.model resnet50(num_classes1) 中,变量 num_classes 的值为1&…...

组网实训实现

小型单元网络实现 IP划分: 外网:172.1.1.0/24 172.1.2.0/24 内网:基于192.168.3.0/24的子网划分 综合办公楼:192.168.3.00 000000 /26(192.168.3.0-192.168.3.63) 综合一楼:192.168.3.0000 0000 /28&…...

【DevOps】Jenkins部署

Jenkins部署 文章目录 Jenkins部署资源列表基础环境一、部署Gilab1.1、安装Gitlab1.2、修改配置文件1.3、加载配置文件1.4、访问Gitlab1.5、修改root登录密码1.6、创建demo测试项目1.7、上传代码1.8、验证上传的代码 二、部署Jenkins所需软件2.1、部署JDK2.2、部署Tomcat2.3、部…...

HTML——38.Span标签和字符实体

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>span标签和字符实体</title><style type"text/css">h1{text-align: center;}p{text-indent: 2em;}span{color: red;}</style></head><…...

doris:基于 Arrow Flight SQL 的高速数据传输链路

Doris 基于 Arrow Flight SQL 协议实现了高速数据链路&#xff0c;支持多种语言使用 SQL 从 Doris 高速读取大批量数据。 用途​ 从 Doris 加载大批量数据到其他组件&#xff0c;如 Python/Java/Spark/Flink&#xff0c;可以使用基于 Arrow Flight SQL 的 ADBC/JDBC 替代过去…...

文献阅读 | B. S. Carmo 2010

目录 一、文献名称二、原文地址三、ABSTRACT主要发现详细观察分岔分析雷诺数依赖性比较见解意义结论 四、IINTRODUCTION历史研究回顾计算研究近期研究进展研究空白与目的论文结构 一、文献名称 二、原文地址 研究目的&#xff1a;研究串列排列双圆柱体周围流场中的次级不稳定性…...

GRAPE——RLAIF微调VLA模型:通过偏好对齐提升机器人策略的泛化能力(含24年具身模型汇总)

前言 24年具身前沿模型大汇总 过去的这两年&#xff0c;工作之余&#xff0c;我狂写大模型与具身的文章&#xff0c;加之具身大火&#xff0c;每周都有各种朋友通过CSDN私我及我司「七月在线」寻求帮助/指导(当然&#xff0c;也欢迎各大开发团队与我司合作共同交付&#xff09…...

超越YOLO11!DEIM:先进的实时DETR目标检测

DEIM: DETR with Improved Matching for Fast Convergence arXiv: https://arxiv.org/abs/2412.04234 Project webpage&#xff1a;https://www.shihuahuang.cn/DEIM/ GitHub&#xff1a;https://github.com/ShihuaHuang95/DEIM 1 背景&#xff1a;DETR目标检测框架 目标检…...

django vue3实现大文件分段续传(断点续传)

前端环境准备及目录结构&#xff1a; npm create vue 并取名为big-file-upload-fontend 通过 npm i 安装以下内容"dependencies": {"axios": "^1.7.9","element-plus": "^2.9.1","js-sha256": "^0.11.0&quo…...

用户注册模块(芒果头条项目进度4)

1 创建⽤户模块⼦应⽤ 1.1 在项⽬包⽬录下 创建apps的python包。 1.2 在apps包下 创建应⽤userapp $ cd 项⽬包⽬录/apps $ python ../../manage.py startapp userapp 1.3 配置导包路径 默认情况下导包路径指向项⽬根⽬录 # 通过下⾯语句可以打印当前导包路径 print(sys.pa…...

Java Map集合、集合的嵌套

一. 概述 1. Map集合称为双列集合&#xff0c;格式&#xff1a;{key1value1, key2value2,.....},一次需要存一对数据作为一个元素。 2. Map集合的每个元素"keyvalue"称为一个键值对/键值对对象/一个Entry对象&#xff0c;Map集合也被称为"键值对集合"。 3.…...

C#中使用系统默认应用程序打开文件

有时您可能希望程序使用默认应用程序打开文件。 例如&#xff0c;您可能希望显示 PDF 文件、网页或互联网上的 URL。 System.Diagnostics.Process类的Start方法启动系统与文件关联的应用程序。 例如&#xff0c;如果文件扩展名为.txt&#xff0c;则系统会在 NotePad、WordPa…...

论文泛读《LPFHE: Low-Complexity Polynomial CNNs for Secure Inference over FHE》

文章目录 1、摘要2、介绍3、文章结构4、总结 1、摘要 Machine learning as a service (MLaaS) 在客户中越来越受欢迎。为了解决 MLaaS 中的隐私问题&#xff0c;引入了 FHE 来保护客户端的数据。  然而&#xff0c;FHE 不能直接评估 卷积神经网络 (CNNs) 中的非算数激活函数。…...

基于Spring Boot的IT技术交流和分享平台的设计与实现源码

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的IT技术交流和分享平台的设计与实现。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 基于S…...

力扣hot100——二分查找

35. 搜索插入位置 class Solution { public:int searchInsert(vector<int>& a, int x) {if (a[0] > x) return 0;int l 0, r a.size() - 1;while (l < r) {int mid (l r 1) / 2;if (a[mid] < x) l mid;else r mid - 1;}if (a[l] x) return l;else …...

1月第一讲:WxPython跨平台开发框架之前后端结合实现附件信息的上传及管理

1、功能描述和界面 前端&#xff08;wxPython GUI&#xff09;&#xff1a; 提供文件选择、显示文件列表的界面。支持上传、删除和下载附件。展示上传状态和附件信息&#xff08;如文件名、大小、上传时间&#xff09;。后端&#xff08;REST API 服务&#xff09;&#xff1a…...

uniapp:跳转第三方地图

1.跳转第三方高德地图 //跳转地图 toMap(item){uni.navigateTo({url: (window.location.href https://uri.amap.com/navigation?to${item.lng},${item.lat},${item.shopName}&modecar&policy1&srchttps://gawl.gazhcs.com/wap/index.html&callnative0)}) },…...

源码理解 UE4中的 FCookStatsManager::FAutoRegisterCallback RegisterCookStats

官方文档&#xff1a;https://dev.epicgames.com/documentation/zh-cn/unreal-engine/API/Runtime/Core/ProfilingDebugging/FCookStatsManager文档中的注释&#xff1a; When a cook a complete that is configured to use stats (ENABLE_COOK_STATS), it will broadcast this…...

QML Text详解

1. 概述 Text 是 QML 中用来显示文本的基本组件。它可以用于创建静态的标签、标题、说明文字等&#xff0c;支持多种文本格式、样式、颜色、对齐方式等配置。Text 组件也支持动态文本内容的显示&#xff0c;可以通过绑定数据源来实时更新文本内容。 Text 组件非常灵活&#x…...

详细讲一下Prettier对我们日常开发的作用,以及详细用法

1.什么是 Prettier&#xff1f; // Prettier 是代码格式化工具&#xff0c;它可以自动调整代码格式 // 比如把这样的代码&#xff1a; function foo ( a, b ){ return ab; }// 自动格式化成这样&#xff1a; function foo(a, b) {return a b; } 2.基础配置详解 {// 控制…...

多模态论文笔记——Coca

大家好&#xff0c;这里是好评笔记&#xff0c;公主号&#xff1a;Goodnote&#xff0c;专栏文章私信限时Free。本文详细介绍多模态模型Coca&#xff0c;在DALLE 3中使用其作为captioner基准模型的原因和优势。 文章目录 ALBEF论文模型结构组成训练目标 CoCa​论文模型结构CoCa…...

24年无人机行业资讯 | 12.23-12.29

24年无人机行业资讯 | 12.23-12.29 1、 国家发改委新设低空经济司&#xff0c;助力低空经济规范发展2、商务部支持无人机民用国际贸易&#xff0c;强调出口管制与安全并重3、滨州高新区首架无人机成功下线4、 2025第九届世界无人机大会筹备推进会顺利召开5、2024年世界无人机竞…...

我们公司只有3个人,一个前端,一个后端

在当今这个数字化时代&#xff0c;各行各业都离不开互联网技术的支撑&#xff0c;而在这股技术浪潮中&#xff0c;小而美的创业公司如同雨后春笋般涌现&#xff0c;它们凭借着灵活高效、创新不断的特点&#xff0c;在市场中占有一席之地。 今天&#xff0c;就让我带你走进这样一…...

golang后台框架总结

gin [golang]gin框架接收websocket通信 - 花酒锄作田 - 博客园 golang Gin实现websocket_golang gin websocket-CSDN博客 ws测试: Websocket测试-Websocket在线测试-Websocket模拟请求工具 vmware下载: VMware16安装包详细安装教程_vmware16下载-CSDN博客...

Elasticsearch分片数量是什么意思?

Elasticsearch中的分片&#xff08;Shard&#xff09;数量是一个重要概念&#xff0c;以下为你详细介绍它的含义及相关要点&#xff1a; ### 定义 分片是Elasticsearch将索引数据进行拆分的基本单元。简单来说&#xff0c;Elasticsearch会把一个索引的数据分割成多个较小的部分…...

BerOS 文件系统路径归一化问题及其 Python 实现

题目背景 本文将讨论一道与操作系统路径归一化有关的问题&#xff0c;该问题来自 BerOS 文件系统 的设计。BerOS 是一个新型操作系统&#xff0c;其文件路径系统允许路径中的分隔符 / 重复出现。例如&#xff0c;以下路径被视为等价的&#xff1a; /usr//local//nginx/sbin//…...

【微服务】1、引入;注册中心;OpenFeign

微服务技术学习引入 - 微服务自2016年起搜索指数持续增长&#xff0c;已成为企业开发大型项目的必备技术&#xff0c;中高级java工程师招聘多要求熟悉微服务相关技术。微服务架构介绍 概念&#xff1a;微服务是一种软件架构风格&#xff0c;以专注于单一职责的多个响应项目为基…...

SQL Server 数据库 忘记密码

1、先用windows 身份验证 连接 2、安全性--登录名 3、设置 身份验证 4、重启电脑 5、登录 登陆成功!!! ------------------------------------------------------------------ --1、查询登录账号信息 ------------------------------------------------------------------ -- …...

Tableau数据可视化与仪表盘搭建-安装教程

下载 tableau.com/zh-cn/support/releases 滚动到最下方的下载 在下载的同时 我们点击登录&#xff0c;去注册一个tableau的账号 下面点击我们下载好的tableau安装程序 不要自定义安装&#xff0c;会有路径问题 点击试用14天 点击激活 激活学生 tableau.com/zh-cn/academic…...

UGUI 优化DrawCall操作记录(基于Unity2021.3.18)

UGUI中相同材质相同Shader相同贴图的UI元素可以合并DrawCall。 1.使用图集 Unity性能优化---使用SpriteAtlas创建图集进行批次优化_unity2021.3.33 spriteatlas优化-CSDN博客 2.Canvas的子物体在场景树中的索引位置和不同图集不影响UI合批且UI网格没有重叠&#xff0c;如下图…...

DeepSeek v3为何爆火?如何用其集成Milvus搭建RAG?

最近&#xff0c;DeepSeek v3&#xff08;一个MoE模型&#xff0c;拥有671B参数&#xff0c;其中37B参数被激活&#xff09;模型全球爆火。 作为一款能与Claude 3.5 Sonnet&#xff0c;GPT-4o等模型匹敌的开源模型DeepSeek v3不仅将其算法开源&#xff0c;还放出一份扎实的技术…...

网络编程原理:回显服务器与客户端通信交互功能

文章目录 路由器及网络概念网络通信基础TCP/IP 五层协议封装和分用封装分用 网络编程&#xff08;网络协议&#xff09;UDP类 API使用实现回显通信程序回显服务器(UDP代码)回显客户端(UDP代码) TCP API使用回显服务器(TCP代码)回显客户端(TCP代码) 路由器及网络概念 网络发展是…...

#渗透测试#漏洞挖掘#WAF分类及绕过思路

免责声明 本教程仅为合法的教学目的而准备&#xff0c;严禁用于任何形式的违法犯罪活动及其他商业行为&#xff0c;在使用本教程前&#xff0c;您应确保该行为符合当地的法律法规&#xff0c;继续阅读即表示您需自行承担所有操作的后果&#xff0c;如有异议&#xff0c;请立即停…...

西安电子科技大学初/复试笔试、面试、机试成绩占比

西安电子科技大学初/复试笔试、面试、机试成绩占比 01通信工程学院 02电子工程学院 03计算机科学与技术学院 04机电工程学院 06经济与管理学院 07数学与统计学院 08人文学院 09外国语学院 12生命科学与技术学院 13空间科学与技术学院 14先进材料与纳米科技学院 15网络与信息安…...

【Python学习(六)——While、for、循环控制、指数爆炸】

Python学习&#xff08;六&#xff09;——While、for、循环控制、指数爆炸 本文介绍了While、for、循环控制、指数爆炸&#xff0c;仅作为本人学习时记录&#xff0c;感兴趣的初学者可以一起看看&#xff0c;欢迎评论区讨论&#xff0c;一起加油鸭~~~ 心中默念&#xff1a;Py…...

中间件自动化测试框架cmdlinker

背景 作为一个中间件的测试工程师&#xff0c;如何对于中间件提供的命令进行自动化的回归&#xff0c;这一直是一个难题&#xff0c;市面上好像缺乏了对于命令进行自动化回归的合理解决方案。 常见方式有下面两种&#xff1a; 直接写字符串的命令&#xff0c;然后使用各种编程…...

写一个类模板三个模板参数K,V,M,参数是函数(函数参数、lambda传参、函数指针)

cal是类的成员函数。cal的3个入参是func1(K&#xff09;&#xff0c;func2&#xff08;K&#xff0c;V&#xff09;&#xff0c;func3(K&#xff0c;V&#xff0c;M)&#xff0c;请写出cal&#xff0c;并在main函数中调用cal 在您给出的要求中&#xff0c;cal成员函数并不直接…...