fbpx

私房筆記:Kubernetes & GKE (中)

延續上一篇:私房筆記第一篇:Kubernetes & GKE (上)

 

第二篇私房筆記,我們將著重在 Kubernetes 的應用程式相關元件上,架構師將逐一介紹四個主要元件,事不宜遲,就讓我們一起來看看吧!

– Master Node

Master Node 執行 Kubernetes 控制層程序 (Control Plane),包含 Kubernetes API 伺服器 (kube-apiserver)、排程器 (scheduler) 和核心資源控制器 (Core resource controllers)。系統管理者所有與 K8S Cluster 的互動都透過 Kubernetes API 呼叫來完成,且 Master Node 會執行 Kubernetes API Server 來處理這些要求。Master Node 的 API server 程序是 Cluster 中所有通訊的中樞。以下是 Master Node 內重要元件:

  • kube-apiserver:提供使用者連接管理 K8S Cluster 的前端入口。
  • etcd:存放 Cluster 配置設定以及各項工作狀態及資訊,可以視為是 Cluster 的系統資料庫。
  • kube-scheduler:負責管理 Pod 執行以及分配執行 Pod 所對應的 worker node。
  • kube-controller manager:其中包含數個 controller 模組,包含管理 Cluster 內 node 的狀態,Pod 的副本數量(Replication),服務存取節點的管理(service endpoint),account 以及 namespace 管理。

 

– Node

Node 節點是實際運行容器化應用程式和應用程式服務的工作站機器 (worker node),每個 Node 都透過 Master Node 管理,且各 Node 會自行回報最新狀態資訊給 Master Node。在 Worker Node 中,會有以下幾個主要元件:

  • kublet:與 Master Node 上的  apiserver 相互溝通且管理及及健康監控 Pod 運行狀態的工具 (agent)
  • kube-proxy:網路管理工具
  • Container runtime:執行 Container 的軟體套件 (ex: Docker, Containerd, CRI-O )

 

– Pod

Pod 是 Kubernetes 中最小、最基本的可部署物件。Pod 代表叢集中一個運作中程序的單一執行個體。Pod 含有一或多個「容器」,如 Docker 容器。若 Pod 執行多個容器,系統會將這些容器視為單個實體進行管理,這些容器也共用 Pod 的資源。

一般除了有高度相關聯 (Tightly Coupled) 的容器服務為了增進應用程式的效率,才建議把一個以上的容器服務包裝進同一Pod內。以下圖為例,該單一Pod提供的服務為Web Server網頁服務,而其內部有另一個檔案管理服務,兩容器可共享Pod內的儲存資源( Shared Volume),相輔相成提供外部使用者存取網頁服務並透過網頁頁面顯示對應的檔案。

 

圖片來源: Kubernetes官網

 

– Deployment

Deployment 可以視為一組相同 Pod 所組成的服務管理單元,其中可以透過副本 (Replicas) 參數指定所需的 Pod 數量。Deployment 可協助確保應用程式可以有一或多個執行個體處理使用者要求並會自動取代失敗或已從節點中移除的 Pod。以下圖為例,該 Deployment 內指定 K8S Cluster 需建置兩組相同服務的 Pod,而此兩組 Pod 會由 Cluster 布建於 node 之中,且 K8S 會於系統內持續維持兩組運行中的 Pod 來提供服務讓用戶端存取。

 

 

既然大家都已經了解應用程式相關元件如何於 K8S 內組成及運行, 接下來,下一篇架構師私房筆記將解釋如何將應用程式服務提供給其他使用者或應用程式, 並公開提供給外部使用的重要K8S元件(Component)!


請持續鎖定 Microfusion 架構師專欄,以獲得最新專業資訊喔!

 

若有任何 GCP 需求,歡迎與我們聯繫!

Previous Post

私房筆記:Kubernetes & GKE (上)

Next Post

【3月限定 優惠Last Call】GSuite 漲價前買起來! 雲端辦公室輕鬆入袋

Scroll to top