k8s各個服務的重要概念

2021-09-14 01:47:55 字數 1458 閱讀 9461

kubernetes(k8s)是google開源的容器集群管理系統。在docker技術的基礎上,為容器化的應用提供部署執行、資源排程、服務發現和動態伸縮等一系列完整功能,提高了大規模容器集群管理的便捷性。這裡簡單介紹一下k8s中的幾個重要概念

cluster 是計算、儲存和網路等資源的集合,k8s 使用用這些資源執行各種基於容器的應用。

master 是 cluster 的大腦,它的主要職責是排程,即決定將應用放在**執行。master 執行 linux 作業系統,可以是物理機或者虛擬機器。為了實現高可用,可以執行多個 master。

node 的職責是執行容器應用。node 由 master 管理,node 負責監控並匯報容器的狀態,並根據 master 的要求管理容器的生命週期。node 執行在 linux 作業系統,可以是物理機或者是虛擬機器。

pod 是 kubernetes 的最小工作單元。每個 pod 包含乙個或多個容器。pod 中的容器會作為乙個整體被 master 排程到乙個 node 上執行。

kubernetes 通常不會直接建立 pod,而是通過 controller 來管理 pod 的。controller 中定義了 pod 的部署特性,比如有幾個副本,在什麼樣的 node 上執行等。為了滿足不同的業務場景,kubernetes 提供了多種 controller,包括 deployment、replicaset、daemonset、statefuleset、job 等

deployment 是最常用的 controller。deployment 可以管理 pod 的多個副本,並確保 pod 按照期望的狀態執行。

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

daemonset 用於每個 node 最多隻執行乙個 pod 副本的場景。正如其名稱所揭示的,daemonset 通常用於執行 daemon。

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

job 用於執行結束就刪除的應用。而其他 controller 中的 pod 通常是長期持續執行。

kubernetes service 定義了外界訪問一組特定 pod 的方式。service 有自己的 ip 和埠,service 為 pod 提供了負載均衡。

kubernetes 執行容器(pod)與訪問容器(pod)這兩項任務分別由 controller 和 service 執行。

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

k8s重要概念

kubernetes架構圖 下圖為kubernetes的master架構圖 cluster是計算 儲存和網路資源的集合,kubernetes利用這些資源執行各種基於容器的應用。master 是cluster的大腦,它的主要職能就是負責排程,決定應用放在 執行。master執行linux作業系統,可以...

k8s重要概念

kubernetes架構圖 下圖為kubernetes的master架構圖 cluster是計算 儲存和網路資源的集合,kubernetes利用這些資源執行各種基於容器的應用。master 是cluster的大腦,它的主要職能就是負責排程,決定應用放在 執行。master執行linux作業系統,可以...

K8S 重要概念 及 部署K8S集群

cluster是 計算,儲存和網路資源的集合,k8s利用這些資源執行各種基於容器的應用 master是cluster的大腦,他的主要職責是排程,即決定將應用放在 執行。master執行linux作業系統,可以是物理機或者虛擬機器。為了實現高可用,可以執行多個master。node的職責是執行容器應用...