kubernetes 從入門到棄坑-2

K8S的概念介紹

Cluster

Cluster 是計算、存儲和網絡資源的集合,Kubernetes 利用這些資源運行各種基於容器的應用。

Master

Master 是集群控制節點,K8S所有的命令都是發送給master的,然後master負責具體的執行。 說白了就是調度中心,決定將應用放在哪裡運行,和openstack中控制節點很像。如果要實現高可用性,master節點需要部署在奇數臺主機上。

Node

Node 是集群中除了控制節點外的節點,openstack中叫做計算節點,K8S中這類節點是負責運行容器應用。Node節點接受 Master 管理,Node節點要監控自身並彙報自身節點上容器的狀態,並根據 Master 的指令管理著容器的生命週期。Node節點沒有奇偶性的限制,根據你的集群容量設置即可。

Pod

Pod 是 Kubernetes 的最小工作單元。pod 裡面有一個根容器 Pause容器,一個或者多個業務容器。也就是說一個pod是一組容器的集合,這一組容器都共享Pause 容器的ip和數據卷。Pod 中的容器會作為一個整體被 Master 調度到一個 Node 上運行。

Controller

Kubernetes 通常不會直接創建 Pod,而是通過 Controller 來管理 Pod 的。Controller 中定義了 Pod 的部署特性,比如有幾個副本,在什麼樣的 Node 上運行等。為了滿足不同的業務場景,Kubernetes 提供了多種 Controller,包括 Deployment、ReplicaSet、DaemonSet、StatefuleSet、Job 等,我們逐一討論。

Deployment

是最常用的 Controller,通過創建 Deployment 來部署應用的。管理 Pod 的多個副本,並確保 Pod 按照期望的狀態運行。Deployment 和RC概念很像都是用來部署的工具,可以創建應用並隨時知道部署的進度。

ReplicaSet

實現了 Pod 的多副本管理。使用 Deployment 時會自動創建 ReplicaSet,也就是說 Deployment 是通過 ReplicaSet 來管理 Pod 的多個副本,我們通常不需要直接使用 ReplicaSet。

DaemonSet

用於每個 Node 最多隻運行一個 Pod 副本的場景。正如其名稱所揭示的,DaemonSet 通常用於運行 daemon。

StatefuleSet

能夠保證 Pod 的每個副本在整個生命週期中名稱是不變的。而其他 Controller 不提供這個功能,當某個 Pod 發生故障需要刪除並重新啟動時,Pod 的名稱會發生變化。同時 StatefuleSet 會保證副本按照固定的順序啟動、更新或者刪除。

Job

用於運行結束就刪除的應用。而其他 Controller 中的 Pod 通常是長期持續運行。

Service

Kubernetes Service 定義了外界訪問一組特定 Pod 的方式。Service 有自己的 IP 和端口,Service 為 Pod 提供了負載均衡。

Kubernetes 運行容器(Pod)與訪問容器(Pod)這兩項任務分別由 Controller 和 Service 執行。

Namespace

Namespace 可以將一個物理的 Cluster 邏輯上劃分成多個虛擬 Cluster,每個 Cluster 就是一個 Namespace。不同 Namespace 裡的資源是完全隔離的。

總結

如果大家很想細緻的瞭解其中某個概念,可以留言,我會選擇幾個細緻的講解一下。今天重新手動部署了下K8S,被牆的心累,就簡單的說些概念吧。明天帶大家在牆內進行指定版本的K8S構建。

kubernetes 從入門到棄坑-2


分享到:


相關文章: