【1】云原生,kubernetes 與 Docker 的關系

Kubernetes?K8s?

Kubernetes經常被寫作K8s。其中的數字8替代了K和s中的8個字母——這一點倒是方便了發推,也方便了像我這樣懶惰的人。

什么是云原生?

云原生: 它是一種構建和運行應用程序的方法,它包含(容器容器編排微服務構架),優勢是快速迭代部署應用,自動擴縮容資源,因為容器化與微服務化變得高可用與容錯。讓應用具備像在“云”上那樣運行的能力 —— 彈性、快速部署、自動擴縮、故障自愈、高可用、可觀察……這些能力并不要求必須部署在公有云上,你可以在:

  • ?? 公有云(AWS、阿里云、騰訊云……)
  • 🏢 私有云(公司內部的數據中心 + 云平臺)
  • 🖥? 本地機房(只要能跑容器和 Kubernetes)
  • 💻 開發者本地環境(比如用 Minikube 跑個小型集群)
  • 🌍 邊緣設備 / 混合云 / 多云環境

容器,容器編排

  • **容器:**簡單來說就是它可以將應用程序與其運行需要依賴的庫,容器運行時環境等打包封裝(Docker 就是一種容器)。就像一個杯子?可以將他們裝在一起,方便隨時隨地部署安裝和運行。
  • **容器編排:**就是對剛剛說到的容器進行管理,包含將容器分配到合適地方運行,對各容器進行調度,實現容器之間的負載均衡,健康檢查與故障恢復等等。最常用最大名鼎鼎的就是 kubernetes(k8s)

微服務

簡單來說,一個服務可以由很多小而專的服務組件,通過互相通信組成一套完整的業務系統,例如 web 前端,分類服務,購物車,日志服務,付款服務…… 他們這些服務組件各司其職,各自的功能都很專一,他們組合起來就構成了一個購物軟件,這個購物軟件就是微服務架構的軟件,而這些小而專的組件就是微服務

kubernetes 與 Docker 的關系

Docker:首先,Docker 是一個廣泛使用的容器平臺,它不僅提供了容器技術,還包含了鏡像構建、運行、管理的一整套工具。我們平時說的 “Docker 容器”,其實就是由 Docker 構建并運行的容器(也叫容器實例)。

**Kubernetes:**而 Kubernetes 是一個容器編排平臺,它的作用是自動化地部署、管理、擴展和調度容器。不過這里有一個細節:Kubernetes 實際上并不是直接控制單個容器實例,而是以 Pod 為最小單位進行調度。Pod 可以理解為一個邏輯上更大的“容器組”,通常包含一個主容器(有時也會有多個),這些容器共享同一個網絡和存儲空間。

Pod 的中文意思是“豆莢”,這個比喻也很形象 —— Docker 容器實例就像豆莢(Pod)里的豆子,Pod 是 Kubernetes 中運行容器的最小調度單位,Kubernetes 實際編排的是這些 Pod。

另外需要注意,現在 Kubernetes 通常使用像 containerdCRI-O 這樣的容器運行時來運行容器,而不是直接使用 Docker。但只要鏡像是標準格式(OCI),就還是可以用 Docker 構建鏡像后讓 Kubernetes 調用運行
在這里插入圖片描述
如上圖,Docker并非Kubernetes唯一支持的容器運行時。事實上,Kubernetes基于一系列特性實現了對容器運行時的抽象(從而可以兼容不同的底層容器運行時)。在 Kubernetes 中,容器運行時(如 containerd、CRI-O)需要和 Kubernetes 本身通信。這就引入了容器運行時接口(CRI, Container Runtime Interface)。

? 容器運行時接口(如 CRI,Container Runtime Interface):
  • 是 Kubernetes 和容器運行時之間通信的標準規范
  • 它就像一個“接口(interface)”,規定了一個容器運行時應該提供哪些功能(比如創建容器、啟動容器、獲取狀態、刪除容器等)。
? 容器運行時(如 DockercontainerdCRI-O):
  • 是這些接口的具體實現者(類)
  • 它們按照接口定義的方法和規范,寫好了實際的代碼邏輯,可以真正創建、運行和管理容器實例。

小知識-容器運行時

說到Docker容器的運行,就不得不說到容器運行時了,首先它與容器實例1的關系就是工具產物的關系(更抽象一點的理解:容器鏡像就像房子圖紙,容器實例就是房子,容器運行時就是造房子或者裝修房子的工具),容器鏡像是由 構建工具(如 Docker CLI、BuildKit、Podman 等) 來構建和打包的,容器運行時將鏡像轉化為可運行的容器實例1,管理已經運行的容器實例的生命周期(啟動,停止,刪除,監控……)

Docker 是最常見的一種容器技術,它提供的容器運行時可以通過容器鏡像創建并運行容器實例。不過,除了 Docker 之外,還有其他廠商提供的類似容器技術,比如 Kata、gVisor 等。雖然這些不同的技術實現方式各異,使用的容器運行時也不同,但它們都具備相似的功能:通過容器鏡像創建和管理容器實例。

注意:在業內,一般“容器”就默認指運行時狀態的實例,不再單獨區分“容器”和“容器實例”,在這里為了初學者能夠分清楚,特此解釋。

小知識-容器技術

容器技術是指一系列技術、工具和方法,它們共同幫助我們創建、管理、運行和隔離容器。容器技術包括但不限于以下幾個核心組成部分:

  1. 容器鏡像:容器的藍圖或模板。
  2. 容器運行時:創建并管理容器實例的工具。
  3. 容器編排:自動化管理容器生命周期的系統。
  4. 容器網絡:實現容器間通信的網絡機制。
  5. 容器存儲:為容器提供持久化存儲的技術。
  6. 容器鏡像倉庫:存儲和分發鏡像的系統。
  7. 容器安全:保護容器和應用程序的安全機制。

  1. 容器鏡像和容器實例的關系可以類比為類與對象的關系。容器鏡像類似于類,是靜態定義和模板,而容器實例則像類的對象,是鏡像的運行時實例。容器鏡像必須經過容器運行時(如 Docker)創建容器實例后,才能被執行和運行。 ?? ??

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

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

相關文章

Eureka搭建

1.注冊中心server端 1.1.引入依賴 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId> </dependency> <dependency><groupId>org.springframework.cloud</…

2025年最新版動漫短劇系統開發小程序app教程,源碼部署上線

以下是動漫短劇系統開發上線的詳細教程&#xff0c;包含從0到1的全流程&#xff1a; 一、需求分析&#xff08;關鍵&#xff1a;明確核心功能&#xff09; 核心功能清單&#xff1a; 用戶端&#xff1a;短視頻瀏覽、彈幕評論、收藏/點贊、創作者關注、付費訂閱。創作者端&am…

集成學習基礎應用實踐

集成學習簡介 學習目標&#xff1a; 1.知道集成學習是什么&#xff1f; 2.了解集成學習的分類 3.理解bagging集成的思想 4.理解boosting集成的思想 知道】集成學習是什么&#xff1f; 集成學習是機器學習中的一種思想&#xff0c;它通過多個模型的組合形成一個精度更高的…

系統與網絡安全------彈性交換網絡(1)

資料整理于網絡資料、書本資料、AI&#xff0c;僅供個人學習參考。 Trunk原理與配置 Trunk原理概述 Trunk&#xff08;虛擬局域網中繼技術&#xff09;是指能讓連接在不同交換機上的相同VLAN中的主機互通。 VLAN內通信 實現跨交換的同VLAN通信&#xff0c;通過Trunk鏈路&am…

python-圖片分割

圖片分割是圖像處理中的一個重要任務&#xff0c;它的目標是將圖像劃分為多個區域或者對象&#xff0c;例如分割出物體、前景背景或特定的部分。在 Python 中&#xff0c;常用的圖片分割方法包括傳統的圖像處理技術&#xff08;例如閾值分割、區域生長等&#xff09;和深度學習…

【Linux】軟件管理機制和軟件安裝

文章目錄 1. 軟件管理器1.1 Linux的軟件管理方式1.2 Linux的常見軟件管理機制RPM和dpkg 2. RPM2.1 rpm安裝2.2 rpm升級與更新2.3 rpm查詢2.4 rpm驗證與數字簽名2.5 rpm反安裝與重建數據庫 3. YUM3.1 yum查詢3.2 yum安裝/升級3.3 yum刪除3.4 yum的配置文件3.5 yum的軟件群組功能…

Android第三次面試總結(網絡篇)

在計算機網絡領域&#xff0c;網絡模型是理解通信原理的基礎框架。本文將詳細解析 OSI 參考模型和 TCP/IP 模型的分層結構、核心功能及實際應用&#xff0c;并通過對比幫助讀者建立完整的知識體系。 一、OSI 參考模型&#xff1a;七層架構的理論基石 OSI&#xff08;開放系統…

OpenCV day5

函數內容接上文&#xff1a;OpenCV day4-CSDN博客 目錄 9.cv2.adaptiveThreshold(): 10.cv2.split()&#xff1a; 11.cv2.merge()&#xff1a; 12.cv2.add()&#xff1a; 13.cv2.subtract()&#xff1a; 14.cv2.multiply()&#xff1a; 15.cv2.divide()&#xff1a; 1…

智能運維新范式

在制造業、設備制造、工業物聯網等領域&#xff0c;“服務周期長、響應效率低” 始終是產品運維的痛點 —— 設備故障突發時&#xff0c;工程師千里奔赴現場的耗時耗力&#xff1b;非計劃停機帶來的生產損失&#xff1b;客戶對服務體驗的更高期待…… 傳統運維模式早已難以適應…

實現定時發送郵件,以及時間同步

定時發送郵件 部署郵件服務 查看有沒有安裝mailx,安裝了 [root192 ~]# rpm -q mailx mailx-12.5-43.fc38.x86_64去網易拿一下授權碼,寫到配置文件里 vim /etc/mail.rcset fromxxxxxxx163.com set smtpsmtp.163.com set smtp-auth-userxxxxxxx163.com set smtp-auth-passwor…

狀態模式:有限狀態機在電商訂單系統中的設計與實現

狀態模式&#xff1a;有限狀態機在電商訂單系統中的設計與實現 一、模式核心&#xff1a;用狀態切換驅動行為變化 在電商訂單系統中&#xff0c;訂單狀態會隨著用戶操作動態變化&#xff1a;「已創建」的訂單支付后變為「已支付」&#xff0c;發貨后變為「已發貨」&#xff0…

ubuntu 24.02部署java web服務

ubuntu 24.02 版本推薦使用jdk 21版本部署java web服務&#xff0c;開發后先使用sudo java -jar xxx.jar驗證運行結果。 jdk安裝&#xff1a;sudo apt install openjdk-21-jdk-headless 編輯服務文本 [Unit] DescriptionWebMgr Java Application Afternetwork.target mysql.…

深入淺出:LDAP 協議全面解析

在網絡安全和系統管理的世界中&#xff0c;LDAP&#xff08;輕量級目錄訪問協議&#xff0c;Lightweight Directory Access Protocol&#xff09;是一個不可忽視的核心技術。它廣泛應用于身份管理、認證授權以及目錄服務&#xff0c;尤其在企業級環境中占據重要地位。本文將從基…

AI書籍大模型微調-基于亮數據獲取垂直數據集

大模型的開源&#xff0c;使得每位小伙伴都能獲得AI的加持&#xff0c;包括你可以通過AIGC完成工作總結&#xff0c;圖片生成等。這種加持是通用性的&#xff0c;并不會對個人的工作帶來定制的影響&#xff0c;因此各個行業都出現了垂直領域大模型。 垂直大模型是如何訓練出來…

【2025軟考高級架構師】——計算機系統基礎(7)

摘要 本文主要介紹了計算機系統的組成&#xff0c;包括硬件和軟件兩大部分。硬件由處理器、存儲器、總線、接口和外部設備等組成&#xff0c;軟件則涵蓋系統軟件和應用軟件。文章還詳細闡述了馮諾依曼計算機的組成結構&#xff0c;包括 CPU、主存儲器、外存等&#xff0c;并解…

AI大模型之模型幻覺

模型幻覺(Model Hallucination)是大模型生成內容時脫離事實、虛構信息的一種現象,尤其在語言模型、圖像生成模型等中較為常見。為了更深入地理解這一現象,我們可以將其分為兩個維度進行分析:內在幻覺(Intrinsic Hallucination) 和 外在幻覺(Extrinsic Hallucination)。…

spring Ai---向量知識庫(一)

在一些垂直領域以及公司內部信息相關或者實時性相關的大模型應用&#xff0c;就無法直接使用chatGPT。 這個時候&#xff0c;向量知識庫就進入了。 通過坐標向量最接近的即為匹配相關答案。 向量模型定義&#xff1a;將文檔向量化&#xff0c;保證內容越相似的文本&#xff0c;…

Viper配置管理筆記

一、什么是 Viper&#xff1f; Viper 是 Go 語言的一個強大工具&#xff0c;就像一個超級管家&#xff0c;專門負責幫你打理程序的各種配置。它能把配置文件&#xff08;比如 JSON、YAML、TOML 等格式&#xff09;里的內容讀出來&#xff0c;還能監控配置文件的變化&#xff0…

實現對象之間的序列化和反序列化

1.什么是序列化&#xff1f; 在項目的開發中&#xff0c;為了讓前端更好的分析后端返回的結果&#xff0c;我們一般會將返回的信息進行序列化&#xff0c;序列化就是將返回對象的狀態信息轉換為一種標準化的格式&#xff0c;方便在網絡中傳輸也方便打印日志時號觀察&#xff0…

ThreadLocal - 原理與應用場景詳解

ThreadLocal 的基礎概念 在 Java 的多線程世界里&#xff0c;線程之間的數據共享與隔離一直是一個關鍵話題。如果處理不當&#xff0c;很容易引發線程安全問題&#xff0c;比如數據混亂、臟讀等。而 ThreadLocal 這個工具類&#xff0c;就像是為線程量身定制的 “私人儲物柜”…