k8s 2 重要概念

2021-10-02 03:25:33 字數 1767 閱讀 5813

參考《每天5分鐘玩轉kubernetes》 coldman著。

一、概念

1. cluster

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

2. master

cluster的大腦,主要職責是排程,決定將應用放在**執行。在linux上執行(物理機or虛擬機器)。為了高可用,可執行多個master。

3. node

職責是執行容器應用。由master管理,監控、匯報容器狀態,要據master要求管理容器生命週期。執行於linux(物理機or虛擬機器)

4. pod

最小工作單元,每個pod包含1個or多個容器。作為整體被master排程到node上執行。

4.1 引入pod(比容器更高層次的抽象)的目的:

(1) 可管理性。

將需要一起工作的(緊密聯絡的)容器封裝到同乙個部署單元,以pod為最小單位進行排程、擴充套件、共享資源、管理生命週期。

(2) 通訊和資源共享。

pod中所有容器使用同乙個網路namespace(相同ip+port),可直接用localhost通訊。共享儲存,k8s掛載volume到pod,本質是將volume掛載到pod中的每個容器。

4.2 pods的2種使用方式

(1) 執行單一容器

one-container-per-pod, 只將單個容器簡單封裝成pod.

(2) 執行多個容器

緊密聯調並需要共享資源的容器放到乙個pod中。

5. controller

定義了pod的部署特性,比如幾個副本、在什麼樣的node上執行。k8s(不直接建立pod)通過controller管理pod。提供deployment, replicaset, daemonset, statefulset, job等controller來滿足不同業務場景。

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

5.2 replicaset: deployment通過replicaset來管理pod的多個副本,使用deployments時會自動建立replicaset(不需要直接使用replicaset)。實現了pod的多副本管理。

5.3 daemonset: 通常用於執行daemon, 每個node最多隻執行1個pod副本的場景。

5.4 statefullset: 保證pod的每個副本在整個生命週期中名稱不變。當某個pod發生故障需要刪除並重啟時,pod名稱會發生變化。保證副本按照固定的順序啟動、更新或刪除。

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

6. service

pod銷毀和重啟後,ip可能會發生變化。deployment部署多個副本,每個pod都有自己的ip。

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

k8s執行pod: controller

k8s訪問pod: service

7. namespace

將同乙個k8s cluster中多個使用者或專案組的controller和pod等資源分開。

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

k8s預設建立2個namespace: 

default: 建立資源時如果不指定namespace,則為default。

kube-system: k8s自己建立的系統資源

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的職責是執行容器應用...