容器編排平台 Kubernetes(K8s) 介紹
Kubernetes(K8s)是一套開源的容器編排平台,可用於自動化部署、擴展與管理容器化應用程式。Kubernetes 最初由 Google 開源,現在已成為雲端原生應用、微服務架構與企業系統部署常見的基礎平台。
Kubernetes 可搭配符合 CRI(Container Runtime Interface)的容器執行環境,例如 containerd、CRI-O 等。實務上,應用程式仍可透過 Docker 建立容器映像檔,再部署至 Kubernetes 叢集執行。

Kubernetes 叢集主要由 Control Plane 與 Worker Node 組成。Control Plane 負責叢集管理、資源排程與狀態控制;Worker Node 則負責實際執行應用程式工作負載。應用程式通常會被封裝成 Pod,並由 Kubernetes 分派到適合的節點上執行。
Pod
Pod 是 Kubernetes 中最小的部署與執行單位,通常代表一個應用程式工作負載的執行實例。
一個 Pod 可以包含一個或多個容器。同一個 Pod 內的容器會被部署在同一個節點上,並共享網路命名空間與部分資源。實務上,多數 Pod 會以一個主要容器為主;若有日誌收集、代理服務、初始化作業或輔助功能需求,也可以搭配 sidecar 等輔助容器一起運作。
Worker Node
Worker Node 是 Kubernetes 叢集中負責執行應用程式工作負載的節點,可以是實體主機,也可以是虛擬機器。每個 Worker Node 通常包含以下主要元件。
- kubelet:負責與 Control Plane 溝通,接收 Pod 規格,並確保節點上的容器依照預期狀態執行。
- kube-proxy:負責維護節點上的網路規則,協助 Kubernetes Service 將流量導向對應的 Pod。
- Container Runtime:負責實際執行容器的程式,例如 containerd、CRI-O 等。
Control Plane
Control Plane 是 Kubernetes 的管理核心,負責管理叢集狀態、資源排程、API 請求與控制流程。Control Plane 通常包含以下主要元件。
- kube-apiserver:提供 Kubernetes API,是使用者、管理工具與各元件溝通的主要入口,並負責處理認證、授權與 API 請求。
- etcd:作為 Kubernetes 叢集資料的高可用 key-value 儲存區,用來保存叢集狀態與設定資料。正式環境中需另外規劃備份與還原機制。
- kube-scheduler:負責將新建立、尚未分派節點的 Pod,依照資源需求、限制條件與排程規則,分派到適合的 Worker Node 上。
- kube-controller-manager:負責執行各種控制器,持續監控叢集狀態,並嘗試將實際狀態調整為期望狀態,例如節點管理、副本數維持與資源控制等。
Liferay 可透過 Docker 容器映像檔進行部署,也可依企業環境需求,搭配 Kubernetes 進行容器化應用的部署 、擴展與維運管理。