學 K8s 不一定要花錢開雲端
新手常見誤會:「K8s 不是要好多台機器嗎?我哪有錢?」
事實是:本地一台筆電就能跑完整 K8s 叢集。市面上有好幾個工具讓你在本機跑「迷你版 K8s」,學習練手綽綽有餘。最熱門的兩個:
- minikube — 老牌、文件多、社群大
- k3d — 輕量、啟動快、可以跑多節點
一句話結論
新手 / 跟教學文做 → minikube進階 / 想模擬多節點 → k3d完全不知道選哪個 → minikube,因為網路上絕大多數教學是用 minikube
不會錯的選擇就是 minikube。但 k3d 真的快很多,用過就回不去。
實測比較表
我在 M2 MacBook Air 16GB 跑了一輪:
| 項目 | minikube | k3d |
|---|---|---|
| 啟動時間 | 50–90 秒 | 5–15 秒 ⚡ |
| 記憶體佔用 | ~2 GB | ~500 MB |
| 預設 Driver | docker / virtualbox / hyperkit | docker |
| 多節點支援 | 1 個指令加 --nodes=N | 1 個指令加 --agents=N |
| 內建 Ingress Controller | 要 addons enable ingress | 預設就有 traefik |
| 內建 Dashboard | minikube dashboard 一鍵開 | 沒有,要自己裝 |
| 跟 Docker 整合 | 共用 Docker Daemon 較複雜 | 直接用本機 Docker |
| 教學文件量 | ⭐⭐⭐⭐⭐(超多) | ⭐⭐⭐(夠用) |
| 社群活躍 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
minikube 是什麼?
K8s 官方主推的「單節點模擬叢集」工具。它在你的本機跑一個 VM 或 Docker 容器,裡面塞一整套 K8s。
特色:
- Master + Worker 合在同一個節點(單機模擬叢集)
- 底層 Driver 可選:docker、virtualbox、hyperkit、podman、kvm2
- Addons 機制:dashboard、ingress、metrics-server 一行指令安裝
- 文件超完整,新手友善
- 預設單節點,多節點要加參數但效率不如 k3d
- 啟動慢(VM 要起來)
k3d 是什麼?
把 k3s(Rancher 的輕量 K8s) 包進 Docker 容器跑的工具。一個 Node = 一個 Docker container,所以開叢集快得不可思議。
特色:
- 超輕量——k3s 把 K8s 砍掉很多生產用不到的東西,記憶體佔用是 minikube 的 1/4
- 多節點原生支援——
--agents=3直接給你 3 個 Worker - 用 Docker 跑,不用 VM,啟動秒級
- 預設裝 traefik(Ingress Controller),不用額外設定就有 Ingress
- 教學文件比 minikube 少
- 一些 K8s 功能 k3s 砍掉了(一般學習用不到,但要知道)
minikube 安裝步驟
macOS
# 用 brew
brew install minikube
# 啟動
minikube start
# 驗證
kubectl get nodes
第一次啟動會下載 K8s image,可能要 1~2 分鐘。
Windows
# 用 winget
winget install Kubernetes.minikube
# 或用 chocolatey
choco install minikube
# 啟動
minikube start --driver=docker
注意:Windows 建議先裝好 Docker Desktop,並用 --driver=docker 啟動。
Linux
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
minikube start --driver=docker
常用指令
minikube status # 看叢集狀態
minikube stop # 暫停(保留狀態)
minikube delete # 完全刪除(重來一次)
minikube dashboard # 打開圖形介面
minikube addons enable ingress # 裝 Ingress Controller
k3d 安裝步驟
macOS
brew install k3d
# 建立叢集(1 master + 2 worker)
k3d cluster create mycluster --agents 2
# 驗證
kubectl get nodes
Windows
# 用 chocolatey
choco install k3d
# 或下載 release
# https://github.com/k3d-io/k3d/releases
k3d cluster create mycluster --agents 2
Linux
curl -s https://raw.githubusercontent.com/k3d-io/k3d/main/install.sh | bash
k3d cluster create mycluster --agents 2
常用指令
k3d cluster list # 列叢集
k3d cluster stop mycluster # 暫停
k3d cluster delete mycluster # 刪除
k3d cluster create mycluster \
--agents 3 \
--port "8080:80@loadbalancer" # 把 Ingress 80 port mapping 到本機 8080
安裝完先做這 3 個檢查
不管 minikube 還是 k3d,裝完先跑這三個指令確認:
# 1. Node 是 Ready
kubectl get nodes
# NAME STATUS ROLES AGE VERSION
# minikube Ready control-plane 1m v1.28.x
# 2. 系統 Pod 都活著
kubectl get pods -n kube-system
# 應該全部 Running
# 3. 跑一個 nginx 測試
kubectl run test-nginx --image=nginx
kubectl get pods
# 應該 1~2 秒看到 Running
kubectl delete pod test-nginx
這三個過了,叢集就 100% 可用。後面所有教學就靠它。
常見坑
minikube start --memory=4096 加大--driver=docker 或 --driver=hyperkit我自己的選擇
寫教學、做 demo → minikube(因為 reader 大部分用 minikube,文件可以照抄)
個人開發、寫 K8s YAML 練手 → k3d(每天 k3d cluster delete && create 試各種設定,5 秒重啟省時間)
兩個都裝起來占不了多少空間,我建議都裝。需要哪個用哪個。
重點整理
- 學 K8s 不用花錢開雲端,本機就能跑完整叢集
- minikube:老牌穩、文件多、新手首選
- k3d:輕量快、多節點方便、進階首選
- 新手別猶豫,先用 minikube——絕大多數教學文都是用它
- 安裝完先跑「
kubectl get nodes+kubectl get pods -n kube-system+ 跑個 nginx」三個檢查
下一步
叢集裝起來了,下一篇我們真的進去摸 K8s 肚子:kubectl get pods -n kube-system 在看什麼——把架構圖上的組件,一個一個在實際 Pod 列表裡找出來認,看完你會對 K8s 有全新的認識。
📅 下一篇(2026-05-03 已上線):kubectl get pods -n kube-system 在看什麼?K8s 自己也是用 Pod 跑
看 kube-system namespace 裡的 coredns / kube-proxy / traefik,等於看懂 K8s 自己怎麼運作。
📚 完整系列總覽:K8s 系列教學首頁(共 40 課,按學習路徑順序排)