Intro
Kubernetes,簡稱 K8s,是一個開源平台,用來自動化部署、擴展以及管理容器化應用程式。最初由 Google 開發,現在由 Cloud Native Computing Foundation (CNCF) 維護,已經成為容器編排的業界標準。
隨著應用程式越來越複雜,手動管理容器變得非常麻煩。K8s 提供了一些強大的功能,讓運維和開發更輕鬆:
- 自動排程 (Scheduling):智慧地把容器放到資源最優的節點上
- 自我修復 (Self-Healing):當容器或節點出問題時,K8s 會自動重啟、重新排程或替換
- 動態擴展 (Scaling):根據流量需求自動增減容器
- 服務發現 & 負載平衡 (Service Discovery & Load Balancing):自動為容器提供穩定的存取點並分流流量
- 宣告式管理 (Declarative Configuration):只要用 YAML/JSON 定義好「想要的狀態」,K8s 會自動幫你達成
Key Concepts - 核心概念
| Key Term | 說明 (Description) |
|---|---|
| Pod | Kubernetes 的最小部署單位,容器的封裝單位,可能包含一個或多個共用網路的容器 |
| Node | Cluster 中運行 Pod 的主機,可以是虛擬或實體機器 |
| Master Node / Control Plane | Cluster 的管理核心,負責調度 Pod、監控狀態並維護整個系統 |
| Cluster | 由多個 Node 組成的環境,K8s 在上面管理工作負載 |
| Deployment | 用來定義 Pod 的建立、更新與擴展規則,確保應用狀態符合設定 |
| Service | 為 Pod 提供穩定存取點,讓應用對外可用;自動分配流量並支援 Cluster 內的負載平衡,適合單一服務的簡單流量管理 |
| Namespace | 用來隔離 Cluster 中的資源與工作負載,方便多團隊或多環境共存 |
| ConfigMap | 儲存非敏感設定資料,讓 Pod 在運行時可讀取配置 |
| Secret | 安全儲存敏感資訊(如密碼或 API Key),提供 Pod 使用 |
| Ingress | Cluster 的統一入口,負責將外部流量路由到不同的 Service;可統一管理多個服務的 URL 路徑、Host、TLS/HTTPS,適合多服務、多路由需求的場景 |
| Egress / NAT / Egress Gateway | 針對 Pod 出站流量的概念;Kubernetes 原生沒有統一出站 IP,需要透過 Cloud NAT、CNI 插件 SNAT 或 Service Mesh 的 Egress Gateway 來實現 |


(Reference: ByteByteGoHq/system-design-101)
Minikube - 本地端工具
適合開發測試使用的本地端 K8S 集群工具,透過單一 Cluster 方便在本地端上演練各種指令操作
TBC
