Kubernetes控制平面组件:Kubelet详解(一):API接口层介绍
云原生学习路线导航页(持续更新中)
- kubernetes学习系列快捷链接
- Kubernetes架构原则和对象设计(一)
- Kubernetes架构原则和对象设计(二)
- Kubernetes架构原则和对象设计(三)
- Kubernetes控制平面组件:etcd(一)
- Kubernetes控制平面组件:etcd(二)
- Kubernetes控制平面组件:API Server详解(一)
- Kubernetes控制平面组件:API Server详解(二)
- Kubernetes控制平面组件:调度器Scheduler(一)
- Kubernetes控制平面组件:调度器Scheduler(二)
- Kubernetes控制平面组件:Controller Manager 之 内置Controller详解
- Kubernetes控制平面组件:Controller Manager 之 NamespaceController 全方位讲解
本文是 kubernetes 的控制面组件 kubelet 系列文章第一篇,主要讲解了 kubelet是什么、核心功能、工作流程、架构设计。并且对kubelet架构的API接口层的主通信接口10250、cadvisor监控采集端口4194、只读API端口10255、健康检查端口10248分别进行了详细介绍
- 希望大家多多 点赞 关注 评论 收藏,作者会更有动力继续编写技术文章
1.kubelet 简介
1.1.kubelet 是什么
- 前面kubernetes架构讲解时,对 kubelet 的初步认识:
- 每个节点上都会跑一个Kubelet,负责上报 节点状态,pod状态、pod资源使用情况等信息到ApiServer,由ApiServer写入etcd。
- 同时,Kubelet也会和apiserver交互,当发现 有pod被 Schedule 调度到自己所在node时,就会调用一系列标准接口,拉起pod的进程,并为之挂载网络和存储。
- kubelet通过对 容器运行时(CRI)、容器网络标准(CNI)、容器存储标准(CSI) 的调用,完成pod 容器、网络、存储 的管理
- Kubelet 是 Kubernetes 集群 工作节点 的核心代理组件
- 我们前面学习的 etcd、apiserver、scheduler、controller-manager等,都属于上级管理部门,负责 存储数据、进行决策、下发命令,不会直接参与干活
- Kubelet 是真正的worker,是Node的核心代理组件,它直接与节点上的容器运行时(如 Docker、containerd)交互,确保 Pod 及其容器按照集群控制平面下发的指令正确运行,是 Kubernetes 实现“节点自治”能力的关键模块
1.2.kubelet 的核心功能
功能模块 | 核心能力 | 相关组件 |
---|---|---|
Pod 生命周期管理 | 根据 PodSpec 创建/销毁容器,处理重启策略(Always/OnFailure/Never) | PodManager、ContainerRuntime |
容器健康监控 | 执行 Liveness/Readiness/Startup 探针,自动触发容器重启(失败时) | ProbeManager、StatusManager |
资源管理 | 监控 CPU/内存/磁盘使用,执行驱逐策略(当节点资源不足时) | EvictionManager、CAdvisor |
存储卷管理 | 挂载 PersistentVolume,处理 Secret/ConfigMap 注入 | VolumeManager |
网络配置 | 通过 CNI 插件为 Pod 分配 IP,维护网络命名空间 | NetworkPlugin |
节点状态报告 | 每 10 秒向 API Server 上报节点资源使用率及健康状态 | API Server |
镜像管理 | 自动拉取镜像,执行垃圾回收(超过磁盘阈值时按 LRU 策略清理) | ImageGC |
1.3.kubelet核心工作流程
1.4.kubelet 的 pod事件来源
参考:https://kubernetes.feisky.xyz/concepts/components/kubelet#pod-guan-li
- Kubelet 以 PodSpec 的方式工作。PodSpec 是描述一个 Pod 的 YAML 或 JSON 对象。 kubelet 采用一组通过各种机制提供的 PodSpecs(主要通过 apiserver),并确保这些 PodSpecs 中描述的 Pod 正常健康运行。
- 向 Kubelet 提供节点上需要运行的 Pod 清单的方法:
- 文件:启动参数 --config 指定的配置目录下的文件 (默认 / etc/kubernetes/manifests/)。该文件每 20 秒重新检查一次(可配置)。
- HTTP endpoint (URL):启动参数 --manifest-url 设置。每 20 秒检查一次这个端点(可配置)。
- API Server:通过 API Server 监听 etcd 目录,同步 Pod 清单。
- HTTP server:kubelet 侦听 HTTP 请求,并响应简单的 API 以提交新的 Pod 清单。
2.Kubelet 架构设计
- API 接口层
- kubelet API
- cAdvisor API
- 只读API
- 健康检查 API
- 核心功能层,可分为3个模块:
- 核心管理模块:PLEG、cAdvisor、GPUManager、OOMWatcher、ProbeManager、DiskSpaceManager、EvictionManager
- 运行时协调模块:syncLoop、PodWorker
- 容器生命周期管理模块:StatusManager、VolumeManager、ImageGC、ContainerGC、ImageManager、CertificateManager
- CRI 接口层
- 容器执行引擎接口,作为grpc client 与真正的容器运行时(Dockershim/rkt/containerd)交互
3.kubelet API 接口层
3.1.kubelet API 主通信端口:10250
3.1.1.端口 10250 的核心作用
- Kubelet 的 10250 端口 是其默认的 HTTPS 主通信端口,承担以下核心功能:
- Pod 生命周期管理:接收来自 API Server 的指令,创建、更新或删除 Pod。
- 资源监控数据暴露:提供容器和节点的性能指标(通过集成 cAdvisor)。
- 调试与运维接口:支持访问容器日志、执行命令(如
kubectl exec
)、端口转发等。 - 节点状态上报:向 API Server 汇报节点健康状态和资源容量。
3.1.2.协议与认证机制
- 协议:使用 HTTPS(TLS 加密),确保通信安全性。
- 认证方式:
- X.509 客户端证书:Kubelet 自动生成证书,由集群 CA 签发。
- Bearer Token:基于 ServiceAccount 的 JWT Token(需 RBAC 授权)。
- 匿名访问(默认关闭):需显式启用
--anonymous-auth=true
(不推荐)。
3.1.3.关键 API 端点
- 通过
https://<Node-IP>:10250
可访问以下核心接口
3.1.3.1.监控与指标
/metrics
:Prometheus 格式的 Kubelet 自身指标(如 goroutine 数量、请求延迟)。/metrics/cadvisor
:容器资源使用指标(CPU、内存、网络等),由 cAdvisor 提供。/metrics/resource
:Kubernetes 资源模型指标(如kubelet_container_cpu_usage_seconds_total
)。
3.1.3.2.Pod 与容器操作**
/pods
:获取节点上所有 Pod 的详细信息(JSON 格式)。/containerLogs/<namespace>/<pod>/<container>
:查看容器日志(对应kubectl logs
)。/exec/<namespace>/<pod>/<container>
:在容器内执行命令(对应kubectl exec
)。/portForward/<namespace>/<pod>
:端口转发到容器(对应kubectl port-forward
)。
3.1.3.3.调试与健康检查**
/healthz
:检查 Kubelet 是否健康(返回200 OK
或错误码)。/configz
:获取 Kubelet 的当前配置(需启用--enable-debugging-handlers=true
)。
3.1.4.安全配置
3.1.4.1.证书与 TLS
- Kubelet 证书:
- 由集群 CA 自动签发(若启用
--rotate-certificates
支持证书轮换)。 - 存储在节点上的
/var/lib/kubelet/pki
目录。
- 由集群 CA 自动签发(若启用
- 客户端访问:
- 使用集群 CA 证书验证 Kubelet 服务端身份。
- 客户端需提供有效证书或 Token 进行身份认证。
3.1.4.2.RBAC 授权
- 为监控工具或管理员配置最小权限的 RBAC 规则:
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:name: kubelet-reader
rules:
- apiGroups: [""]resources: ["nodes/metrics", "nodes/proxy", "nodes/log", "nodes/spec"]verbs: ["get", "list", "watch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:name: kubelet-reader-binding
subjects:
- kind: ServiceAccountname: prometheusnamespace: monitoring
roleRef:kind: ClusterRolename: kubelet-readerapiGroup: rbac.authorization.k8s.io
3.1.5.访问方式示例
3.1.5.1.使用 kubectl proxy
(绕过 TLS 验证)
kubectl proxy --port=8080 &
curl http://localhost:8080/api/v1/nodes/<node-name>/proxy/metrics/cadvisor
3.1.5.2.直接访问(需证书或 Token)
# 使用 ServiceAccount Token
TOKEN=$(cat /var/run/secrets/kubernetes.io/serviceaccount/token)
curl -k -H "Authorization: Bearer $TOKEN" https://<Node-IP>:10250/metrics/cadvisor# 使用客户端证书(如 kubeconfig 中的证书)
curl --cert /path/to/client.crt --key /path/to/client.key --cacert /path/to/ca.crt https://<Node-IP>:10250/metrics
3.1.6.生产环境最佳实践
- 禁用匿名访问:确保 Kubelet 启动参数包含
--anonymous-auth=false
。 - 启用证书轮换:配置
--rotate-certificates=true
提升密钥安全性。 - 限制网络访问:
- 通过防火墙规则仅允许 API Server 和监控系统访问 10250 端口。
- 使用 Kubernetes NetworkPolicy 限制 Pod 到 Kubelet 的通信。
- 源码位置:
pkg/kubelet/server/server.go
(核心服务端实现)pkg/kubelet/server/auth.go
(认证鉴权逻辑)
3.2.cAdvisor资源监控数据采集 端口:4194
3.2.1.cAdvisor 的作用
- cAdvisor 是一个开源的容器资源监控工具,集成在 Kubelet 中,用于实时收集节点和容器的资源使用数据,包括:
- CPU 使用率
- 内存使用量
- 文件系统(磁盘)使用情况
- 网络流量统计
- 容器的启动时间和运行状态等。
- 这些数据通过 REST API 暴露,供 Prometheus、Heapster 或其他监控系统采集。
3.2.2.端口 4194 现已不支持
- 在 Kubernetes 早期版本(如 1.7 之前),cAdvisor 默认通过端口 4194 对外暴露监控数据。
- 用户可以直接访问
http://<Node-IP>:4194/metrics
获取容器的 Prometheus 格式指标 - 从 Kubernetes 1.12 开始,出于安全性和架构简化的考虑,Kubelet 默认不再单独监听 4194 端口,而是将 cAdvisor 的 API 集成到 Kubelet 的主 API 端口(默认 10250)中。具体变化包括:
- cAdvisor 数据路径合并:cAdvisor 的监控数据现在通过 Kubelet 的
/metrics/cadvisor
端点暴露,访问地址为https://<Node-IP>:10250/metrics/cadvisor
。 - 认证与授权:访问需要经过 Kubelet 的 TLS 认证(如使用 ServiceAccount Token 或客户端证书),避免未授权访问风险。
- 旧端口弃用:4194 端口默认关闭,若需启用需显式配置 Kubelet 参数(不推荐)。
- cAdvisor 数据路径合并:cAdvisor 的监控数据现在通过 Kubelet 的
3.2.3.通过 Kubelet 主端口(10250)访问 cAdvisor 数据
# 使用 kubectl 代理绕过 TLS 认证(仅测试环境)
kubectl proxy --port=8080 &
curl http://localhost:8080/api/v1/nodes/<node-name>/proxy/metrics/cadvisor# 直接访问(需配置证书或 Token)
curl -k -H "Authorization: Bearer $(cat /var/run/secrets/kubernetes.io/serviceaccount/token)" https://<Node-IP>:10250/metrics/cadvisor
- 通过
/metrics/cadvisor
获取的 Prometheus 格式数据片段:
container_cpu_usage_seconds_total{container="nginx", namespace="default", pod="nginx-abc123"} 12345.67
container_memory_usage_bytes{container="nginx", namespace="default", pod="nginx-abc123"} 56789012
- 源码位置:
pkg/kubelet/cadvisor/cadvisor_linux.go
(平台相关实现)vendor/github.com/google/cadvisor/manager/manager.go
(核心逻辑)
3.3.只读API 端口10255(状态查询)
3.3.1.端口 10255 的基本作用
- Kubelet 的 10255 端口 是一个 只读(Read-Only)HTTP 端口,主要用于暴露节点和 Pod 的监控数据及健康状态。它提供无需认证的访问,常用于以下场景:
- 资源监控:获取节点和容器的 CPU、内存、磁盘等指标。
- 健康检查:检查 Kubelet 和节点的工作状态。
- 调试与诊断:快速查看节点上运行的 Pod 列表或容器状态。
3.3.2.端口 10255 的暴露端点
- 通过
http://<Node-IP>:10255
可访问以下关键端点:/healthz
:检查 Kubelet 的健康状态,返回200 OK
表示正常。/pods
:返回节点上所有 Pod 的清单(JSON 格式)。/metrics
:暴露 Prometheus 格式的监控指标(包括 cAdvisor 数据)。/metrics/cadvisor
:直接获取容器的详细资源使用指标(与 10250 端口的路径一致)。/spec
:返回节点的硬件和操作系统信息(如 CPU 核心数、内存大小等)。
3.3.3.只读端口10255已默认弃用
- 早期版本(如 Kubernetes 1.10 之前):
- 默认启用 10255 端口,供监控工具(如 Heapster)或管理员直接访问,无需认证。
- 安全改进(Kubernetes 1.10+):
- 由于无需认证的特性存在安全风险,Kubernetes 逐步弃用该端口:
- 1.10+ 版本:默认关闭 10255 端口,需显式启用。
- 1.18+ 版本:部分发行版(如 Kubeadm 部署的集群)完全禁用该端口。
- 1.20+ 版本:Kubelet 参数
--read-only-port
被标记为废弃,未来可能移除。
- 直接查看kubelet配置,可以看到确实已标记废弃
# kubelet -h | grep read-only-port
--read-only-port int32 The read-only port for the Kubelet to serve on with no authentication/authorization (set to 0 to disable) (default 10255) (DEPRECATED: This parameter should be set via the config file specified by the Kubelet's --config flag. See https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ for more information.)
3.3.4.如何启用 10255 端口(不推荐)
- 若需临时启用(仅限测试环境),需配置 Kubelet 的启动参数:
# 编辑 Kubelet 配置文件(如 /etc/kubernetes/kubelet.conf) KUBELET_ARGS="--read-only-port=10255"# 或者通过 systemd 服务文件添加参数 ExecStart=/usr/bin/kubelet --read-only-port=10255 ...
- 注意:启用后需确保节点防火墙限制对该端口的访问!
3.3.5.访问示例
- 查看节点上所有 Pod 信息:
curl http://<Node-IP>:10255/pods
- 获取 Prometheus 监控指标:
curl http://<Node-IP>:10255/metrics
- 检查 Kubelet 健康状态:
curl -v http://<Node-IP>:10255/healthz
3.3.6.使用 kubelet API 主通信端口 10250 替代 10255
- 默认的 Kubelet HTTPS 端口(10250)提供相同功能,但需认证:
# 使用 ServiceAccount Token 访问(需 RBAC 授权)
TOKEN=$(cat /var/run/secrets/kubernetes.io/serviceaccount/token)
curl -k -H "Authorization: Bearer $TOKEN" https://<Node-IP>:10250/metrics
- 与端口 10250 的对比
特性 | 端口 10255 (只读) | 端口 10250 (读写) |
---|---|---|
协议 | HTTP(明文) | HTTPS(加密) |
认证 | 无 | 需证书或 Token |
功能 | 只读数据(如监控、Pod 列表) | 读写操作(如执行命令、日志访问) |
安全性 | 低 | 高 |
默认状态 | 新版本默认关闭 | 始终启用 |
3.4.健康检查 /healthz 端口10248
3.4.1./healthz 端点简介
- /healthz 是 kubelet 的关键健康检查接口,用于指示其运行状态:
- 功能与用途
- 存活探针(Liveness Probe):供 kubelet 自身或外部系统(如 API Server)检查其是否正常运行。
- 健康状态反馈:返回 200 OK 表示健康,其他状态码(如 500)表示异常。
- 依赖项检查:某些配置下会验证 kubelet 依赖的组件(如容器运行时)是否可用。
- /healthz 端点的访问端口 默认10248
- 可以通过kubelet 参数
--healthz-port
指定端口
3.4.2./healthz 访问示例
- 响应为ok,则表示节点健康
# 查看本地端口监听情况 # ss -tuln | grep 10248 tcp LISTEN 0 4096 127.0.0.1:10248 *:*# curl http://localhost:10248/healthz ok
- 安全性设计
- 本地访问限制:默认仅监听
127.0.0.1
,不暴露给外部网络。 - 无认证机制:由于仅限本机访问,无需额外认证。
- 本地访问限制:默认仅监听
3.4.3.10248 与主端口 10250 的区别
特性 | 端口 10248 (--healthz-port ) | 端口 10250(主 API 端口) |
---|---|---|
协议 | HTTP(明文) | HTTPS(加密) |
访问范围 | 仅本机(localhost ) | 外部网络(默认监听所有接口) |
功能 | 仅健康检查(/healthz ) | 全功能 API(Pod 管理、监控等) |
认证 | 无 | 强制证书/Token 认证 |
3.4.4.--healthz-port
参数状态与版本变化
- 弃用状态:
--healthz-port
参数已被标记为 废弃(DEPRECATED),Kubernetes 推荐通过 kubelet 配置文件(由--config
指定)设置相关参数。
- 弃用原因:
- Kubernetes 逐步淘汰命令行参数,转向统一的配置文件管理,以提高可维护性。
- 版本影响:
- 1.10+ 版本:开始推荐使用配置文件。
- 1.23+ 版本:部分发行版可能默认关闭该端口。
4.kubelet 核心功能层
- 请见:Kubernetes控制平面组件:Kubelet详解(二):核心功能层
- 本文主要讲解了 kubelet 架构中的核心功能层,包括核心管理模块的 PLEG、cAdvisor、GPUManager、OOMWatcher、ProbeManager、DiskSpaceManager、EvictionManager;运行时协调模块的 syncLoop、PodWorker,以及容器生命周期管理模块的 StatusManager、VolumeManager、ImageGC、ContainerGC、ImageManager、CertificateManager,对每个组件都做了详细讲解
相关文章:

Kubernetes控制平面组件:Kubelet详解(一):API接口层介绍
云原生学习路线导航页(持续更新中) kubernetes学习系列快捷链接 Kubernetes架构原则和对象设计(一)Kubernetes架构原则和对象设计(二)Kubernetes架构原则和对象设计(三)Kubernetes控…...
Python60日基础学习打卡D26
算圆形面积 错误代码 import mathdef calculate_circle_area(r):try:S math.pi * r**2except r<0:print("半径不能为负数")return S 正确代码 import mathdef calculate_circle_area(radius):try:if radius < 0:return 0return math.pi * radius…...

牛客网NC22015:最大值和最小值
牛客网NC22015:最大值和最小值 题目描述 题目要求 输入:一行,包含三个整数 a, b, c (1≤a,b,c≤1000000) 输出:两行,第一行输出最大数,第二行输出最小数。 样例输入: …...

浪潮云边协同:赋能云计算变革的强力引擎
在数字化浪潮以排山倒海之势席卷全球的当下,第五届数字中国建设峰会在福州盛大开幕。这场以“创新驱动新变革,数字引领新格局”为主题的行业盛会,宛如一座汇聚智慧与力量的灯塔,吸引了国内外众多行业精英齐聚一堂,共同…...
Secs/Gem第七讲(基于secs4net项目的ChatGpt介绍)
好的,那我们现在进入: 第七讲:掉电重连后,为什么设备不再上报事件?——持久化与自动恢复的系统设计 关键词:掉电恢复、状态重建、初始化流程、SecsMessage 缓存机制、自动重连、事件再注册 本讲目标 你将理…...
ruskal 最小生成树算法
https://www.lanqiao.cn/problems/17138/learning/ 并查集ruskal 最小生成树算法 Kruskal 算法是一种用于在加权无向连通图中寻找最小生成树(MST)的经典算法。其核心思想是基于贪心策略,通过按边权从小到大排序并逐步选择边,确保…...

【GESP】C++三级模拟题 luogu-B3848 [GESP样题 三级] 逛商场
GESP三级模拟样题,一维数组相关,难度★★✮☆☆。 题目题解详见:https://www.coderli.com/gesp-3-luogu-b3848/ 【GESP】C三级模拟题 luogu-B3848 [GESP样题 三级] 逛商场 | OneCoderGESP三级模拟样题,一维数组相关,…...
精益数据分析(62/126):从客户访谈评分到市场规模估算——移情阶段的实战进阶
精益数据分析(62/126):从客户访谈评分到市场规模估算——移情阶段的实战进阶 在创业的移情阶段,科学评估用户需求与市场潜力是决定产品方向的关键。今天,我们结合Cloud9 IDE的实战经验与《精益数据分析》的方法论&…...
MAC-OS X 命令行设置IP、掩码、网关、DNS服务器地址
注意:以下命令必须在 $root 特权模式下运行,即:人们需要显著的提权后才能操作。 设置IP sudo networksetup -setmanual "Ethernet" 192.168.0.22 255.255.255.0 192.168.0.8 设置DNS sudo networksetup -setdnsservers "Eth…...

腾讯怎样基于DeepSeek搭建企业应用?怎样私有化部署满血版DS?直播:腾讯云X DeepSeek!
2025新春,DeepSeek横空出世,震撼全球! 通过算法优化,DeepSeek将训练与推理成本降低至国际同类模型的1/10,极大的降低了AI应用开发的门槛。 可以预见,2025年,是AI应用落地爆发之年! ✔…...

表记录的检索
1.select语句的语法格式 select 字段列表 from 表名 where 条件表达式 group by 分组字段 [having 条件表达式] order by 排序字段 [asc|desc];说明: from 子句用于指定检索的数据源 where子句用于指定记录的过滤条件 group by 子句用于对检索的数据进行分组 ha…...

QT——概述
<1>, Qt概述 Qt 是⼀个 跨平台的 C 图形⽤⼾界⾯应⽤程序框架 Qt ⽀持多种开发⼯具,其中⽐较常⽤的开发⼯具有:Qt Creator、Visual Studio、Eclipse. 一,Qt Creator 集成开发环境(IDE) Qt Creator 是⼀个轻量…...
9.1.领域驱动设计
目录 一、领域驱动设计核心哲学 战略设计与战术设计的分野 • 战略设计:限界上下文(Bounded Context)与上下文映射(Context Mapping) • 战术设计:实体、值对象、聚合根、领域服务的构建原则 统一语言&am…...

DataHub:现代化元数据管理的核心平台与应用实践
一、DataHub平台概述 DataHub是由LinkedIn开源并持续维护的下一代元数据管理平台,它采用实时流式架构(基于Kafka)实现元数据的收集、处理和消费,为现代数据栈提供了端到端的元数据解决方案。作为数据治理的基础设施,D…...
【Python 正则表达式】
Python 正则表达式通过 re 模块实现模式匹配,是文本处理的核心工具。以下是系统化指南,包含语法详解和实战案例: 一、正则基础语法 1. 元字符速查表 符号含义示例匹配结果.任意字符(除换行符)r"a.c"“abc”…...

ubuntu服务器版启动卡在start job is running for wait for...to be Configured
目录 前言 一、原因分析 二、解决方法 总结 前言 当 Ubuntu 服务器启动时,系统会显示类似 “start job is running for wait for Network to be Configured” 或 “start job is running for wait for Plymouth Boot Screen Service” 等提示信息,并且…...
list简单模拟实现
成员变量迭代器(重点)ListIterator运算符重载begin、end 插入、删除inserterase头插、尾插、头删、尾删 operator->const_iterator拷贝构造operator析构函数完整代码 由于前面已经模拟实现了vector,所以这里关于一些函数实现就不会讲的过于…...

QT6 源(101)阅读与注释 QPlainTextEdit,其继承于QAbstractScrollArea,属性学习与测试
(1) (2) (3)属性学习与测试 : (4) (5) 谢谢...

Coze 实战教程 | 10 分钟打造你的AI 助手
> 文章中的 xxx 自行替换,文章被屏蔽了。 📱 想让你的xxx具备 AI 对话能力?本篇将手把手教你,如何用 Coze 平台快速构建一个能与用户自然交流、自动回复提问的 xxx助手,零代码、超高效! 📌…...
Spring Boot中Redis序列化配置详解
精心整理了最新的面试资料和简历模板,有需要的可以自行获取 点击前往百度网盘获取 点击前往夸克网盘获取 引言 在使用Spring Boot集成Redis时,序列化方式的选择直接影响数据存储的效率和系统兼容性。默认的JDK序列化存在可读性差、存储空间大等问题&am…...
【spring】spring源码系列之九:spring事务管理(上)
系列文章目录 前言 在开始spring事务管理的源码分析之前,我们先自己尝试简单实现一下事务管理,实现事务的传递 一、事务的使用 有了spring之后,事务的使用变得简单,但是封装得也更深,功能也更复杂,也更…...

牛客网 NC22167: 多组数据a+b
牛客网 NC22167: 多组数据ab 题目分析 这道题目来自牛客网(题号:NC22167),要求我们计算两个整数a和b的和。乍看简单,但有以下特殊点需要注意: 输入包含多组测试数据每组输入两个整数当两个整数都为0时表示…...

K8S Ingress、IngressController 快速开始
假设有如下三个节点的 K8S 集群: k8s31master 是控制节点 k8s31node1、k8s31node2 是工作节点 容器运行时是 containerd 一、理论介绍 1)什么是 Ingress 定义:Ingress 是 Kubernetes 中的一种资源对象,它定义了外部访问集群内…...
GitHub 趋势日报 (2025年05月14日)
本日报由 TrendForge 系统生成 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日整体趋势 Top 10 排名项目名称项目描述今日获星总星数语言1xming521/WeClone🚀从聊天记录创造数字分身的一站式解决方案&…...

快消零售AI转型:R²AIN SUITE如何破解效率困局
引言 快消零售行业正经历从“规模扩张”到“精益运营”的转型阵痛,消费者需求迭代加速、供应链复杂度攀升、人力成本持续走高,倒逼企业通过技术升级实现业务重塑[1]。RAIN SUITE以AI应用中台为核心,针对快消零售场景打造全链路提效方案&…...

电路中零极点的含义
模拟电路中的零极点设计非常重要,涉及到系统的稳定。零点是开环传输函数分子为0时对应的频率。极点就是开环传递函数分子为0时对应的频率。 零点表征电路中能量输出路径的抵消效应,当不同支路的信号大小相等、方向相反时,导致特定频率下响应…...

解读RTOS 第八篇 · 内核源码解读:以 FreeRTOS 为例
1. 引言 FreeRTOS 作为最流行的嵌入式实时操作系统之一,其内核源码简洁且功能完善。通过剖析其关键模块(任务管理、调度器、队列、内存管理和移植层),不仅能够更深入地理解 RTOS 的运行机制,还能掌握根据项目需求进行内核定制与优化的能力。本章将带你以 FreeRTOS 10.x 版…...

2025年长三角+山东省赛+ 认证杯二阶段资料助攻说明
长三角高校数模B题 完整论文代码已经在售后群 网盘链接 发布 长三角更新时间轴 5.15 23:00 B站发布 完整论文讲解视频 5.16 18:00 j降重说明 5.17 22:00 无水印版本可视化无水印代码 其余时间 写手老师 售后群在线答疑 山东省助攻C道 认证杯二阶段助攻C题 山东省认证杯…...
平滑过滤值策略
该策略是一种基于技术分析的交易策略,主要通过计算一系列指标来判断市场趋势,并根据这些指标生成交易信号。 策略概述 该策略的核心在于利用多个技术指标来分析市场动态,并据此制定交易决策。它结合了价格动量、波动性和趋势跟踪等多种因素,旨在提高交易的准确性和效率。…...
MATLAB安装全攻略:常见问题与解决方案
MATLAB安装常见问题与解决方案 一、系统兼容性验证 安装前需确认操作系统满足MATLAB版本要求: Windows 10版本1903及以上(64位)macOS Monterey 12.6及以上Ubuntu 22.04 LTS及以上 验证命令示例: # Linux系统验证 lsb_release…...