基本概念

叢集

一個叢集指容器運行所需要的雲資源群組合,關聯了若干伺服器節點、負載平衡、專用網路等雲資源。

節點

一台伺服器(可以是虛擬機器執行個體或者物理伺服器)已經安裝了 Docker Engine,可以用於部署和管理容器;Container Service的 Agent 程式會安裝到節點上並註冊到一個叢集上。叢集中的節點數量可以伸縮。

容器

一個通過 Docker 鏡像建立的運行執行個體,一個節點可運行多個容器。

鏡像

Docker 鏡像是容器應用打包的標準格式,在部署容器化應用時可以指定鏡像,鏡像可以來自於 Docker Hub,阿里雲鏡像服務,或者使用者的私人 Registry。鏡像 ID 可以由鏡像所在倉庫 URI 和鏡像 Tag(預設為 latest)唯一確認。

Kubernetes 相關概念

節點(Node)

Kubernetes 叢集中的計算能力由 Node 提供,Kubernetes 叢集中的 Node 是所有 Pod 運行所在的工作主機,可以是物理機也可以是虛擬機器。工作主機的統一特徵是上面要運行 kubelet 管理節點上啟動並執行容器。

命名空間(Namespace)

命名空間為 Kubernetes 叢集提供虛擬隔離作用。Kubernetes 叢集初始有 3 個命名空間,分別是預設命名空間 default、系統命名空間 kube-system 和 kube-public ,除此以外,管理員可以建立新的命名空間以滿足需求。

Pod

Pod是 Kubernetes 部署應用或服務的最小的基本單位。一個Pod 封裝多個應用程式容器(也可以只有一個容器)、儲存資源、一個獨立的網路 IP 以及管理控制容器運行方式的策略選項。

副本控制器(Replication Controller,RC)

RC 確保任何時候 Kubernetes 叢集中有指定數量的 pod 副本(replicas)在運行。通過監控運行中的 Pod 來保證叢集中運行指定數目的 Pod 副本。指定的數目可以是多個也可以是1個;少於指定數目,RC 就會啟動運行新的 Pod 副本;多於指定數目,RC 就會終止多餘的 Pod 副本。

複本集(Replica Set,RS)

ReplicaSet(RS)是 RC 的升級版本,唯一區別是對選取器的支援,RS 能支援更多種類的匹配模式。複本集對象一般不單獨使用,而是作為 Deployment 的理想狀態參數使用。

部署(Deployment)

部署表示使用者對 Kubernetes 叢集的一次更新操作。部署比 RS 應用更廣,可以是建立一個新的服務,更新一個新的服務,也可以是滾動升級一個服務。滾動升級一個服務,實際是建立一個新的 RS,然後逐漸將新 RS 中副本數增加到理想狀態,將舊 RS 中的副本數減小到 0 的複合操作;這樣一個複合操作用一個RS是不太好描述的,所以用一個更通用的 Deployment 來描述。不建議您手動管理利用 Deployment 建立的 RS。

服務(Service)

Service 也是 Kubernetes 的基本操作單元,是真實應用服務的抽象,每一個服務後面都有很多對應的容器來提供支援,通過 Kube-Proxy 的 port 和服務 selector 決定服務要求傳遞給後端的容器,對外表現為一個單一提供者,外部不需要瞭解後端如何運行,這給擴充或維護後端帶來很大的好處。

標籤(labels)

Labels 的實質是附著在資來源物件上的一系列 Key/Value 索引值對,用於指定對使用者有意義的對象的屬性,標籤對核心系統是沒有直接意義的。標籤可以在建立一個對象的時候直接賦予,也可以在後期隨時修改,每一個對象可以擁有多個標籤,但 key 值必須唯一。

儲存卷(Volume)

Kubernetes 叢集中的儲存卷跟 Docker 的儲存卷有些類似,只不過 Docker 的儲存卷作用範圍為一個容器,而 Kubernetes 的儲存卷的生命週期和作用範圍是一個 Pod。每個 Pod 中聲明的儲存卷由 Pod 中的所有容器共用。支援使用 Persistent Volume Claim 即 PVC 這種邏輯儲存,使用者可以忽略背景實際儲存技術,具體關於 Persistent Volumn(pv)的配置由儲存管理員來配置。

持久儲存卷(Persistent Volume,PV)和持久儲存卷聲明(Persistent Volume Claim,PVC)

PV 和 PVC 使得 Kubernetes 叢集具備了儲存的邏輯抽象能力,使得在配置 Pod 的邏輯裡可以忽略對實際後台儲存技術的配置,而把這項配置的工作交給 PV 的配置者。儲存的 PV 和 PVC 的這種關係,跟計算的 Node 和 Pod 的關係是非常類似的;PV 和 Node 是資源的提供者,根據叢集的基礎設施變化而變化,由 Kubernetes 叢集管理員配置;而 PVC 和 Pod是資源的使用者,根據商務服務的需求變化而變化,由 Kubernetes 叢集的使用者即服務的管理員來配置。

Ingress

Ingress 是授權入站串連到達叢集服務的規則集合。你可以通過 Ingress 配置提供外部可訪問的 URL、負載平衡、SSL、基於名稱的虛擬機器主機等。使用者通過 POST Ingress 資源到 API server 的方式來請求 Ingress。 Ingress controller 負責實現 Ingress,通常使用負載平衡器,它還可以配置邊界路由和其他前端,這有助於以 HA 方式處理流量。

相關文檔