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支持集合匹配(In,?Exists
?推薦使用場景?舊版本兼容現代集群(通常由 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 是否允許啟動 (Allow,?Forbid,?Replace)。解決并發沖突。
      • 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 的配置(如?completions,?parallelism)管理 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?等)內置強大并發策略 (Allow,?Forbid,?Replace)
?聲明式管理?配置文件管理 (如?/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
英文地址,請注明出處:http://en.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;并將其 追加 到原始的…