kubernetes--技術文檔--基本概念--《10分鐘快速了解》

官網主頁:?images/flower.svgKubernetes

什么是k8s

Kubernetes?也稱為 K8s,是用于自動部署、擴縮和管理容器化應用程序的開源系統。

它將組成應用程序的容器組合成邏輯單元,以便于管理和服務發現。Kubernetes 源自Google 15 年生產環境的運維經驗,同時凝聚了社區的最佳創意和實踐。

永不過時

Kubernetes 是開源系統,可以自由地部署在企業內部,私有云、混合云或公有云,讓您輕松地做出合適的選擇。

請訪問下載部分下載 Kubernetes。

kubernetes的特性

自動化上線和回滾

?Kubernetes 會分步驟地將針對應用或其配置的更改上線,同時監視應用程序運行狀況以確保你不會同時終止所有實例。如果出現問題,Kubernetes 會為你回滾所作更改。你應該充分利用不斷成長的部署方案生態系統。

服務發現與負載均衡

?無需修改你的應用程序去使用陌生的服務發現機制。Kubernetes 為容器提供了自己的 IP 地址和一個 DNS 名稱,并且可以在它們之間實現負載均衡。

自我修復

?重新啟動失敗的容器,在節點死亡時替換并重新調度容器, 殺死不響應用戶定義的健康檢查的容器, 并且在它們準備好服務之前不會將它們公布給客戶端。

存儲編排

?自動掛載所選存儲系統,包括本地存儲、公有云提供商所提供的存儲或者諸如 iSCSI 或 NFS 這類網絡存儲系統。

Secret 和配置管理

部署和更新 Secret 和應用程序的配置而不必重新構建容器鏡像, 且不必將軟件堆棧配置中的秘密信息暴露出來。

自動裝箱

根據資源需求和其他限制自動放置容器,同時避免影響可用性。 將關鍵性的和盡力而為性質的工作負載進行混合放置,以提高資源利用率并節省更多資源。?

批量執行

除了服務之外,Kubernetes 還可以管理你的批處理和 CI 工作負載,在期望時替換掉失效的容器。?

IPv4/IPv6 雙協議棧

為 Pod 和 Service 分配 IPv4 和 IPv6 地址

?水平擴縮

?使用一個簡單的命令、一個 UI 或基于 CPU 使用情況自動對應用程序進行擴縮。

為擴展性設計

?無需更改上游源碼即可擴展你的 Kubernetes 集群。

kubernetes的關鍵組件:

Kubernetes節點有運行應用容器必備的服務,而這些都是受Master的控制。每個節點上都要運行Docker。Docker來負責所有具體的映像下載和容器運行。

  • Kubernetes主要由以下幾個核心組件組成:
  1. etcd:保存了整個集群的狀態;

  2. apiserver:提供了資源操作的唯一入口,并提供認證、授權、訪問控制、API注冊和發現等機制;

  3. controller manager:負責維護集群的狀態,比如故障檢測、自動擴展、滾動更新等;

  4. scheduler:負責資源的調度,按照預定的調度策略將Pod調度到相應的機器上;

  5. kubelet:負責維護容器的生命周期,同時也負責Volume(CVI)和網絡(CNI)的管理;

  6. Container runtime:負責鏡像管理以及Pod和容器的真正運行(CRI);

  7. kube-proxy:負責為Service提供cluster內部的服務發現和負載均衡;
    除了核心組件,還有一些推薦的Add-ons:

  8. kube-dns:負責為整個集群提供DNS服務

  9. Ingress Controller:為服務提供外網入口

  10. Heapster:提供資源監控

  11. Dashboard:提供GUI

  12. Federation:提供跨可用區的集群

  13. Fluentd-elasticsearch:提供集群日志采集、存儲與查詢

kubernetes的工作原理:

Kubernetes的工作原理包括以下幾個核心組件:

  1. Master:主組件提供群集的控制平面。主組件對集群做出全局決策(例如,調度),并且它們檢測并響應集群事件(例如,在部署的副本字段不滿足時啟動新的pod)。主組件可以在群集中的任何計算機上運行。但是,為簡單起見,設置腳本通常會在同一臺計算機上啟動所有主組件,并且不在此計算機上運行用戶容器。
  2. kubectl:這是集群管理命令行工具集,通過客戶端的kubectl命令集操作,API Server響應對應的命令結果,從而達到對kubernetes集群的管理。
  3. kube-apiserver:這是資源操作入口,提供了資源對象的唯一操作入口,其他所有組件都必須通過它提供的API來操作資源數據,只有API Server與存儲通信,其他模塊通過API Server訪問集群狀態。對相關的資源數據“全量查詢”+“變化監聽”,實時完成相關的業務功能。

此外,Kubernetes還具有以下功能特性:

  1. 副本與彈性伸縮:容器如果部署無狀態服務,一個好處就是可以多副本,并且可以彈性伸縮。在Kubernetes里面,副本數目是以pod為單位的,由controller進程控制,可以通過創建一個Deployment來控制副本數。Kubernetes也可以實現autoscaling。有一個組件Horizontal Pod Autoscaling,可以通過監控CPU的使用情況動態調整Pod的數量。
  2. 編排:為了能夠通過編排文件一鍵創建整個應用,需要有編排功能。Kubernetes的編排是基于yml文件。
  3. 服務發現與DNS:容器平臺的一個重要的功能是服務發現,也即當容器的地址改變的時候,可以自動進行服務之間的關聯。Kubernetes的DNS組件是通過skyDNS實現的,負載均衡是通過將DNS轉化為VIP,有個內置的負載均衡器kube-proxy來完成這件事情。

kubernetes中的重要概念:

Kubernetes API:

????????Kubernetes API是Kubernetes的核心接口,它提供了一組RESTful API,用于與Kubernetes集群進行交互。通過這些API,用戶可以創建、查詢、更新和刪除Kubernetes中的各種資源,如Pod、Service、Deployment等。

Pod:

????????Pod是Kubernetes中的基本運行單元,它包含了運行應用程序的容器和相關的配置信息。一個Pod中可以運行一個或多個容器,這些容器共享相同的網絡命名空間、存儲卷和IPC。

ReplicaSet:

????????ReplicaSet是Kubernetes中的一種控制器,它用于管理Pod的復制和調度。通過創建ReplicaSet,用戶可以指定Pod的復制數量,并確保這些Pod始終在集群中運行。

Horizontal Pod Autoscaler(HPA):

????????HPA是Kubernetes中的一種擴展機制,它可以根據應用程序的資源使用情況自動調整Pod的數量。HPA可以根據CPU或內存的使用率來決定是否需要增加或減少Pod的數量。

Vertical Pod Autoscaler(VPA):

????????VPA是Kubernetes中的另一種擴展機制,它可以根據應用程序的資源使用情況自動調整Pod的資源分配。VPA可以根據CPU或內存的使用率來決定是否需要增加或減少Pod的資源分配。

Volume:

????????Volume是Kubernetes中用于提供容器存儲的抽象概念,它提供了一種將持久化存儲映射到容器的方法。Volume可以用于存儲應用程序的數據、日志和其他持久化數據。

Persistent Volume(PV):

????????PV是Kubernetes中的一種存儲資源,它提供了容器持久化存儲的能力。PV可以被多個Pod共享,并且可以在Pod的生命周期之外保持數據。PV通過聲明Persistent Volume Claim(PVC)來申請和使用。

Kubernetes的主要工作原理包括以下幾個方面:

  1. 容器編排:Kubernetes可以自動在多個節點上運行容器,提供了應用部署、規劃、更新、維護的一種機制。
  2. 自我修復:Kubernetes可以通過監控容器的運行狀態,自動重啟失效的容器,或者重新調度容器的運行位置。
  3. 自動擴展:Kubernetes可以根據應用程序的運行情況,自動擴展或縮減容器的數量,以滿足不斷變化的需求。
  4. 負載均衡:Kubernetes可以自動分配網絡流量,以確保應用程序能夠均勻地承受負載。
  5. 存儲管理:Kubernetes可以自動管理存儲卷,為應用程序提供穩定的數據存儲。
  6. API和服務網格:Kubernetes提供了一組強大的API,可以用來管理和查詢Kubernetes集群,同時也提供了一個服務網格,可以用來監控和調整網絡流量。

容器編排:

Kubernetes的容器編排主要通過以下步驟完成:

  1. 用戶通過Kubernetes API提交Pod規格,Kubernetes控制器將規格轉換為ReplicaSet對象。
  2. ReplicaSet會根據需要創建或刪除Pod副本的數量。這主要依賴于對象的規模設置,即期望的Pod數量。
  3. 在調度器中,Kubernetes會根據可用資源、Pod親和性或反親和性規則、存儲要求等,選擇最適合運行Pod的節點。
  4. 節點接受Pod并將其啟動在適當的位置上。
  5. 如果Pod由于某種原因失敗,則Kubernetes會自動重啟它。如果需要增加或減少Pod的數量,Kubernetes會自動擴展或縮減ReplicaSet。
  6. 在運行過程中,Kubernetes還會根據實時的性能數據,自動調整Pod副本的數量,以滿足實際負載的需求。

通過這些步驟,Kubernetes能夠自動、高效地完成容器編排,為應用程序提供穩定、可靠的運行環境。

自我修復

?Kubernetes的自我修復主要通過以下幾種方式實現:

  1. 容器失敗自動重啟:當一個容器因故障或其他原因停止運行時,Kubernetes會根據定義好的ReplicaSet或Pod規格,自動重啟該容器。
  2. 替換失效容器:如果一個容器持續出現故障,Kubernetes可以通過創建新的容器來替換它。這可以通過設置Pod的重啟策略或使用ReplicaSet來實現。
  3. 重新調度:當一個節點出現故障時,Kubernetes會將該節點上的所有容器重新調度到其他可用的節點上,確保應用程序在節點故障的情況下仍然可以繼續運行。
  4. 自動擴展或縮減:根據應用程序的運行情況,Kubernetes可以自動擴展或縮減容器的數量,以滿足不斷變化的需求。這可以通過設置Horizontal Pod Autoscaler(HPA)或Vertical Pod Autoscaler(VPA)來實現。

此外,Kubernetes還提供了多種自我修復的機制,如健康檢查、探針等,以確保應用程序在運行過程中始終處于健康狀態。這些機制可以幫助運維人員及時發現和解決問題,從而提高應用程序的穩定性和可靠性。

自動擴展

Kubernetes的自動擴展主要通過Horizontal Pod Autoscaler(HPA)實現。HPA是Kubernetes的一個核心組件,用于根據應用程序的資源使用情況自動調整Pod的數量。

?HPA的工作流程如下:

  1. HPA定期檢測目標Pod的資源性能指標,通常是CPU使用率。
  2. 如果檢測到的資源使用率超過設定的擴縮容閾值,HPA會創建一個新的Pod副本。
  3. 如果檢測到的資源使用率下降到縮容閾值以下,HPA會銷毀一個Pod副本。

在這個過程中,HPA可以基于實時性能數據進行動態調整,以滿足不斷變化的需求。此外,HPA還可以根據不同的策略進行擴展,如基于固定數量的Pod副本進行擴展,或者根據自定義的函數進行擴展。

除了HPA,Kubernetes還提供了垂直自動擴展(VPA)和自定義資源自動擴展(CRA)等擴展機制,以滿足不同場景的需求。這些擴展機制共同構成了Kubernetes強大的自動擴展能力,為應用程序提供了穩定、高效的運行環境。

負載均衡

Kubernetes的負載均衡主要通過以下組件實現:

  1. Service:Service是Kubernetes的核心組件之一,它定義了一組Pod的訪問方式。Service將來自客戶端的流量路由到后端的Pod副本中。
  2. 負載均衡器:Kubernetes的負載均衡器將流量均衡地分配到后端的Pod副本中。它可以根據不同的算法和規則進行負載均衡,如基于IP的算法、基于哈希的算法等。
  3. 健康檢查:Kubernetes可以通過健康檢查機制,確保后端的Pod副本處于健康狀態,并將不健康的Pod排除在負載均衡之外。

Kubernetes的負載均衡可以在不同的層次上實現,如四層負載均衡和七層負載均衡。四層負載均衡基于IP和端口號進行流量轉發,而七層負載均衡基于應用層協議和URL等進行流量轉發。Kubernetes默認采用七層負載均衡,通過Service將流量路由到后端的Pod副本中。

此外,Kubernetes還支持多種負載均衡模式,如單臂模式、NAT模式和直接模式等。這些模式可以根據不同的應用場景和需求進行選擇,以滿足應用程序的負載均衡需求。

總之,Kubernetes通過Service、負載均衡器和健康檢查等組件,實現了對容器的負載均衡,為應用程序提供了穩定、高效的運行環境

存儲管理

Kubernetes的存儲管理主要通過Volume和Persistent Volume(PV)實現。Volume是Kubernetes中用于提供容器存儲的抽象概念,它提供了一種將持久化存儲映射到容器的方法。

Volume有以下幾種常見類型:

  1. EmptyDir:EmptyDir類型的Volume是一個臨時目錄,它只在Pod運行時存在,當Pod被銷毀時,EmptyDir中的數據會被清除。這種類型的Volume常用于在容器中存儲臨時數據。
  2. HostPath:HostPath類型的Volume是將宿主機的某個目錄映射到容器中。這種類型的Volume常用于在容器中使用宿主機的文件系統存儲。
  3. GCEPersistentDisk:GCEPersistentDisk類型的Volume是Google Cloud Engine上的持久化磁盤,它可以將云硬盤映射到容器中。這種類型的Volume常用于在容器中使用云存儲。
  4. PersistentVolumeClaim(PVC):PVC是一種特殊的Volume,它通過聲明一個Persistent Volume(PV)來申請存儲資源。PVC提供了一種靈活的存儲資源管理方式,可以根據需求動態申請和釋放存儲資源。

除了Volume,Kubernetes還提供了Persistent Volume(PV)和Persistent Volume Claim(PVC)的概念,用于實現更靈活的存儲管理。PV是一個獨立的存儲資源,它可以被多個Pod共享。PVC通過聲明一個PV來申請存儲資源,它可以與Pod一起創建和銷毀,并且可以動態地擴展或縮減存儲資源。

總之,Kubernetes通過Volume、PV和PVC等組件,實現了對容器的存儲管理,為應用程序提供了穩定、高效的存儲資源。

kubernetes與docker的關系:

????????Docker和Kubernetes是兩個不同的概念和技術,但是它們之間有很密切的關系。

????????Docker是一個開源的容器化平臺,它可以將應用程序打包成一個獨立的容器,包含應用程序所需的所有組件和依賴項,從而實現了跨平臺、可移植和快速部署的能力。Docker提供了一個容器化的應用程序開發、部署和運行的環境,可以方便地將應用程序或服務打包、分發和運行。

????????Kubernetes是一個開源的容器編排平臺,旨在簡化應用程序在分布式系統中的部署、擴展和管理。它主要解決了面對包含成千上萬個容器和節點的大規模分布式部署時,如何保證平臺的可伸縮性、靈活性和可靠性的問題。Kubernetes提供了容器編排、容器管理、容器存儲、網絡通信等功能,通過自動化、智能化的方式對容器進行部署、擴容、縮容等操作,提高了應用程序的可用性和穩定性。

????????Docker和Kubernetes之間的關系在于,Docker提供了應用程序容器化的能力,而Kubernetes則負責管理、協調和監控這些容器。Kubernetes通過對容器進行編排和調度,將多個容器組合為一個復雜的微服務應用,并可以動態地進行擴展和縮容。因此,Docker和Kubernetes可以一起使用,共同構建和管理分布式應用程序的整個生命周期,其中Docker主要負責容器化和打包應用程序,Kubernetes則負責自動化地部署、擴展和管理應用程序。

????????總之,Docker和Kubernetes是互補的技術,它們相互協作,共同實現了容器技術的全棧式解決方案。

kubernetes的技術選型原因以及為何選擇kubernetes:

Kubernetes的技術選型原因以及為何選擇Kubernetes,主要有以下幾點:

  1. 行業趨勢:IT行業正在不斷追求更高的效率和更低的成本,容器化和云原生化的需求正在逐漸增加。Kubernetes作為當前被業界廣泛認可和看好的基于Docker的大規模容器化分布式系統解決方案,得到了以谷歌為首的IT巨頭們的大力宣傳和推進,正在成為云原生應用的首選平臺。
  2. 跨平臺兼容:Kubernetes可以運行在多種公有云和私有云平臺上,比如Google Cloud、Amazon Web Services、Azure、OpenStack等,這使得它具有很高的靈活性,可以輕松地在不同的環境中進行遷移和擴展。
  3. 自動化部署:Kubernetes提供了強大的部署、擴展和管理應用程序的能力,可以通過簡單的命令、UI或基于CPU使用情況自動對應用程序進行擴縮,大大減少了人工干預的需求,提高了開發效率。
  4. 自我修復:Kubernetes具有自我修復的功能,可以自動檢測和修復容器故障,確保應用程序的持續可用性和高可靠性。
  5. 社區生態:Kubernetes擁有龐大的社區和豐富的生態,有大量的工具和應用支持Kubernetes,使得學習和使用Kubernetes變得更加容易,同時也提供了更多的可能性來擴展和定制Kubernetes的功能。

綜上所述,Kubernetes的技術選型原因主要是其高效、靈活、可擴展和易用性,而選擇Kubernetes作為容器編排平臺,則可以更好地滿足現代應用程序的高效開發和部署需求。

kubernetes與同類型產品對比

Docker Swarm

是Docker公司的原生容器編排工具,可以在多個Docker節點上運行容器,提供容器管理和服務發現等功能。Swarm最大的特點是易于使用,它與Docker本身集成得非常好,且可以無縫地創建和管理容器。

Apache Mesos

是Apache開源項目之一,是一個集群管理器,可以管理和調度分布式應用程序。Mesos可以處理數千個節點和數萬個容器,提供了一個集中的控制點,可以管理和調度所有的資源。

Kubernetes與同類型產品對比,如Docker Swarm和Apache Mesos,主要區別如下:

  1. 規模:Kubernetes可以支持大規模的容器化應用程序,可以處理數千個容器和數百個節點,而Docker Swarm和Apache Mesos在處理大規模應用程序方面相對較弱。
  2. 語言中立性:Kubernetes是多語言且語言不敏感的容器管理平臺,可以運行云原生和傳統的容器化應用程序,提供的服務可供各種語言使用。而Docker Swarm主要支持Docker容器,對于非Docker容器支持較弱。
  3. 跨平臺性:Kubernetes可以運行在多種公有云和私有云平臺上,比如Google Cloud、Amazon Web Services、Azure、OpenStack等,而Docker Swarm和Apache Mesos的跨平臺能力相對較弱。
  4. 自動化部署和管理:Kubernetes提供了強大的部署、擴展和管理應用程序的能力,可以通過簡單的命令、UI或基于CPU使用情況自動對應用程序進行擴縮,大大減少了人工干預的需求,提高了開發效率。而Docker Swarm和Apache Mesos在自動化部署和管理方面相對較弱。
  5. 自我修復:Kubernetes具有自我修復的功能,可以自動檢測和修復容器故障,確保應用程序的持續可用性和高可靠性。而Docker Swarm和Apache Mesos的自我修復能力相對較弱。
  6. 社區和生態:Kubernetes擁有龐大的社區和豐富的生態,有大量的工具和應用支持Kubernetes,使得學習和使用Kubernetes變得更加容易,同時也提供了更多的可能性來擴展和定制Kubernetes的功能。而Docker Swarm和Apache Mesos在社區和生態方面相對較弱。

綜上所述,Kubernetes相對于其他同類型產品具有更大的規模、語言中立性、跨平臺性、自動化部署和管理、自我修復以及社區和生態優勢。

kubernetes版本迭代特性對比

  1. Kubernetes 1.0 (2015年7月):這是Kubernetes的初始版本,標志著Kubernetes的正式發布。此版本提供了基礎架構即服務(IaaS)的功能,包括容器編排、自動擴展和自我修復等。
  2. Kubernetes 1.1 (2015年11月):這個版本增加了更多的功能,例如,性能改進、更好的網絡插件以及新的存儲插件。此外,還改進了集群節點的規模和集群的整體性能。
  3. Kubernetes 1.2 (2016年4月):這個版本引入了重要的新特性,如StatefulSet(用于有狀態應用的部署和擴展)、DaemonSet(用于每個節點都需要運行的應用)以及自適應的副本計數器。
  4. Kubernetes 1.3 (2016年7月):這個版本更加注重安全性和集群的高可用性,增加了諸如認證、授權、API聚合、服務網格等新特性。
  5. Kubernetes 1.4 (2016年12月):這個版本增加了更多的安全特性,如強密碼策略、支持靜態和LDAP身份驗證、Webhook身份驗證等。此外,還引入了集群聯邦(federation),使得Kubernetes可以管理跨多個云的集群。
  6. Kubernetes 1.5 (2017年4月):這個版本主要在穩定性和性能方面進行了改進,包括更好的存儲和網絡插件的穩定性、改進的調度器性能、以及對IPv6的支持等。
  7. Kubernetes 1.6 (2017年7月):這個版本增加了更多的安全特性,如更強的角色和角色綁定限制、自動雙向TLS、自我修復等。此外,還引入了對多租戶模式的支持。
  8. Kubernetes 1.7 (2017年12月):這個版本引入了新的API聚合層、改進的StatefulSet和更好的GPU支持等。

以上就是Kubernetes主要版本的迭代歷程和特性對比。隨著版本的更新,Kubernetes的功能不斷完善和增強,逐漸發展成為容器編排領域的領先者

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/42724.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/42724.shtml
英文地址,請注明出處:http://en.pswp.cn/news/42724.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

《一個操作系統的實現》windows用vm安裝CentOS——從bochs環境搭建到第一個demo跑通

vm安裝CentOS虛擬機帶有桌面的版本。su輸入密碼123456。更新yum -y update 。一般已經安裝好后面這2個工具:yum install -y net-tools wget。看下ip地址ifconfig,然后本地終端連接ssh root192.168.249.132輸入密碼即可,主要是為了復制網址方便…

Netty+springboot開發即時通訊系統筆記(四)終

實時性 1.線程池多線程,把消息同步給其他端和對方用戶,其中數據持久化往往是最浪費時間的操作,可以使用mq異步存儲,因為其他業務不需要拿著整條數據,只需要這條數據的id進行操作。 2。消息校驗前置,放在t…

Vim的插件管理器之Vundle

1、安裝Vundle插件管理器 Vim可以安裝插件,但是需要手動安裝比較麻煩,Vim本身沒有提供插件管理器,所以會有很多的第三方的插件管理器,有一個vim的插件叫做 “vim-easymotion”,在它的github的安裝說明里有列出對于不同…

GRPC 學習記錄

GRPC 安裝 安裝 grpcio、grpcio-tools、protobuf、 pip install grpcio -i https://pypi.tuna.tsinghua.edu.cn/simple pip install grpcio-tools -i https://pypi.tuna.tsinghua.edu.cn/simple pip install protobuf -i https://pypi.tuna.tsinghua.edu.cn/simple常用類型 p…

Minio知識點+linux下安裝+面試總結

一 Minio簡介 MinIO 是一個基于Apache License v2.0開源協議的對象存儲服務。它兼容亞馬遜S3云存儲服務接口,非常適合于存儲大容量非結構化的數據,例如圖片、視頻、日志文件、備份數據和容器/虛擬機鏡像等,而一個對象文件可以是任意大小&…

Apache Doris 入門教程31:計算節點

需求場景? 目前Doris是一個典型Share-Nothing的架構, 通過綁定數據和計算資源在同一個節點獲得非常好的性能表現. 但隨著Doris計算引擎性能持續提高, 越來越多的用戶也開始選擇使用Doris直接查詢數據湖數據. 這類場景是一種Share-Disk場景, 數據往往存儲在遠端的HDFS/S3上, 計…

msvcp110.dll是什么意思,msvcp110.dll丟失的解決方法

裝好軟件或游戲之后,一打開就跳出各種報錯信息的情況小伙伴一定見過,其中缺少各種msvcp110.dll文件最常見。小伙伴們一定奇怪,用得好好的電腦,怎么會缺文件呢?為啥其他游戲/應用就沒事呢?其實這些“丟失”的…

visual studio 2022配置

前提:我linux c 開發 一直在使用vscode 更新了個版本突然代碼中的查找所用引用和變量修改名稱不能用了,嘗試了重新配置clang vc都不行,估計是插件問題,一怒之下改用visual studio 2022 為了同步2個IDE之間的差別,目前…

QT的核心——信號與槽

目錄 回顧C 語言信號 1、信號與槽 2、關聯信號與槽 2.1自動關聯信號與槽 2.2手動關聯信號與槽 2.3斷開信號與槽 3、自定義信號 3.1自定義信號使用條件 3.2自定義槽函數使用條件 4、信號與槽參數傳遞 4.1自定義一個帶參的信號 4.2關聯帶參的信號與槽 4.3發送一個帶…

YOLOv5、YOLOv8改進:S2注意力機制

目錄 1.簡介 2.YOLOv5改進 2.1增加以下S2-MLPv2.yaml文件 2.2common.py配置 2.3yolo.py配置 1.簡介 S2-MLPv2注意力機制 最近,出現了基于 MLP 的視覺主干。與 CNN 和視覺Transformer相比,基于 MLP 的視覺架構具有較少的歸納偏差,在圖像識…

LVS-DR+keepalived實現高可用負載群集

VRRP 通信原理: VRRP就是虛擬路由冗余協議,它的出現就是為了解決靜態路由的單點故障。 VRRP是通過一種競選的一種協議機制,來將路由交給某臺VRRP路由。 VRRP用IP多播的方式(多播地址224.0.0.18)來實現高可用的通信&…

基于STM32+OneNet設計的物聯網智慧路燈

一、前言 近年來,構筑智慧城市、推動城鎮發展被國家列入重要工作范疇。發布的《超級智慧城市報告》顯示,全球已啟動或在建的智慧城市有1000多個,中國在建500個,遠超排名第二的歐洲(90個)。從在建智慧城市的…

(五)Unity開發Vision Pro——FAQ

常見問題 (FAQ) 1.問:我看到在visionOS 模擬器中運行的結果與在硬件上運行的結果不同 請注意,在模擬器中運行時,某些特定于硬件的功能不可用 - 最明顯的是 AR 數據。這可能意味著 VisionOS 模擬器中的模擬結果可能與 Vision Pro 耳機上的模…

Android oaid

官方GitHub地址 https://github.com/gzu-liyujiang/Android_CN_OAID 生成和用途介紹 https://www.jianshu.com/p/1c7ef27d6db4 圖片來源于上述網站 其他關于id的介紹 https://www.cnblogs.com/chenKnowledgeConllection/p/17380960.html https://zhuanlan.zhihu.com/p/55…

微信小程序拉起支付報: 調用支付JSAPI缺少參數: total_fee

1. 調用支付JSAPI缺少參數: total_fee 2. 檢查返回給前端調起支付的參數是否正確 一開始是params.put("package", prepay_id); 回來改回params.put("package", "prepay_id"prepay_id);

leetcode 415.字符串相加

?? 題目描述 🌟 leetcode鏈接:https://leetcode.cn/problems/add-strings/description/ ps: 從兩個字符串的末尾開始遍歷,依次相加,若大于等于 10 則使用一個變量記錄進位,遍歷的時候若兩個字符串其中一…

算法通關村——不簡單的字符串轉換問題

1. 轉換成小寫字母 給你一個字符串 s ,將該字符串中的大寫字母轉換成相同的小寫字母,返回新的字符串。 轉換成小寫字母 1.1 利用ASCII 首先需要直到常見的ASCII值 a-z: 97-122 A-Z: 65-90 0-9: 48-57 只需要將這個字符串先轉換成字符,然后…

ASR(自動語音識別)任務中的LLM(大語言模型)

一、LLM大語言模型的特點 二、大語言模型在ASR任務中的應用 淺度融合 淺層融合指的是LLM本身并沒有和音頻信息進行直接計算。其僅對ASR模型輸出的文本結果進行重打分或者質量評估。 深度融合 LLM與ASR模型進行深度結合,統一語音和文本的編碼空間或者直接利用ASR…

OKCC在系統安全方面做了哪些措施?

語音通信行業,運營者普遍比較關心的問題是,運營風險如何控制?運營安全如何保證?OKCC呼叫中心又有那些風控措施來保證運營安全。 當前階段,語音通信運營,最主要的風險主要包括以下幾個方面: 一、…

無涯教程-Perl - wait函數

描述 該函數等待子進程終止,返回已故進程的進程ID。進程的退出狀態包含在$?中。 語法 以下是此函數的簡單語法- wait返回值 如果沒有子進程,則此函數返回-1,否則將顯示已故進程的進程ID Perl 中的 wait函數 - 無涯教程網無涯教程網提供描述該函數等待子進程終止,返回已故…