K8s · 入門基礎 · 第 05 課 · · 8min read

本地裝 K8s:k3d 與 minikube 怎麼選?新手安裝指南

想練習 K8s 不用買雲端,本地就能裝。k3d 輕量快、minikube 老牌穩,這篇實測比較給你建議,附完整安裝步驟(macOS / Windows / Linux)。

#Kubernetes #k3d #minikube #本地安裝 #k3s
章節目錄 · 12

學 K8s 不一定要花錢開雲端

新手常見誤會:「K8s 不是要好多台機器嗎?我哪有錢?

事實是:本地一台筆電就能跑完整 K8s 叢集。市面上有好幾個工具讓你在本機跑「迷你版 K8s」,學習練手綽綽有餘。最熱門的兩個:

  • minikube — 老牌、文件多、社群大
  • k3d — 輕量、啟動快、可以跑多節點
兩個我都用過,這篇直接給你結論 + 實測比較 + 安裝步驟。

一句話結論

新手 / 跟教學文做 → minikube進階 / 想模擬多節點 → k3d完全不知道選哪個 → minikube,因為網路上絕大多數教學是用 minikube

不會錯的選擇就是 minikube。但 k3d 真的快很多,用過就回不去

實測比較表

我在 M2 MacBook Air 16GB 跑了一輪:

項目minikubek3d
啟動時間50–90 秒5–15 秒
記憶體佔用~2 GB~500 MB
預設 Driverdocker / virtualbox / hyperkitdocker
多節點支援1 個指令加 --nodes=N1 個指令加 --agents=N
內建 Ingress Controlleraddons enable ingress預設就有 traefik
內建 Dashboardminikube dashboard 一鍵開沒有,要自己裝
跟 Docker 整合共用 Docker Daemon 較複雜直接用本機 Docker
教學文件量⭐⭐⭐⭐⭐(超多)⭐⭐⭐(夠用)
社群活躍⭐⭐⭐⭐⭐⭐⭐⭐⭐
我的看法:學習階段用 minikube,因為大部分教學文可以直接照抄。熟了之後換 k3d,啟動快、佔資源少,每天工作幾十次重啟叢集差距巨大。

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% 可用。後面所有教學就靠它。

常見坑

  • Docker Desktop 沒開 → minikube / k3d 都會起不來

  • 記憶體不夠 → minikube 預設要 2 GB,可以 minikube start --memory=4096 加大

  • k3d port mapping 沒設 → Ingress 通了但本機連不到,因為沒把 port 映射出來

  • Apple Silicon (M 系列) 用 virtualbox → 不支援,要用 --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 課,按學習路徑順序排)