久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Kubernetes是如何工作的

172次閱讀
沒有評論

共計 2484 個字符,預計需要花費 7 分鐘才能閱讀完成。

本篇文章為大家展示了 Kubernetes 是如何工作的,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

過去幾年來,運行容器化應用程序的流行度呈爆炸式增長,這已經不是什么秘密了。能夠通過代碼提供應用程序的依賴項來迭代和發布應用程序是一個巨大的勝利。Gartner 表示,到 2022 年,“超過 75% 的全球組織將在生產中運行容器化應用程序”。

對于大規模運行的組織來說,一個 Linux 容器實例不足以滿足其應用程序的所有需求。對于足夠復雜的應用程序,例如通過微服務進行通信的應用程序,需要多個相互通信的 Linux 容器并不少見。該體系結構引入了一個新的擴展問題:如何管理所有這些單獨的容器?開發者仍然需要安排容器在特定機器上的部署,管理它們之間的網絡,增加在高負載下分配的資源等等。

來到 Kubernetes,一個容器編排系統 – 一種管理容器化應用程序生命周期的方法。它是一種元過程,允許同時自動部署和擴展多個容器。運行相同應用程序的幾個容器被分組在一起。這些容器充當副本(replica),并用于負載平衡傳入的請求。然后,容器編排器監督這些組,確保它們正確地運行。

容器編排器本質上是負責操作一組容器化應用程序的管理員。如果需要重新啟動容器或獲取更多資源,則由編排器為你處理。

這是對大多數容器編排器工作原理的一個相當廣泛的概述。讓我們更深入地研究一下 Kubernetes 的所有組成部分。

Kubernetes 術語和架構

Kubernetes 引入了許多詞匯來描述應用程序的組織方式。我們將從最小的一層開始。

Pod

Kubernetes pod 是一組容器,是 Kubernetes 管理的最小單元。Pod 有一個單獨的 IP 地址,應用于 pod 中的每個容器。Pod 中的容器共享相同的資源,比如內存和存儲。這允許將 pod 內的單個 Linux 容器作為單個應用程序一起處理,就好像在更傳統的工作負載中,所有容器化的進程都在同一主機上運行一樣。當應用程序或服務是需要運行的單個進程時,只有一個容器的 pod 是很常見的。但是,當事情變得更加復雜,并且多個進程需要使用相同的共享數據卷共同工作以實現正確的操作時,與單獨在容器之間設置共享資源相比,多容器 pod 簡化了部署配置。

例如,如果你正在處理創建 gif 的圖像處理服務,一個 pod 可能有多個容器一起工作來調整圖像的大小。主容器可能運行接收請求的非阻塞微服務應用程序,然后運行一個或多個輔助(側車)容器,運行批處理后臺進程或清理存儲卷中的數據構件,作為管理整體應用程序性能的一部分。

Deployment

Kubernetes deployment(部署)允許你設置希望如何在 Kubernetes 節點上復制 pod 的詳細信息,從而定義希望運行應用程序的規模。Deployment 描述所需運行的相同 pod 副本的數量,以及更新部署時使用的首選更新策略。Kubernetes 將跟蹤 pod 的健康狀況,并根據需要刪除或添加 pod,使應用程序部署達到所需的狀態。

Service

單個 pod 的壽命不能被依賴;從它們的 IP 地址到它們的存在,一切都有可能發生變化。事實上,在 DevOps 社區中,有一個概念是將服務器視為“寵物”(pets)或“牛”(cattle)。寵物是你需要特別照顧的東西,而牛則被認為是更值得犧牲的東西。同樣,Kubernetes 也沒有將它的 pods 視為惟一的長時間運行的實例;如果 pod 遇到問題而死亡,Kubernetes 的工作就是替換它,這樣應用程序就不會經歷任何停機時間。

Service 是對 pods 的抽象,本質上是各種應用程序使用者交互的惟一接口。當 pod 被替換時,它們的內部名稱和 IP 可能會發生變化。Service 將單個機器名稱或 IP 地址映射到其基礎名稱和編號可以是不可靠的 pod。Service 確保在外部網絡中,一切看起來都是不變的。

Node

Kubernetes node(節點)管理和運行 pod;是執行給定工作的機器(無論是虛擬的還是物理的)。就像 pod 收集一起操作的單個容器一樣,node 收集一起工作的整個 pod。當你進行大規模操作時,你希望能夠將工作移交給一個 node,該 node 的 pod 可以接收工作。

Master server

這是管理員和用戶管理各種節點的主要入口。操作通過 HTTP 調用,或連接到機器并運行命令行腳本發送給它。

Cluster

Cluster(集群)是將上述所有組件作為一個單元組合在一起。

Kubernetes 組件

對于 Kubernetes 是如何組裝的有了一個大致的概念,現在就來看看確保一切順利運行的各種軟件組件。主服務器和單個工作節點都有三個主要組件。

Master server 組件

API Server

API 服務器向 Kubernetes 集群暴露一個 REST 接口。所有針對 pod、service 等的操作都是通過與它提供的端點通信以編程方式執行的。

Scheduler

調度程序負責將工作分配給各個節點。它監視資源容量,并確保工作節點(Worker node)的性能處于適當的閾值之內。

Controller-manager

controller-manager 負責確保集群的共享狀態按預期運行。更準確地說,控制器管理器監視響應事件的各種控制器(例如,如果節點發生故障)。

Worker node 組件

Kubelet

Kubelet 跟蹤 pod 的狀態,以確保所有容器都在運行。它每隔幾秒鐘向主服務器(Master server)提供一條心跳消息。如果復制控制器(replication controller)沒有接收到該消息,則節點被標記為不健康。

Kube proxy

Kube 代理發送從服務進入節點的流量。它將工作請求轉發到正確的容器。

etcd

etcd 是一個分布式鍵值存儲,Kubernetes 使用它來共享關于集群總體狀態的信息。此外,節點可以引用存儲在那里的全局配置數據,以便在重新生成它們時設置它們自己。

上述內容就是 Kubernetes 是如何工作的,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注丸趣 TV 行業資訊頻道。

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-16發表,共計2484字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 通化市| 秦皇岛市| 神木县| 安顺市| 石嘴山市| 宁德市| 唐河县| 古田县| 米泉市| 田林县| 土默特左旗| 炎陵县| 上杭县| 揭阳市| 文水县| 禹州市| 广南县| 奉贤区| 电白县| 东乌| 鹤岗市| 缙云县| 高青县| 泉州市| 黄石市| 兰考县| 泸州市| 绵阳市| 福安市| 高尔夫| 沽源县| 镇坪县| 商南县| 名山县| 界首市| 砚山县| 伊春市| 区。| 安溪县| 曲麻莱县| 桑植县|