fbpx

私房筆記:Kubernetes & GKE (上)

之前舉辦過數次線上研討會介紹 Kubernetes (K8S) 以及 Google Cloud Platform (GCP) 上所提供的代管服務 Google Kubernetes Engine (GKE),都獲得不錯的迴響以及客戶正面的肯定,當然也有些朋友反映沒有參加到,希望有機會再次舉辦。為了能讓更多朋友可以了解 K8S 以及 GKE,我們將在本篇文章中為大家介紹 K8S 及 GKE 的相關服務。

由於 K8S 和 GKE 功能已相當完整,後續會將重要架構觀念、最常使用到的服務功能以及最佳實踐 (Best practice) 呈現在系列文章中,希望讓您對 K8S 及 GKE 有更深的認識。本篇會先介紹 Kubernetes 的重要基本觀念。

大家都知道 Kubernetes (K8S) 是容器 (Container) 服務資源管理調度的工具 (Orchestrator),可以統一集中調度由容器組成的微服務 (Micro-service)。

一般而言,應用程式開發者可以專注於應用程式的開發,只需將服務打包成容器的格式 (ex: Docker Container),接著將容器映像檔 (Image) 提交至 Registry,由維運團隊來進行應用程式版本的更新。透過 K8S 的微服務管理框架 (Framework),維運團隊可以直接使用該映像檔布建至 Kubernetes,即可由 Kubernetes 自動地進行容器應用服務的布建及管理。

一般常見的建置方式為使用數台實體機器 (Physical Server) 或者是虛擬機 (Virtual Machine),分別安裝建置成為 K8S Master node 以及數台 K8S node。透過K8S的資源管理及調度機制,可以將多台 node 的實體運算及儲存 (Storage) 資源以叢集 (Cluster) 方式提供給系統維運管理者,用以管理服務資源以及外部使用者存取的應用服務。

此外,如 K8S 官網所述,K8S提供了 “Automated container deployment, scaling, and management”,大幅提升應用程式服務的可靠度及減輕系統管理的負擔,這也是為什麼近年來只要談到 CI/CD、DevOps 主題,大家就會直接聯想到 Kubernetes 的原因。其重要功能如下:

  • 容器自動部屬 (Automated deployment) : 使用者僅需指定服務所需的容器數量,K8S 便會自動將使用者的容器服務布建於叢集內的多個工作節點 (worker node) 上。
  • 服務自動擴展 (Automated scaling) : 當系統啟用 auto-scaling 功能,一但容器服務工作負載 (loading) 超過指定的門檻值,K8S 即可自動擴展容器的數量,承接外部源源不絕的連線請求。當然,前提是要有足夠可擴充加入 Cluster 的 node 資源。
  • 容器自動化管理 (Automated management) : K8S 會維持使用者配置的系統容器數量,當 K8S master node 偵測到有任何容器或是 Pod 不正常時, master node 會自動啟動新的 Pod 讓系統維持一定的服務容量 (capacity)。此外,若有服務版本的更動,K8S 也能提供相當便利的進版及退版功能,讓管理者在服務不中斷的前提下進行版本更動。

 

Kubernete 需建置於叢集式 (Cluster) 運算資源之上,運行架構圖如下所示:

 

我們將在下一篇介紹 Kubernete 的重要元件,及架構師小TIPS,
請持續鎖定 Microfusion 架構師專欄,以獲得最新專業資訊喔!

 

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

Previous Post

架構師開講:Stackdriver助您監控、改善基礎架構和應用程式效能

Next Post

私房筆記:Kubernetes & GKE (中)

Scroll to top