在 Proxmox 上建立 K3s:CT vs VM 與叢集架構概念
在 Proxmox VE 上建置 K3s 叢集之前,有幾個底層概念值得先釐清,包括容器與虛擬機的取捨,以及 Kubernetes 本身的節點架構。
CT vs VM:選哪個跑 K3s?
在 Proxmox VE 中建立 K3s 節點時,底層架構的選擇會影響資源消耗與設定難度。
| 項目 | VM(虛擬機) | CT(LXC 系統容器) |
|---|---|---|
| 核心 | 獨立核心,完全隔離 | 與宿主機共用核心 |
| 資源消耗 | 高 | 極低 |
| K3s 相容性 | 開箱即用,幾乎無阻 | 需手動開啟 Nesting 等權限 |
| 適合情境 | 資源充足、求穩定 | 資源受限、求輕量 |
VM 擁有完整作業系統與獨立核心,安裝 K3s 最為順暢,但對資源的消耗也更大。
CT 與宿主機共用核心,啟動快、幾乎不耗損額外效能,但 PVE 預設有嚴格的安全限制。K3s 運作時需要建立子容器並控制底層網路,在 CT 中安裝必須手動開啟巢狀虛擬化(Nesting)等權限,否則服務會無法啟動。
Master 與 Worker 的角色分工
在 K3s(K8s)的分散式架構中,每台機器被賦予不同的角色:
Master Node(控制節點)
- 整個叢集的大腦,不負責執行使用者的應用程式
- 接收開發者指令(如 YAML 部署檔)、監控叢集健康狀態、記錄資料
- 根據資源狀況,決定將任務指派給哪台 Worker
Worker Node(工作節點)
- 實際執行運算任務的伺服器
- 聽從 Master 的調度,在自己的環境內建立並運行 Pod
- 定期向 Master 回報自身的健康與資源狀態
Cluster、Node、Pod 的層次關係
三者構成 Kubernetes 由大到小的基礎架構:
Cluster(叢集) 最大單位。由一個或多個 Master Node 加上多個 Worker Node 組成的運算池,對外表現得像一台超級電腦。
Node(節點) 叢集中的實體機器或虛擬機器(在 Proxmox 環境中,就是一台台 CT)。分為 Master 與 Worker 兩種角色,負責提供 CPU 與記憶體等硬體資源。
Pod(最小部署單元) Kubernetes 最小的運作單位,存在於 Worker Node 內部。Pod 就像一個虛擬小房間,裝載著一個或多個緊密關聯的容器(如 Docker)。K8s 的自動修復機制,就是透過「殺掉壞掉的 Pod、在健康的 Node 上重建新 Pod」來達成高可用性。
