序
上一篇我們介紹了 k8s 的基本架構,我們在這篇文章將介紹 Kubernetes
關鍵組件和概念,
還是先來一張圖:
根據上圖我們分別對Deployment
、ReplicaSet
、Pod
詳細的介紹,其他的幾個在上一篇也做了介紹:
Deployment
Deployment
是 Kubernetes
中的資源物件,為應用程式提供宣告性更新,部署允許你描述應用程式的生命周期,也就是說他的主要作用就是管理和控制 Pod 和 ReplicaSet
,監控它們運行在用戶所期望的狀態中,例如應用程式使用哪些鏡像像、應該有的 Pod 數量以及更新它們的方式,
ReplicaSet
ReplicaSet
是一個運行 Pod
的多個實體并保持指定的 Pod數量不變
的行程,目的就是在任何時間內維持集群中運行的指定數量的 Pod 實體,以防止用戶在 Pod 發生故障或無法訪問時失去對其應用程式的訪問權限,如果監控到某一個Pod不能繼續服務的時候,他會確保我們的應用程式Pod
總體服務數量保持在我們期望的數量,然后再重新啟動一個Pod
,
這里說一下
Replication Controller
與ReplicaSet
,Replication Controller
是一個較老的版本,后面被新版本ReplicaSet
取代,不過他們的作用是類似的,
我們在實時情況下,通常不會手動創建或管理
ReplicaSet
甚至Pod
, 我們會使用Deployment
的資源型別在Kubernetes
中部署 Pod,該Deployment
會在后臺自動為我們創建一個ReplicaSet
,然后該ReplicaSet
負責創建和管理Deployment
檔案中提到的所需數量的 Pod 和 Pod 副本,
Pod
Pod
是 Kubernetes
的最小的構建塊或者說最小的部署單元,Pod 包含一組一個或多個容器,一般來說,每個Pod有一個容器,Pod 封裝了應用程式容器、存盤資源、唯一的網路 ID 以及有關如何運行容器的其他配置,如下圖:
當應用程式通過 ReplicaSet
水平擴展時,Pod 就會被復制,每個 Pod 會運行相同的容器代碼,
我們在接觸k8s的時候經常會聽到Service
、Volumes
、namespace
那么這幾個的作用又是什么呢,我們繼續向下看:
Service
在 Kubernetes 中,Service是一個物體,代表一組運行應用程式或功能組件的 Pod,該Service保存訪問策略,并負責對傳入請求強制執行這些策略
對于Service的需求源于 Kubernetes 中 pod 的生命周期很短,可以隨時更換,Kubernetes 保證給定 pod 和副本的可用性,但不保證單個 pod 的活躍性,比如一組后端 Pod 為群集內的其他前端 Pod 提供功能,前端如何找到并跟蹤要連接的 IP 地址呢?這就需要它們連接到Service,該Service將它們中繼到相關的當前正在運行的 Pod,
該Service分配一個虛擬 IP 地址,稱為 clusterIP,該地址將一直存在,直到被明確銷毀為止,該Service充當組件或應用程式之間通信的可靠端點,
對于 Kubernetes 本機應用程式,使用服務的另一種方法是直接通過 Kubernetes API Server 發出請求,API Server 自動公開并維護運行 Pod 的端點,
Volume
類似于 Docker 中的容器Volume,但 Kubernetes Volume適用于整個 Pod,并掛載在 Pod 中的所有容器上,Kubernetes 確保資料在容器重新啟動時得以保留,僅當 pod 被破壞時,該 Volume 才會被洗掉,此外,一個 Pod 可以關聯多個Volume(可能是不同型別的),
Volume 是 Pod 的一個組件,Volume 是在 Pod 規范中創建的,不能單獨洗掉,
Namespace
namespace
是一種將集群組織成虛擬子集群的方法,當不同的團隊或專案共享 Kubernetes 集群時就需要用到namespace
,集群內支持任意數量的namespace
,每個namespace
在邏輯上彼此分離,能夠相互通信,但是不能相互嵌套,
Kubernetes
中的任何資源都存在于default
這個namespace
或由集群操作員創建的namespace
中,
總結
這篇文章主要介紹了k8s里面一些重要概念,Deployment
、ReplicaSet
、Pod
以及Service
、Volumes
、namespace
,當然還有很多的一些抽象概念,比如Ingress
等,總之k8s里面一堆的東西,一時半會兒也是理解不完的,這個需要長久的去學習深挖,這里就不過多的去一一介紹了,接下來會直接去介紹怎么使用k8s以及使用k8s的一些問題,
轉載:風向閱讀 - Kubernetes 系列:Kubernetes 關鍵組件和概念(二)
地址:https://www.aiweimeng.top/archives/26.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/556008.html
標籤:其他
上一篇:[ARM 匯編]高級部分—ARM匯編編程實戰—3.3.1 嵌入式系統的基本概念
下一篇:返回列表