K8s Pod 调度基础——1

目录

一、Replication Controller&ReplicaSet

‌一、Replication Controller (RC)‌

‌原理‌

‌特性‌

‌意义‌

‌示例与逐行解释‌

‌二、ReplicaSet (RS)‌

‌原理‌

‌特性‌

‌意义‌

‌示例与逐行解释‌

‌三、RC 与 RS 的对比‌

‌四、总结‌

二、DeamonSet

‌一、核心原理‌

‌二、显著特性‌

‌三、核心意义与应用场景‌

‌四、与其他控制器的对比‌

‌总结‌

三、CronJob


一、Replication Controller&ReplicaSet

一、Replication Controller (RC)

原理
  1. 核心功能‌:

    • 确保指定数量的 Pod 副本‌始终运行‌。若 Pod 因故障或节点问题终止,RC 会自动创建新副本。
    • 通过 ‌标签选择器(Label Selector)‌ 匹配并管理 Pod。
  2. 工作流程‌:

    • 监听机制‌:RC 持续监控集群中与其标签匹配的 Pod 数量。
    • 扩缩容‌:当实际 Pod 数量与 replicas 字段不符时,RC 会通过创建或删除 Pod 来修正差异。
特性
  • 简单扩缩容‌:通过修改 replicas 值直接调整副本数。
  • 滚动更新支持‌:需配合手动操作(如逐步修改 RC 配置)实现。
  • 局限性‌:
    • 标签选择器仅支持‌等式匹配‌(如 app=nginx),无法实现复杂条件(如集合匹配)。
    • 已被更现代的 ‌ReplicaSet‌ 取代(但仍兼容)。
意义
  • 为 Kubernetes 早期版本提供基础的 Pod 高可用保障,是‌无状态服务‌的核心管理工具。
示例与逐行解释

rc-example.yaml


apiVersion: v1
kind: ReplicationController
metadata:name: nginx-rc
spec:replicas: 3selector:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- name: nginximage: nginx:1.14ports:- containerPort: 80

逐行解释‌:

  1. apiVersion: v1:使用 Kubernetes 核心 API 版本。
  2. kind: ReplicationController:声明资源类型为 RC。
  3. replicas: 3:指定维持 3 个 Pod 副本。
  4. selector: app: nginx:通过标签 app=nginx 选择管理的 Pod。
  5. template:定义 Pod 模板,所有副本均按此配置创建。
  6. containers:指定运行 Nginx 容器,监听 80 端口。

二、ReplicaSet (RS)

原理
  1. 核心改进‌:

    • 继承 RC 功能,但引入更强大的 ‌集合型标签选择器‌(支持 matchLabels 和 matchExpressions)。
    • 通常由 ‌Deployment‌ 管理,实现声明式更新和版本控制。
  2. 工作流程‌:

    • 与 RC 类似,但支持更灵活的 Pod 选择逻辑(如 environment in (prod, staging))。
特性
  • 增强的选择器‌:支持多条件匹配(如 AND 逻辑)。
  • 与 Deployment 集成‌:作为 Deployment 的底层组件,负责 Pod 副本管理,而 Deployment 处理滚动更新和回滚。
  • 资源版本‌:属于 apps/v1 API 组,是 RC 的替代品。
意义
  • 为现代 Kubernetes 提供更精细的 Pod 管理能力,是 ‌Deployment 的基石‌,支撑无状态应用的自动化运维。
示例与逐行解释

rs-example.yaml

apiVersion: apps/v1
kind: ReplicaSet
metadata:name: nginx-rs
spec:replicas: 3selector:matchLabels:app: nginxmatchExpressions:- {key: environment, operator: In, values: [prod]}template:metadata:labels:app: nginxenvironment: prodspec:containers:- name: nginximage: nginx:1.14ports:- containerPort: 80

逐行解释‌:

  1. apiVersion: apps/v1:使用 apps 组的 API 版本。
  2. kind: ReplicaSet:声明资源类型为 RS。
  3. selector.matchLabels:必须匹配 app=nginx
  4. selector.matchExpressions:额外要求 Pod 的 environment 标签值为 prod
  5. template:定义 Pod 模板,包含复合标签(app 和 environment)。

三、RC 与 RS 的对比

特性Replication ControllerReplicaSet
API 版本v1(核心组)apps/v1(扩展组)
标签选择器仅等式匹配(key=value支持集合匹配(InExists
推荐使用场景旧版本兼容现代集群(通常由 Deployment 管理)
更新策略需手动操作与 Deployment 协作支持滚动更新

四、总结

  • Replication Controller‌:Kubernetes 早期用于保障 Pod 副本数的基础控制器,功能简单但已过时。
  • ReplicaSet‌:RC 的升级版,提供更强大的标签选择能力,是 ‌Deployment 的底层核心‌,支撑现代无状态应用的自动化管理。
  • 最佳实践‌:直接使用 ‌Deployment‌ 管理 RS,而非手动创建 RS 或 RC。

二、DeamonSet

DaemonSet 是 Kubernetes 中的核心控制器之一,用于确保集群中的每个节点(或符合特定条件的节点)上都运行一个‌相同且唯一‌的 Pod 副本。以下是其原理、特性及意义的详细解析:


一、核心原理

  1. 节点级守护

    • 当创建 DaemonSet 时,它会‌自动为每个符合条件的节点创建并维护一个 Pod‌。新节点加入集群后,DaemonSet 会立即在新节点上部署 Pod;节点被移除时,该节点上的 Pod 会被自动回收。
    • 调度机制:通过 ‌NodeAffinity‌ 和 Kubernetes 调度器协同工作(Kubernetes 1.12 后),确保 Pod 绑定到目标节点。
  2. 污点容忍(Tolerations)

    • 支持为 Pod 配置容忍度,使其能在带有污点(Taints)的特殊节点(如 Master 节点、GPU 节点)上运行。
    • 示例:允许在 Master 节点运行 kube-proxy
      tolerations
      - key: node-role.kubernetes.io/mastereffect: NoSchedule 

二、显著特性

  1. 节点全覆盖与动态伸缩

    • 默认覆盖所有节点,也可通过 ‌nodeSelector 或 nodeAffinity‌ 限定目标节点(如仅 GPU 节点)。
    • 集群扩容时自动在新节点部署 Pod,缩容时自动清理。
  2. 更新策略

    • 滚动更新(RollingUpdate)‌:逐步替换旧 Pod(可设置 maxUnavailable 控制并发数),减少服务中断。
    • 按需更新(OnDelete)‌:手动删除旧 Pod 后才创建新版本,适用于需严格控制的场景(如网络插件)。
  3. 资源与健康管理

    • 支持为 Pod 配置资源限制(CPU/内存)及优先级,防止资源耗尽。
    • 可通过 ‌Liveness/Readiness 探针‌ 监控 Pod 健康状态,实现自动重启。

三、核心意义与应用场景

意义‌:

  • 标准化节点服务‌:统一管理集群中所有节点的基础设施组件,避免手动部署的复杂性。
  • 高可用与自愈‌:节点故障时自动迁移 Pod,守护进程崩溃时自动重启。
  • 资源高效利用‌:按需部署,避免为临时任务预留专用资源。

典型应用场景‌:

场景组件示例作用
日志收集Fluentd、Filebeat从每个节点的 /var/log 采集日志
监控代理Prometheus Node Exporter、cAdvisor采集节点级 CPU/内存等指标
网络插件Calico、Cilium、kube-proxy为节点提供网络策略及服务代理
存储服务Ceph、GlusterFS 客户端节点级分布式存储挂载
安全运维Falco(安全审计)、运维Agent实时检测异常或执行批量维护任务

四、与其他控制器的对比

特性DaemonSetDeployment/ReplicaSet
调度目标每个节点运行 ‌1 个 Pod集群内运行 ‌指定数量的 Pod
扩缩容触发节点变化时自动调整手动调整副本数
适用场景节点级基础服务(日志/网络)无状态应用(Web 服务)

总结

DaemonSet 是 Kubernetes 管理‌节点级守护进程‌的核心工具,通过自动化部署、动态扩缩容和灵活的策略配置,为集群提供日志收集、网络代理、监控等基础设施能力。其设计确保了服务的全局覆盖与高可用性,是生产环境中不可或缺的组件。

三、CronJob

简单来说,CronJob 是 Kubernetes 中用于在特定时间点或按计划周期性地运行 Job 的对象。‌ 它借鉴了类 Unix 系统(如 Linux)中 cron 守护进程的概念,将定时任务的管理带入了容器化和集群化的世界。

核心原理:

  1. 声明式配置:

    • 用户通过 YAML 清单文件定义一个 CronJob 资源。
    • 核心字段包括:
      • schedule: 使用 ‌Cron 表达式‌ 定义任务运行的时间表(何时运行)。格式为 分 时 日 月 周(例如 "0 * * * *" 表示每小时的第 0 分钟运行)。
      • jobTemplate: 定义要运行的 Job 模板。这个 Job 描述了真正要执行的任务(在 Pod 中运行的容器命令或脚本)。
      • concurrencyPolicy: 控制当前正在运行的 Job 尚未完成时,新计划的 Job 是否允许启动 (AllowForbidReplace)。解决并发冲突。
      • startingDeadlineSeconds: Job 必须在预定时间后多少秒内开始运行,否则被标记为失败(考虑调度延迟)。
      • successfulJobsHistoryLimit / failedJobsHistoryLimit: 保留多少已完成(成功/失败)的 Job 记录历史(便于查看日志和排错)。
      • suspend: 布尔值,用于暂停 (true) 或恢复 (false) CronJob 的调度。
  2. Controller Manager 的 CronJob Controller:

    • Kubernetes 控制平面的 kube-controller-manager 组件内运行着一个专门的 CronJob Controller
    • 核心守护循环:
      • 监视:‌ 持续监视集群中所有的 CronJob 对象。
      • 计算下一次运行时间:‌ 对于每个活跃的 CronJob(suspend: false),Controller 根据其 schedule 字段计算在当前时间之后下一次应该运行的具体时间点。
      • 触发 Job 创建:‌ 当系统时间到达计划的下一次运行时间点时:
        • Controller 检查 concurrencyPolicy
          • Allow (默认):总是创建新的 Job。
          • Forbid:如果当前有任何该 CronJob 创建的 Job 还在运行(状态 Running),则跳过本次计划,等到下一次计划时间再检查。
          • Replace:如果当前有旧的 Job 还在运行,则终止它(优雅终止期后强制终止),然后立即创建一个新的 Job。
        • 检查 startingDeadlineSeconds:如果当前时间已经超过了计划时间加上这个阈值,则 Controller 认为这次运行“迟到太多”,不会创建 Job,并将这次错过的运行记录为事件(可通过 kubectl describe cronjob <name> 查看)。
        • 创建 Job 对象:‌ 如果满足策略和时间要求,Controller ‌创建‌ 一个新的 Job 对象 (metadata.generateName 基于 CronJob 名称生成唯一 Job 名)。
      • Job 的执行:‌ 一旦 Job 对象被创建,Kubernetes 的 ‌Job Controller‌ 就会接管:
        • 根据 Job 的 template 创建一个或多个 Pod。
        • 监控 Pod 的执行状态(成功完成、失败)。
        • 根据 Job 的配置(如 completionsparallelism)管理 Pod 的重试和并行执行。
      • 历史记录管理:‌ CronJob Controller 会根据 successfulJobsHistoryLimit 和 failedJobsHistoryLimit 的设置,自动清理旧的、已完成(成功或失败)的 Job 对象及其关联的 Pod(但 Pod 的日志通常需要独立收集)。

关键特性:

  1. 基于 Cron 表达式的精确调度:‌ 提供强大的时间控制能力,满足分钟、小时、天、月、周级别的各种定时需求。
  2. Job 模板化:‌ 将“何时运行”(CronJob)和“运行什么”(Job)清晰分离。jobTemplate 定义了每次计划执行时的具体任务逻辑。
  3. 并发控制 (concurrencyPolicy):‌ 关键特性,防止因任务执行时间过长导致多个实例意外并行运行,引发资源争用或逻辑冲突。Forbid 和 Replace 策略提供了灵活性。
  4. 容错与重试:
    • Job 级别的重试:‌ 由 Job Controller 负责。如果 Pod 运行失败(退出码非零),Job Controller 会根据 Job Spec 中配置的 backoffLimit 自动创建新的 Pod 重试任务。
    • 错过的调度 (startingDeadlineSeconds):‌ 处理短暂的调度器繁忙或控制平面问题导致的延迟,避免大量积压的 Job 同时启动冲击系统。
  5. 历史记录保留:‌ 保留一定数量的成功/失败 Job 记录,便于审计、日志查看和故障排查 (kubectl get jobs / kubectl logs <pod-name>)。
  6. 暂停与恢复 (suspend):‌ 无需删除 CronJob 即可临时停止其调度,方便维护或调试。
  7. 资源管理与隔离:‌ 每个 Job/Pod 可以定义自己的资源请求 (requests) 和限制 (limits),确保任务运行时获得所需资源且不会耗尽节点资源。多个 CronJob 的任务在集群资源池中共享与隔离。
  8. 声明式 API:‌ 通过清单文件描述期望状态,Kubernetes 负责使其达成并维持。

核心意义与价值:

  1. 自动化运维任务:
    • 数据库备份/恢复:‌ 定时备份关键数据库。
    • 日志轮转/清理:‌ 清理旧日志文件,释放存储空间。
    • 证书轮换:‌ 自动更新服务证书。
    • 集群维护:‌ 定期运行集群健康检查、资源报告生成。
    • 缓存预热/刷新:‌ 在访问高峰前预热缓存。
  2. 周期性数据处理与分析:
    • ETL 作业:‌ 按计划(如每天凌晨)从源系统抽取数据、转换、加载到数据仓库。
    • 报告生成:‌ 定时生成业务或系统性能报告。
    • 机器学习模型训练/再训练:‌ 按计划更新模型。
  3. 微服务架构中的定时触发:
    • 触发批处理服务。
    • 发送周期性通知或提醒。
    • 执行定期的数据同步任务。
  4. 提升可靠性与可管理性:
    • 标准化:‌ 将原来分散在各服务器上的 crontab 任务集中到 Kubernetes 统一管理。
    • 弹性与自愈:‌ 任务运行在 Pod 中,Pod 故障时由 Job Controller 自动重启(根据 backoffLimit)。节点故障时,任务会被调度到其他健康节点运行。
    • 资源利用率:‌ 集群资源池化,避免为偶尔运行的定时任务预留专用服务器。
    • 监控与日志:‌ 与 Kubernetes 的监控(Prometheus, Metrics Server)和日志(EFK, Loki)生态系统无缝集成,方便跟踪任务执行状态、性能和日志。
    • 版本控制与审计:‌ CronJob 定义作为 YAML 文件可纳入 Git 进行版本控制,变更可追踪。
  5. 云原生实践:‌ CronJob 是 Kubernetes 原生提供的定时任务解决方案,避免了在容器内运行 crond 或使用外部调度系统的复杂性,符合云原生理念。

与传统 cron 的主要区别:

特性传统 cron (单机)Kubernetes CronJob (集群)
运行环境单个服务器/虚拟机Kubernetes 集群 (分布式)
调度单位直接执行命令/脚本创建 Job 对象,Job 再创建 Pod 执行容器
资源管理受限于单机资源集群资源池,可调度到任意节点,资源隔离
高可用/容错依赖服务器高可用,任务本身无自动重启/转移Pod 故障自动重启 (Job),节点故障自动迁移任务
并发控制通常较弱,依赖脚本自身逻辑 (flock 等)内置强大并发策略 (AllowForbidReplace)
声明式管理配置文件管理 (如 /etc/crontab)Kubernetes YAML 清单,API 驱动
监控/日志分散,需自行收集整合与 K8s 监控/日志生态 (Prometheus, EFK) 集成
历史记录通常依赖日志文件自动保留 Job 历史记录
暂停/恢复需注释或移动 cron 条目简单设置 suspend: true/false

总结:

Kubernetes 的 ‌CronJob‌ 是一个强大的原生对象,它将经典的定时任务概念完美地融入了容器化、集群化的云原生环境。其核心原理是通过 Controller 监听 CronJob 定义,基于 Cron 表达式计算计划时间,并在满足条件(并发策略、截止时间)时创建 Job 对象来执行具体任务。它的特性(精确调度、并发控制、容错重试、历史记录、资源管理)和意义(自动化运维、数据处理、标准化、提升可靠性弹性、云原生集成)使其成为在 Kubernetes 上运行周期性、批处理作业的首选和标准方式。理解 CronJob 对于有效管理和自动化 Kubernetes 集群中的任务至关重要。

基本脚本 


apiVersion: batch/v1
kind: CronJob
metadata:name: log-cleanernamespace: default
spec:schedule: "0 * * * *"  # 每小时的第0分钟运行concurrencyPolicy: Forbid  # 禁止并发执行startingDeadlineSeconds: 300  # 允许延迟5分钟successfulJobsHistoryLimit: 3  # 保留3个成功记录failedJobsHistoryLimit: 1      # 保留1个失败记录jobTemplate:spec:template:spec:containers:- name: log-cleanerimage: alpine:latestcommand: ["/bin/sh", "-c"]args: - echo "开始清理日志...";find /var/log/app -name "*.log" -mtime +7 -delete;echo "清理完成"volumeMounts:- name: log-volumemountPath: /var/log/apprestartPolicy: OnFailurevolumes:- name: log-volumehostPath:path: /var/log/app

逐行解释:

  1. apiVersion: batch/v1 - 指定使用的Kubernetes API版本

  2. kind: CronJob - 声明这是一个CronJob资源

  3. metadata部分:

    • name: log-cleaner - 给这个CronJob命名
    • namespace: default - 指定部署到default命名空间
  4. spec部分(CronJob核心配置):

    • schedule: "0 * * * *" - cron表达式,表示每小时的第0分钟运行
    • concurrencyPolicy: Forbid - 如果前一个任务还在运行,跳过本次执行
    • startingDeadlineSeconds: 300 - 允许任务延迟最多5分钟启动
    • 历史记录保留设置:成功3个,失败1个
  5. jobTemplate部分(定义实际运行的Job):

    • spec.template - Pod模板定义
    • containers配置:
      • 使用alpine镜像
      • commandargs组合相当于执行一个shell脚本
      • 脚本内容:查找并删除/var/log/app目录下7天前的.log文件
  6. volumeMountsvolumes

    • 将宿主机的/var/log/app目录挂载到容器内
    • 这样容器内操作会直接影响宿主机上的日志文件

这个示例展示了完整的CronJob配置,包含了定时调度、任务定义、资源挂载等关键元素。实际使用时可以根据需求调整schedule、镜像和command等内容

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/87514.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/87514.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C# Task异步的常用方法

Task异步的常用方法 C# 中的 Task 类是 System.Threading.Tasks 命名空间的一部分&#xff0c;用于表示异步操作。 一、Task.Run(Action action): 此静态方法用于在后台运行一个新任务&#xff0c;并返回与该任务关联的 Task 实例。 本质是将任务放入线程池执行&#xff0c;自…

OpenResty实战之PB级物联网数据处理:时序数据库优化实战

某智慧能源平台通过本方案成功处理了日均1.2万亿数据点&#xff0c;存储成本降低70%&#xff0c;查询延迟从分钟级优化到亚秒级。本文将深入解析PB级物联网数据处理的核心挑战与时序数据库深度优化技巧。 一、物联网数据特性与存储挑战 1.1 物联网数据核心特征 #mermaid-svg-U…

聊聊架构(5)数字化时代的平台商业架构

在数字化浪潮的推动下&#xff0c;平台经济已成为全球经济增长的关键驱动力。作为架构师&#xff0c;不仅要精通架构设计的基础方法论&#xff0c;还需具备敏锐的商业洞察力。架构的价值在于服务业务和商业&#xff0c;而业务的发展又促使架构不断演进。本文将深入探讨平台的商…

【数据增强】精细化贴图数据增强

1.任务背景 假设我有100个苹果的照片&#xff0c;我需要把这些照片粘贴到传送带照片上&#xff0c;模拟“传送带苹果检测”场景。 这种贴图的方式更加合理一些&#xff0c;因为yolo之类的mosaic贴图&#xff0c;会把图像弄的非常支离破碎。 现在我需要随机选择几张苹果图像&am…

HTML响应式Web设计

什么是响应式Web设计&#xff1f; RWD指的是响应式Web设计&#xff08;Responsive Web Design)RWD能够以可变尺寸传递网页RWD对于平板和移动设备是必需的 创建一个响应式设计&#xff1a; <!DOCTYPE html> <html lang"en-US"> <head> <styl…

【读代码】百度开源大模型:ERNIE项目解析

一、项目基本介绍 1.1 项目概述 ERNIE(Enhanced Representation through kNowledge IntEgration)是百度基于PaddlePaddle深度学习框架开发的多模态预训练模型体系。最新发布的ERNIE 4.5系列包含10个不同变体,涵盖从300B参数的巨型MoE模型到0.3B的轻量级模型,形成完整的多…

2025年6月:技术探索与生活平衡的协奏曲

> 当代码与晨跑轨迹在初夏的阳光下交织,我找到了程序员生活的黄金分割点 --- ### 一、技术突破:AI驱动的智能工作流优化系统 这个月我成功部署了第三代自动化工作流系统,核心创新在于**动态决策树+实时反馈机制**。系统可自主优化处理路径,错误率下降62%! ```pyth…

如何查看服务器运行了哪些服务?

&#x1f7e2; 一、Linux服务器Linux下&#xff0c;常用以下几种方法&#xff1a;✅ 1. 查看所有正在监听端口的服务netstat -tulnp 含义&#xff1a;-t TCP-u UDP-l 监听状态-n 显示端口号-p 显示进程号和程序名示例输出&#xff1a;pgsql复制编辑Proto Recv-Q Send-Q Local A…

【Linux基础知识系列】第三十八篇 - 打印系统与 PDF 工具

在Linux系统中&#xff0c;打印和PDF处理是日常办公和文档管理中不可或缺的功能。CUPS&#xff08;Common Unix Printing System&#xff09;是Linux中常用的打印服务&#xff0c;它提供了打印任务的管理和打印设备的配置功能。同时&#xff0c;Linux也提供了多种PDF处理工具&a…

STM32CUBEMX 使用教程6 — TIM 定时器配置、定时中断

往期文章推荐&#xff1a; STM32CUBEMX 使用教程5 — DMA配置 & 串口结合DMA实现数据搬运 STM32CUBEMX 使用教程4 — 串口 (USART) 配置、重定向 printf 输出 STM32CUBEMX 使用教程3 — 外部中断&#xff08;EXTI&#xff09;的使用 STM32CUBEMX 使用教程2 — GPIO的使…

微信小程序实现table表格

微信小程序没有table标签&#xff0c;运用display:table和display:flex实现一个内容字数不固定表格…… wxml&#xff1a; <view class"ContentShow"> <view class"conht">烟台市新闻发布会登记审批表</view> <view class"tabl…

MySQL 基本面试题

目录 一、SQL的基本操作 1、SQL查询的执行顺序 2、count(*)、count(1) 、count(列名) 的区别 3、char 和 varchar 的区别 4、MySQL 中常用的基础函数 5、MySQL的执行流程 6、MyISAM和InnoDB的区别 二、事务 1、事务的基本概念 2、事务的四大特性&#xff08;ACID) 3…

WPF学习笔记(12)下拉框控件ComboBox与数据模板

下拉框控件ComboBox与数据模板 一、ComboBox1. ComboBox概述2. ItemsControl类3. Selector类4. ComboBox类 二、ComboBox数据模板总结 一、ComboBox 1. ComboBox概述 ComboBox类代表一个有下拉列表的选择控件&#xff0c;供用户选择。 官方文档&#xff1a;https://learn.mic…

Docker for Windows 设置国内镜像源教程

在使用 Docker 时&#xff0c;由于默认的 Docker Hub 镜像源位于国外&#xff0c;国内用户在拉取镜像时可能会遇到速度慢或连接不稳定的问题。为了加速镜像拉取&#xff0c;可以将 Docker 配置为使用国内镜像源。以下是适用于 Windows 系统的详细配置方法&#xff1a; 方法一&…

一键部署AI工具!用AIStarter快速安装ComfyUI与Stable Diffusion

AIStarter部署AI工具&#xff0c;让AI开发更简单&#xff01;无需研究复杂环境配置&#xff0c;AIStarter平台提供一键安装ComfyUI和Stable Diffusion&#xff0c;支持多版本选择&#xff0c;快速上手。以下是详细步骤&#xff1a; 一、访问AIStarter市场 下载AIStarter&#x…

Python基础(吃洋葱小游戏)

下面我将为你设计一个"吃洋葱小游戏"的Python实现方案&#xff0c;使用Pygame库开发。这个游戏模拟吃洋葱的过程&#xff0c;玩家需要收集不同种类的洋葱以获得高分&#xff0c;同时避免吃到辣椒。 &#x1f9c5; 吃洋葱小游戏 - Python实现方案 &#x1f3ae; 1. …

Objective-C 路由表原理详解

在 Objective-C 中实现路由表是组件化架构的核心&#xff0c;它通过 URL 映射机制实现模块间解耦通信。以下是完整实现原理&#xff1a; 一、核心架构设计 #mermaid-svg-5jMinPiZe8mivAbi {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fil…

通过交互式网页探索传输现象-AI云计算数值分析和代码验证

传输过程涉及质量、动量和能量等物理量在各种系统中的基本运动和转移&#xff0c;主要分为动量传输、热量传输和质量传输&#xff0c;在工程、环境科学、生物学和物流等领域至关重要。 传输过程是指物理量&#xff08;如质量、动量和能量&#xff09;在物理、化学、生物或工程系…

使用Rust原生实现小波卡尔曼滤波算法

一、算法原理概述小波变换&#xff08;Wavelet Transform&#xff09;通过多尺度分解将信号分为高频&#xff08;细节&#xff09;和低频&#xff08;近似&#xff09;部分&#xff0c;高频通常包含噪声&#xff0c;低频保留主体信息。使用Haar小波&#xff08;计算高效&#x…

leetcode 3304. 找出第 K 个字符 I 简单

Alice 和 Bob 正在玩一个游戏。最初&#xff0c;Alice 有一个字符串 word "a"。 给定一个正整数 k。 现在 Bob 会要求 Alice 执行以下操作 无限次 : 将 word 中的每个字符 更改 为英文字母表中的 下一个 字符来生成一个新字符串&#xff0c;并将其 追加 到原始的…