Skip to main content

Kubernetes 基本介紹

Kubernetes(簡稱 K8s)是一個由 Google 開發並開源的 容器編排平台(Container Orchestration Platform),用來自動化部署、擴展、與管理容器化的應用程式。


為什麼需要 Kubernetes?

在 Docker 出現後,我們能輕易地打包應用程式與依賴。但當系統變大、服務變多時,光靠 Docker 已不足以解決:

  • 多個容器的 生命週期管理(啟動、停止、重啟)
  • 自動擴縮容(根據負載自動調整 Pod 數量)
  • 自我修復機制(Crash 後自動重建)
  • 服務發現與負載平衡
  • 跨主機集群管理

👉 這些,就是 Kubernetes 所解決的問題。


Kubernetes 的核心元件

Kubernetes 主要由兩個部分組成:

1. Control Plane(控制平面)

負責整體叢集的管理與協調。

元件功能說明
API Server所有操作的入口,接收 kubectl 或其他系統的指令。
etcd分散式鍵值資料庫,儲存叢集狀態。
Controller Manager負責維持系統的期望狀態(Desired State)。
Scheduler決定 Pod 要被安排到哪個 Node 上執行。

2. Node(工作節點)

實際執行容器的地方。

元件功能說明
kubelet負責與 API Server 通訊,確保 Pod 狀態一致。
kube-proxy提供網路轉發與負載平衡。
Container Runtime執行容器的實際引擎(例如 Docker、containerd)。

核心物件(K8s Resources)

物件說明
PodKubernetes 中最小的可部署單位,通常包裝一個或多個容器。
Service為一組 Pod 提供穩定的網路與名稱。
Deployment管理多個 Pod 的版本與滾動更新。
ReplicaSet確保特定數量的 Pod 始終運行。
ConfigMap / Secret儲存設定值與敏感資訊。
Ingress管理外部流量進入叢集內部的路由規則。

運作流程範例

Kubernetes 的優點

  • 自我修復(Self-healing)
  • 自動擴縮(Auto-scaling)
  • 滾動更新與回滾
  • 高可用與容錯
  • 跨雲可攜性(Multi-cloud / Hybrid Cloud)

延伸閱讀