Kubernetes控制平面组件:Kubernetes如何使用etcd
云原生学习路线导航页(持续更新中)
- kubernetes学习系列快捷链接
- Kubernetes架构原则和对象设计(一)
- Kubernetes架构原则和对象设计(二)
- Kubernetes架构原则和对象设计(三)
- Kubernetes控制平面组件:etcd(一)
- Kubernetes控制平面组件:etcd(二)
- Kubernetes控制平面组件:etcd常用配置参数
- Kubernetes控制平面组件:etcd高可用集群搭建
- Kubernetes控制平面组件:etcd高可用解决方案
- kubectl 和 kubeconfig 基本原理
- kubeadm 升级 k8s集群 1.17到1.20
- Kubernetes常见问题解答
- 查看云机器的一些常用配置
本文主要对etcd在kubernetes中的应用进行介绍,包括二者的关系、kubernetes对象存储路径、二者如何交互、生产环境如何部署、最佳实践 以及 一些故障案例分析
1.ETCD 与 Kubernetes 的关系
1.1.ETCD 是 Kubernetes的 默认存储后端
- 默认后端:ETCD 是 Kubernetes 默认的存储后端
- 对象映射:
- Kubernetes 中每个对象都有对应的 storage.go 实现与 ETCD 的交互逻辑(增删改查)
- 比如 Pod 的
pkg/registry/core/pod/storage/storage.go
- CRD:API Server 根据 CRD 定义自动生成对应的 REST endpoint,统一存储接口 复用 apiserver/pkg/registry/generic/registry/store.go 的通用存储实现
// 伪代码展示存储注册过程 crdStorage := registry.NewREST(scheme, opts) apiGroupInfo.VersionedResourcesStorageMap["v1"] = map[string]rest.Storage{"customresources": crdStorage, }
- 能否替换kubernetes的后端存储
- 重写 storage 层成本极高
- 推荐优化 ETCD 底层存储(如更换 BoltDB)
1.2.ETCD在Kubernetes集群中的位置
- etcd属于 Kubernetes集群的 管控组件,apiserver是唯一与其交互的组件
2.API Server 在 ETCD 中对象存储路径
- Key 结构:
/registry/<对象类型>/<namespace>/<name># 示例 etcdctl get /registry/pods/default/myapp-pod
- 历史特性:
- 早期版本的 selfLink 字段与 ETCD key 路径一致
- 新版本已弃用该字段
- 特殊目录说明
/registry
:Kubernetes 主数据目录/events
:事件数据(可分离存储)
3.API Server 与 ETCD 的交互
3.1.连接配置
- apiserver 启动参数-关于etcd的连接配置参数:
# API Server 启动参数示例 --etcd-servers=https://etcd1:2379,https://etcd2:2379 --etcd-cafile=/etc/kubernetes/pki/etcd/ca.crt --etcd-certfile=/etc/kubernetes/pki/apiserver-etcd-client.crt --etcd-keyfile=/etc/kubernetes/pki/apiserver-etcd-client.key
- API Server 对 ETCD 的健康检查演进:
- 早期:通过端口探活的简单检测,但端口存活不代表etcd一定可用。不准确
- 现在:通过调用 ETCD 健康检查 API。准确
3.2.API Server 对 多 ETCD 实例支持
3.2.1.什么是 多ETCD的支持?
- 如果其他组件也想用ETCD,怎么办?
- 可以自己再启动一个,不要使用管控端的etcd,只要保证端口不冲突即可
- 防止有问题影响到kubernetes集群的稳定性
- 如果Kubernetes中有些数据,数据量大,频繁写,怎么办
- 可以使用 API Server 的多实例分流机制
- 可以使用 API Server 的多实例分流机制
3.2.2.什么是多实例分流?
- 多实例分流概念
- 在多实例分流模式下,Kubernetes 可以将不同类型的对象存储到不同的 ETCD 实例中。
- 通过这种分离,可以减少主 ETCD 集群的压力,提高整体性能和稳定性。
- 为什么需要多实例分流?
- 性能优化:高频变更对象(如 Events)会占用大量资源,影响主 ETCD 性能。
- 故障隔离:将非核心数据(如审计日志)分离到独立 ETCD,避免影响核心业务。
- 扩展性:支持大规模集群(如 10万+ Pods)的场景。
3.2.3.如何配置多实例分流?
-
在 API Server 的启动参数中,通过
--etcd-servers-overrides
指定特定对象的存储位置。 -
示例配置:
# 主 ETCD 集群 --etcd-servers=https://etcd-main:2379# 将 events 对象存储到独立 ETCD 集群 --etcd-servers-overrides=events#https://etcd-events:2379
3.2.4.支持分流的对象类型
3.2.5.分流后的架构
┌───────────┐ ┌──────────────┐
│ API Server├──────►│ 主 ETCD 集群 │
└───────────┘ └──────────────┘││ 分流▼
┌──────────────┐
│ 独立 ETCD 集群│
└──────────────┘
3.2.6.实际应用场景
- 大规模集群:
- 分离 Events 和 CRD 数据
- 减轻主 ETCD 压力
- 审计日志:
- 将审计日志存储到独立 ETCD
- 避免日志写入影响核心业务
- 多租户环境:
- 不同租户使用不同 ETCD 集群
- 实现资源隔离
3.2.7.注意事项
- 数据一致性:分流后需确保跨集群数据一致性
- 运维复杂度:增加独立 ETCD 集群的运维成本
- 监控报警:需单独监控每个 ETCD 集群的健康状态
3.3.API Server无法实现对象的批处理
- kubernetes的资源锁resourceVersion,是对象级别的,因此做不到很多对象的批处理
- 如果自己编写Operator,注意不能在短时间内 进行大量写操作,会影响etcd响应速度
3.4.API Server 与 ETCD 交互原理
3.4.1.交互过程
- 通信协议特性:
- 使用 gRPC 协议(基于 HTTP/2)
- 报文格式为 Protocol Buffers
- HTTP/2特性:连接复用
- 同一个Group下的所有资源,在API Server 与 ETCD 的通信中,都会复用同一个 TCP连接,即 TCP连接复用 特性
3.4.2.连接复用风险场景
# 问题复现条件
集群规模:5000 Nodes
Pod数量:1万+
List操作频率:5000次/分钟(带 --no-cache 参数)
数据量:单次List约100MB
- Http2 连接复用特性 导致的故障链
- 同一个Group下的所有资源,在API Server 与 ETCD 的通信中,都会复用同一个 TCP连接
- 如果当前有Pod资源大量发起请求(比如DemonSet Pod 高频 List 操作占用连接通道),可能就会造成网络拥堵
- Node资源的请求就发不过去了,节点心跳超时被标记为 NotReady
- Eviction Controller 驱逐所有节点 Pod
- 集群服务大面积中断
3.5.什么时候需要到ETCD中查数据?
- 当我们怀疑apiserver的数据有问题,或者怀疑和etcd数据不一致时,就可以到etcd中查看数据
3.6.API Server中watch对象
- API Server中也可以watch一个对象,也可以指定resourceVersion来watch
- 不过我们控制器一般不带resourceVersion,默认是信任apiserver的
3.7.API Server支持分页查询
- 分页查询会返回一个token,将token提交到apiserver,就会自动帮我们返回下一页
4.生产环境部署注意事项
4.1.集群规模选择
- 生产上建议部署5个etcd节点
- 1个节点,一旦坏掉,数据就可能丢失了,服务也不可用了
- 3个节点,如果坏了一个,你需要立马人工介入处理,优先级会非常高。不然再坏一个的话raft投票就无法达到大多数了,etcd集群就变成只读集群了
- 5个节点,如果坏了一个,没关系,优先级还没有那么高,因为再坏一个raft协议的投票也能正常进行
- 一般来说,ETCD的节点数量要在规划阶段确定好,尽量避免后期扩冲节点数量
- 加节点一定是2个2个的加,因为要保证总节点是奇数个
- 而且扩充节点还需要重新生成证书,很麻烦
- 补充
- 节点数越多,就会越慢,因为协商的节点数变多了
4.2.存储优化实践
4.2.1.存储方案对比
- 不能直接全部使用remote storage,写的速度会比较慢,大量请求时可能造成请求积压,影响稳定性
- 也不能一部分节点用local ssd,一部分用远程,这样的话,远程存储的节点数据永远跟不上,leader要一直向其同步数据
4.2.2.存储配置最佳实践
# 推荐配置参数
--quota-backend-bytes=8589934592 # 8GB存储配额
--auto-compaction-retention=72h # 72小时自动压缩
--snapshot-count=10000 # 每10000条日志做快照(修正:原文误作1000)
- 关键优化点:
- 使用 本地NVMe SSD(专有磁盘,不要其他进程使用,避免IO竞争)
- 通过 ionice 提升ETCD进程IO优先级
- 监控 etcd_debugging_mvcc_db_total_size_in_bytes 指标,如果发现etcd的存储快满了,就及时的压缩或整理碎片
- 补充:
- etcd节点的存储默认2GB,不过生产上一般拉满:8GB
4.3.备份与恢复策略
4.3.1.备份方案设计
4.3.2.备份命令示例
# 创建快照
ETCDCTL_API=3 etcdctl --endpoints=$ENDPOINTS snapshot save snapshot.db# 恢复流程
etcdctl snapshot restore snapshot.db \--data-dir=/var/lib/etcd-restore \--initial-cluster-token=etcd-cluster-1
4.3.3.备份策略参数
4.4.证书管理与监控
- 证书管理:使用自动轮换工具(如 cert-manager)
- 监控指标:重点关注 etcd_server_leader_changes(Leader 切换次数)
4.5.ETCD 数据操作与恢复
4.5.1.危险操作示例
# 删除所有 Pod 数据(慎用!)
etcdctl del /registry/pods --prefix
4.5.2.灾难恢复流程
- 停止所有 API Server
- 恢复快照:
etcdctl snapshot restore /backup/etcd.db
- 重启 ETCD 集群
- 验证数据一致性
4.6.生产环境调优
4.6.1.关键性能参数
# Raft协议参数调优(跨地域部署示例)
--heartbeat-interval=300ms # 心跳间隔(默认100ms)
--election-timeout=3000ms # 选举超时(默认1000ms)
4.6.2.网络优化措施
- 使用 tc 命令优先保障 ETCD 流量
tc qdisc add dev eth0 root handle 1: prio bands 3
tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 2379 0xffff flowid 1:1
- 跨地域部署保持 RTT < 50ms
- 禁用 swap 确保内存稳定性
4.7.安全增强方案
4.7.1.数据加密层级
4.7.2.审计日志配置
# 审计策略示例
apiVersion: audit.k8s.io/v1
kind: Policy
rules:
- level: Metadataresources:- group: ""resources: ["secrets"]
5.Kubernetes生产集群中如何搭建ETCD集群
5.1.堆叠式etcd集群的高可用拓扑
5.1.1.定义
- 在堆叠式架构中,etcd 集群与 Kubernetes 控制平面组件部署在同一组节点上。
- apiserver 到 etcd 的调用,变成本地调用,速度和稳定性很好
5.1.2.特点
- 每个节点同时运行 etcd 和 Kubernetes 控制平面组件。
- 通常用于小型或中等规模的集群。
- 部署简单,资源利用率高。
5.1.3.优点
- 部署和维护相对简单。
- 节省硬件资源,适合资源有限的场景。
5.1.4.缺点
- 耦合性较高,etcd 和 Kubernetes 控制平面组件共享资源,可能相互影响。
- 扩展性较差,随着集群规模增大,性能可能成为瓶颈。
5.1.5.适用场景
- 小型或测试环境。
- 资源有限的场景。
5.2.外部ETCD集群的高可用拓扑-非堆叠式(External)
5.2.1.定义
在非堆叠式架构中,etcd 集群与 Kubernetes 控制平面组件分别部署在不同的节点上。
5.2.2.特点
- etcd 集群独立运行,不与 Kubernetes 控制平面组件共享节点。
- 通常用于大规模生产环境。
5.2.3.优点
- 解耦 etcd 和 Kubernetes 控制平面组件,避免资源竞争。
- 扩展性好,可以独立扩展 etcd 集群或 Kubernetes 控制平面。
- 更高的可靠性和性能。
5.2.4.缺点
- 需要更多的硬件资源。
- 部署和维护复杂度较高。
5.2.5.适用场景
- 大规模生产环境。
- 对高可用性和性能要求较高的场景。
5.3.对比总结
特性 | 堆叠式(Stacked) | 非堆叠式(External) |
---|---|---|
部署方式 | etcd 和控制平面组件部署在同一节点 | etcd 和控制平面组件分别部署在不同节点 |
资源占用 | 较少 | 较多 |
耦合性 | 高 | 低 |
扩展性 | 较差 | 较好 |
复杂度 | 简单 | 复杂 |
适用场景 | 小型集群、测试环境 | 大规模生产环境 |
- 选择建议
- 如果是 小型集群 或 测试环境,可以选择 堆叠式,以节省资源并简化部署。
- 如果是 大规模生产环境,建议选择 非堆叠式,以提高可靠性和性能。
- 不过,如果你的资源并不紧缺,还是更推荐 堆叠式
6.经典故障案例分析
6.1.大规模 List 操作雪崩
-
场景复现:
- 5000 节点集群
- 每个节点上的 DaemonSet 每分钟执行:
kubectl get pods --all-namespaces --watch
-
后果:
- ETCD 连接数暴增
- 节点心跳更新阻塞
- 集群误判节点离线
-
解决方案:
- 优化 List 操作使用缓存
- 分离高频访问对象到独立 ETCD
6.2.证书过期故障
- 典型现象:
- API Server 日志报错 “x509: certificate has expired”
- 集群突然不可写
- 处理步骤:
- 紧急更新 ETCD 证书
- 滚动重启 API Server
6.3.ETCD分裂
- 5个节点,4个local storage,1个remote storage
- 导致这个节点数据一直跟不上
6.4.少数ETCD 出现 成员DOWN
6.5.Master节点出现网络分区
相关文章:
Kubernetes控制平面组件:Kubernetes如何使用etcd
云原生学习路线导航页(持续更新中) kubernetes学习系列快捷链接 Kubernetes架构原则和对象设计(一)Kubernetes架构原则和对象设计(二)Kubernetes架构原则和对象设计(三)Kubernetes控…...
2025年-G4-Lc78--121. 买卖股票的最佳时机--(java版)
1.题目描述 2.思路 思路1: 做两轮排序,第一轮排序找到最小的那个数,然后再判断最小的那个数之后还有其他数吗,如果有在进行排序,选出最大的那个数,然后值相减。 问题要点: (1)你需要…...
LabVIEW 中的 3dgraph.llb 库
3dgraph.llb 库位于 C:\Program Files (x86)\National Instruments\LabVIEW 2019\vi.lib\Platform 目录下,是 LabVIEW 系统中用于 3D 图形相关操作的重要库。它为 LabVIEW 用户提供了丰富的功能,能在应用程序中创建、显示和交互各种 3D 图形,…...
通过VSCode直接连接使用 GPT的编程助手
GPT的编程助手在VSC上可以直接使用 选择相应的版本都可以正常使用。每个月可以使用40条,超过限制要付费。 如下图对应的4o和claude3.5等模型都可以使用。VSC直接连接即可。 配置步骤如下: 安装VSCODE 直接,官网下载就行 https://code.vis…...
[LeetCode力扣hot100]-C++常用数据结构
0.Vector 1.Set-常用滑动窗口 set<char> ans;//根据类型定义,像vector ans.count()//检查某个元素是否在set里,1在0不在 ans.insert();//插入元素 ans.erase()//删除某个指定元素 2.栈 3.树 树是一种特殊的数据结构,力扣二叉树相…...
2-安装YIUI
YIUI框架:GitHub - LiShengYang-yiyi/YIUI: Unity3D UGUI Framework, 基于UI数据事件绑定为核心 数据驱动的UGUI框架, ETUI框架, ET框架官方推荐UI框架 ET框架:egametang/ET: Unity3D Client And C# Server Framework (github.com) 1 - 安装YIUI框架&a…...
16-使用QtChart创建动态图表:入门指南
QtChart是Qt框架中的一个强大模块,用于创建各种类型的图表,如折线图、柱状图、饼图等。它提供了丰富的API和灵活的配置选项,使得开发者能够轻松地将数据可视化集成到应用程序中。本文将介绍如何使用QtChart创建一个简单的动态折线图ÿ…...
蓝耘智算携手DeepSeek,共创AI未来
🌟 各位看官号,我是egoist2023! 🌍 种一棵树最好是十年前,其次是现在! 🚀 今天来学习如何通过蓝耘智算使用DeepSeek R1模型 👍 如果觉得这篇文章有帮助,欢迎您一键三连&a…...
具身智能在智能巡检机器人中的应用——以开关柜带电操作机器人为例
随着机器人技术和人工智能的迅速发展,具身智能在各行业的应用日益广泛,尤其是在电力行业中的智能巡检领域。传统的电力巡检和维护工作通常需要人工操作,存在着高温、高压、强电磁场等危险环境,且效率较低。开关柜带电操作机器人作…...
【第4章:循环神经网络(RNN)与长短时记忆网络(LSTM)— 4.6 RNN与LSTM的变体与发展趋势】
引言:时间序列的魔法钥匙 在时间的长河中,信息如同涓涓细流,绵延不绝。而如何在这无尽的数据流中捕捉、理解和预测,正是循环神经网络(RNN)及其变体长短时记忆网络(LSTM)所擅长的。今天,我们就来一场深度探索,揭开RNN与LSTM的神秘面纱,看看它们如何在时间序列的海洋…...
【R语言】回归分析与判别分析
一、线性回归分析 1、lm()函数 lm()函数是用于拟合线性模型(Linear Models)的主要函数。线性模型是一种统计方法,用于描述一个或多个自变量(预测变量、解释变量)与因变量(响应变量)之间的关系…...
git开发流程以及github社区企业版
常规开发流程 1、将仓库 clone 到本地,已经 clone 的要 fetch & pull,保证本地 master 分支已经更新到最新状态 2、在 master 最新分支的基础上 checkout 一个开发分支,分支命名要求规范,如带用户名、日期、bug id 等关键信…...
DeepSeek + Vue实战开发
利用DeepSeek V3模型、siliconflow大模型一站式云服务平台以及vue3.0实现一个在线人工智能客服对话系统。 因为deepseek官网的api密钥使用起来比较缓慢,所以可以使用第三方的,具体操作请自行查阅资料。 siliconflow官网 SiliconFlow, Accelerate AGI …...
从安装软件到flask框架搭建可视化大屏(二)——创建一个flask页面,搭建可视化大屏,零基础也可以学会
附录:所有文件的完整代码 models.py # models/models.py from flask_sqlalchemy import SQLAlchemydb SQLAlchemy()class User(db.Model):__tablename__ user # 显式指定表名为 userid db.Column(db.Integer, primary_keyTrue)username db.Column(db.String(…...
Python编程中,async/await/asyncio分别是干啥的?
在Python异步编程中,async、await和asyncio是三个核心概念。它们共同构成了Python处理高并发I/O密集型任务的解决方案。本文将通过代码实例解析它们的作用和用法。 一、异步编程基础 1.1 同步 vs 异步 同步编程:代码按顺序执行,遇到I/O操作(如网络请求、文件读写)时会阻塞…...
vue非组件的初学笔记
1.创建Vue实例,初始化渲染的核心 准备容器引包创建Vue实例new Vue() el用来指定控制的盒子data提供数据 2.插值表达式 作用利用表达式插值,将数据渲染到页面中 格式{{表达式}} 注意点 表达式的数据要在data中存在表达式是可计算结果的语句插值表达式…...
4.3 学习UVM中的“run_phase“,将其应用到具体案例分为几步?
文章目录 前言1. run_phase 的作用与执行特点2. 关键组件的 run_phase 实现2.1 Driver 的 run_phase:驱动事务2.2 Monitor 的 run_phase:捕获事务2.3 Scoreboard 的 run_phase:数据比对 3. 同步与 Objection 管理3.1 控制仿真结束3.2 多组件协…...
[Python人工智能] 五十.PyTorch入门 (5)快速搭建神经网络及模型保存
从本专栏开始,作者正式研究Python深度学习、神经网络及人工智能相关知识。前文讲解PyTorch构建分类神经网络。这篇文章将介绍如何利用PyTorch快速构建神经网络,之前的代码比较复杂,通过自定义Net类实现,本文通过Torch函数定义神经网络。前面我们的Python人工智能主要以Tens…...
【C语言】有序数组的平方
文章目录 给你一个按非递减顺序排序的整数数组 nums,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。 #include<stdio.h>/*** brief 计算一个整数数组的平方,并按非递减顺序存放结果* * 该函数接受一个整数数组arr和其长度le…...
osgearth视点坐标及鼠标交点坐标的信息显示(七)
核心函数如下: void COSGObject::addViewPointLabel() {//mRoot->addChild(osgEarth::Util::Controls::ControlCanvas::get(mViewer));//放开这句,球就卡住了。 为什么,shitosgEarth::Util::Controls::ControlCanvas* canvas = osgEarth::Util::Controls::ControlCanvas…...
【096】基于51单片机红外线人数统计系统【Proteus仿真+Keil程序+报告+原理图】
☆、设计硬件组成:51单片机最小系统LCD1602液晶显示两路E18-D80NK红外线传感器DS1302时钟芯片AT24C02存储芯片蜂鸣器LED灯按键设置。 1、设计采用STC89C52、AT89C52、AT89S52作为主控芯片; 2、采用DS1302时钟芯片实现对日期和时间的计时,并…...
【ENSP】链路聚合的两种模式
【ENSP】链路聚合的两种模式 1、背景介绍2、链路聚合的使用场景3、配置过程1、手工模式Eth-Trunk配置2、静态LACP模式Eth-Trunk 4、总结 1、背景介绍 随着网络规模的不断扩大,人们对骨干链路的带宽吞吐量和可靠性提出了越来越高的要求。在传统方案中,为…...
机器学习_17 K近邻算法知识点总结
K近邻算法(K-Nearest Neighbors,KNN)是一种简单而直观的机器学习算法,广泛应用于分类和回归任务。它通过寻找训练集中与新样本最接近的K个样本(近邻)来进行预测。今天,我们就来深入探讨K近邻算法…...
Web 后端 请求与响应
一 请求响应 1. 请求(Request) 客户端向服务器发送的HTTP请求,通常包含以下内容: 请求行:HTTP方法(GET/POST等)、请求的URL、协议版本。 请求头(Headers):…...
网络工程师 (44)ARP协议
前言 ARP协议,即地址解析协议(Address Resolution Protocol),是一种网络协议,主要用于将网络层的IPv4地址(逻辑地址)解析为链路层的物理地址(通常是MAC地址)。 一、基本概…...
使用verilog 实现 cordic 算法 ----- 旋转模式
1-设计流程 ● 了解cordic 算法原理,公式,模式,伸缩因子,旋转方向等,推荐以下链接视频了解 cordic 算法。哔哩哔哩-cordic算法原理讲解 ● 用matlab 或者 c 实现一遍算法 ● 在FPGA中用 verilog 实现,注意…...
搜狗浏览器卸载教程
需求背景 今天发现geek居然无法卸载搜狗浏览器,作为一个老司机,这是不允许的。如果你使用geek或者windows的卸载,或者直接在它的安装包的Uninstall.exe中卸载,他走到100%就一直不动了。那玩意是假的。 卸载教程 结束 -----华丽的…...
ES7 (ES2016) 新特性
目录 Array.prototype.includes()指数运算符与 ES6 的对比实际应用场景最佳实践 Array.includes() 基本语法 array.includes(searchElement[, fromIndex])特点 返回布尔值可以检测 NaN支持可选的 fromIndex 参数比 indexOf() 更语义化 使用示例 const numbers [1, 2, 3…...
设计模式13:职责链模式
系列总链接:《大话设计模式》学习记录_net 大话设计-CSDN博客 1.概述 职责链模式(Chain of Responsibility Pattern)是一种行为设计模式,它允许将请求沿着处理者链传递,直到有一个处理者能够处理该请求。这种模式通过…...
MongoDB between ... and ... 操作
个人博客地址:MongoDB between ... and ... 操作 | 一张假钞的真实世界 MongoDB中类似SQL的between and操作可以采用如下语法: db.collection.find( { field: { $gt: value1, $lt: value2 } } );...
Ubuntu 下 nginx-1.24.0 源码分析 - ngx_alloc函数
ngx_alloc 声明在 src\os\unix\ngx_alloc.h 中: void *ngx_alloc(size_t size, ngx_log_t *log); 定义在 src\os\unix\ngx_alloc.c 中: void * ngx_alloc(size_t size, ngx_log_t *log) {void *p;p malloc(size);if (p NULL) {ngx_log_error(NGX_LOG_…...
总结:Helm 命令详解
文章目录 1. Helm 概述2. Helm 的安装与配置2.1 安装 Helm2.2 验证安装 3、Helm 的常用命令3.1 查看帮助3.2 查看 Chart 列表3.3 安装 Chart3.4 卸载 Chart3.5 升级 Chart3.6 回滚 Chart3.7 查看 Chart 详细信息3.8 查看 Chart 的模板3.9 查看 Chart 的值3.10 管理仓库 4. Helm…...
通俗诠释 DeepSeek-V3 模型的 “671B” ,“37B”与 “128K”,用生活比喻帮你理解模型的秘密!
欢迎来到涛涛聊AI。 在DeepSeek-V3模型的参数描述中,你可能会看到类似“671B 37B 128K”这样的标记。这些字母和数字的组合看起来像密码,但其实它们揭示了模型的“大脑容量”和“工作方式”。我们用日常生活的比喻来解释: 一、数字含义&…...
【鸿蒙ArcTS】TypeScript学习记录:函数类型声明与箭头函数
普通函数 function add(x: number, y: number): number {return x y; } 完整未省略版本 const add: (x: number, y: number) > void//函数类型(x: number, y: number): void > {//函数定义console.log("object"); };函数类型: type trigFunc…...
基于 Python 和 Django 的北极星招聘数据可视化系统(附源码,部署)
博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…...
机器学习_18 K均值聚类知识点总结
K均值聚类(K-means Clustering)是一种经典的无监督学习算法,广泛应用于数据分组、模式识别和降维等领域。它通过将数据划分为K个簇,使得簇内相似度高而簇间相似度低。今天,我们就来深入探讨K均值聚类的原理、实现和应用…...
LTE参数
RSRP(Reference Singnal Received Power,参考信号接收功率) 是终端接收到的小区公共参考信号(CRS)功率值,数值为测量带宽内单个RE功率的线性平均值,反映的是本小区有用信号的强度。 SINR(SignaltoInterference&Noise Ratio,…...
Word写论文常用操作的参考文章
1.插入多个引用文献:word中交叉引用多篇参考文献格式[1-2]操作以及显示错误问题 更改左域名,输入 \#"[0" 更改右域名,输入 \#"0]" 2.插入题注:word 中添加图片题注、目录、内部链接 3.插入公式编号&#x…...
kubectl exec 实现的原理
kubectl exec 是 Kubernetes 提供的一个命令,它允许你在指定的 Pod 中执行命令,类似于在容器中打开一个终端会话。这个功能对于调试、监控和管理容器化应用非常有用。kubectl exec 的实现涉及到多个 Kubernetes 组件和机制,包括 API Server、…...
apache artemis安装
安装apache artemis https://xxzkid.github.io/2025/apache-artemis-install...
驱动开发、移植(最后的说法有误,以后会修正)
一、任务明确:把创龙MX8的驱动 按照我们的要求 然后移植到 我们的板子 1.Linux系统启动卡制作, sd卡 先按照 《用户手册—3-2-Linux系统启动卡制作及系统固化》 把创龙的Linux系统刷进去。 2. 把TLIMX8-EVM的板子过一遍 把刚刚烧好系统的sd卡插入 创…...
算法12-贪心算法
一、贪心算法概念 贪心算法(Greedy Algorithm)是一种在每一步选择中都采取当前状态下最优的选择,从而希望导致全局最优解的算法。贪心算法的核心思想是“局部最优,全局最优”,即通过一系列局部最优选择,最…...
Docker容器化 | 超简单部署 FireCrawl
灵感来源 【RAG实战】Docker容器化 🔥 FireCrawl | 基于docker-compose.yaml一键运行的网页解析API 参考仓库地址 建议给大佬点点star,这么简单的教程非常实用 测试环境 ubuntu 24.04 可能要安装的依赖 sudo apt install docker-buildx拉取FireCra…...
从入门到精通:Postman 实用指南
Postman 是一款超棒的 API 开发工具,能用来测试、调试和管理 API,大大提升开发效率。下面就给大家详细讲讲它的安装、使用方法,再分享些实用技巧。 一、安装 Postman 你能在 Postman 官网(https://www.postman.com )下…...
yolo11s rknn无法detect的bugfix - step by step
1.缘起 上周四下班时,发现在宿主机环境工作良好的既有的pytorch模型,在通过.pt->.onnx->.rknn的转换后无法正常工作。周五下班时,怀疑疑点在两处: 版本匹配问题通道和参数传递问题。 周六,周日,周…...
把 CSV 文件摄入到 Elasticsearch 中 - CSVES
在我们之前的很多文章里,我有讲到这个话题。在今天的文章中,我们就提重谈。我们使用一种新的方法来实现。这是一个基于 golang 的开源项目。项目的源码在 https://github.com/githubesson/csves/。由于这个原始的代码并不支持 basic security 及带有安全…...
尚硅谷爬虫note008
一、handler处理器 定制更高级的请求头 # _*_ coding : utf-8 _*_ # Time : 2025/2/17 08:55 # Author : 20250206-里奥 # File : demo01_urllib_handler处理器的基本使用 # Project : PythonPro17-21# 导入 import urllib.request from cgitb import handler# 需求ÿ…...
MongoDB数据导出工具mongoexport
个人博客地址:MongoDB数据导出工具mongoexport | 一张假钞的真实世界 导出示例: $ mongoexport --host 192.168.72.60 --db realtime_statistic_backup --collection all_play_stats_summary --fields "_id.timestamp,total_uv" --type csv …...
机器学习数学基础:29.t检验
t检验学习笔记 一、t检验的定义和用途 t检验是统计学中常用的假设检验方法,主要用于判断样本均值与总体均值间,或两个样本均值间是否存在显著差异。 在实际中应用广泛,例如在医学领域可用于比较两种药物的疗效;在教育领域&…...
Lineageos 22.1(Android 15) 编译隐藏API的 android.jar
一、前言 有时候会我们开发系统应用需要一些系统的方法或者属性之类的,但是被隐藏导致无法正常显示,因为SDK提供的android.jar被隐藏了,所以只能看到sourcecode,实际上编译是会报错的,比如: 一般这种无法是两种,直接添加一个类,同包名同类名,或者依赖framework.jar,可以骗过…...