天天看點

Kubernetes的基本架構簡介1 Kubernetes架構

簡介

Kubernetes

,希臘語,意舵手。有時簡寫為“K8s”,其中“8”代表“K”和“s”之間的 8 個字母,是一個開源系統,支援在任何地方部署、擴縮和管理容器化應用。

1 Kubernetes架構

  • 整體架構圖
Kubernetes的基本架構簡介1 Kubernetes架構

Kubernetes的這種架構為服務發現提供了一種靈活的,松耦合的機制。與大多數分布式計算平台架構一樣,Kubernetes叢集至少包含一個主節點和多個計算節點。主伺服器負責公開應用程式接口(API),安排部署并管理整個叢集。

每個節點都運作一個運作時容器,例如Docker或rkt,以及一個與主機通信的代理。該節點還運作用于日志記錄,監視,服務發現和可選附件的其他元件。節點是Kubernetes叢集的主力軍。它們向應用程式公開計算,網絡和存儲資源。節點可以是在雲中運作的虛拟機(VM)或在資料中心内運作的裸機伺服器。

Kubernetes的基本架構簡介1 Kubernetes架構

隻不過

  • manager 在這裡是 Master
  • worker 是 普通的 Node

Master會對外暴露很多接口供我們操作 k8s 叢集,比如檢視節點狀态、将應用部署到k8s叢集。

  • Kubernetes 叢集(Cluster)
Kubernetes的基本架構簡介1 Kubernetes架構

1.1 Master 節點功能

Kubernetes的基本架構簡介1 Kubernetes架構

核心元件

etcd

分布式的 K.V 存儲,儲存了整個k8s叢集的狀态和配置

API Server

暴露給外界通路,可以通過 CLI 或 UI 操作通過 API Server 最終和整個叢集互動,提供了資源操作的唯一入口,并提供認證、授權、通路控制、API注冊和發現等機制;

controller manager

負責維護叢集的狀态,比如負載均衡、故障檢測、自動擴充、滾動更新等;

Scheduler

負責資源的排程,按照預定的排程政策将Pod排程到相應的機器上。比如我要部署一個應用,該應用需要兩個容器,那這倆容器又該運作在哪個 Node 呢?這就是負責的事情。

1.2 Node 節點功能

Kubernetes的基本架構簡介1 Kubernetes架構

Pod

基本算是 k8s 中容器裡排程的最小機關,是具有相同 namespace 的一些 container 組合。吊艙是一個或多個容器的集合。吊艙是Kubernetes的管理核心單元。容器充當共享相同上下文和資源的容器的邏輯邊界。 Pod的分組機制通過使多個依賴程序一起運作而彌補了容器化和虛拟化之間的差異。在運作時,可以通過建立副本集來擴充Pod,以確定部署始終運作所需數量的Pod。

Docker

每個 Node 都需要執行一個運作時容器,例如Docker或rkt。

kubelet

我們知道Node 節點受 Master 控制的,那就需要一個代理在 Node 中做這些事。負責維護容器的生命周期,同時也負責Volume(CSI)和網絡(CNI)的管理。

Container runtime

Kubernetes的基本架構簡介1 Kubernetes架構

負責鏡像管理以及Pod和容器的真正運作(CRI)

kube-proxy

負責為Service提供叢集内部的服務發現和負載均衡。

Fluentd

日志采集和查詢。

參考