結論先講

K8s 的 ROI 在「運維自動化」不在「效能」。 我們的壓測甚至顯示 k3s 效能不如 Docker Compose——k3s 吃掉了 1-2 CPU 和 500MB-1GB RAM 做自己的事,留給應用的資源更少。K8s 值得用的前提是:你有 1000+ 用戶、需要自動擴縮、有專人維護 K8s 集群。


壓測數據(回顧 第 22 篇

架構100 VU500 VU1000 VU
Docker Compose + nginx0% 錯誤0% 錯誤0% 錯誤
k3s0% 錯誤開始報錯大量報錯

為什麼 k3s 更差

k3s 是「最輕量」的 K8s 發行版,但它仍然需要跑:

  • kube-apiserver
  • etcd(k3s 用 SQLite 替代,但仍佔資源)
  • kubelet
  • kube-proxy
  • CoreDNS

在 4 CPU / 4 GB 的測試環境中,這些組件吃掉了 1-2 CPU 和 500MB-1GB RAM。等於你的應用只剩 2-3 CPU 和 3 GB。

Docker Compose + nginx 幾乎零 overhead——nginx 吃 < 50MB RAM,docker daemon 吃 < 100MB。應用拿到接近全部的 4 CPU / 4 GB。


Docker Compose 能撐多遠

架構上限做法
單機 Docker Compose~500 人1 台機器跑所有 container
Docker Compose + nginx LB(2 台)~1000 人2 台機器 + nginx 做負載均衡
Docker Compose + nginx LB(4 台)~1000 人(卡 DB)需要先擴 DB 連線池

2 台 AP 提升 53%(第 22 篇),但 4 台不會更好——瓶頸轉移到 DB 連線池。

1000 人以內,Docker Compose + nginx LB 足夠。


什麼時候上 K8s

上 K8s 的理由(技術面)

功能Docker ComposeK8s
自動擴縮(HPA)沒有
自動修復(restart failed pod)有(restart policy)更完善
滾動更新(zero downtime)手動做自動
服務發現(DNS)手動設定自動
秘密管理(secrets).env 檔K8s Secrets
資源限制(per pod)Docker limits更精細

上 K8s 的理由(組織面)

  • 團隊 > 10 人,需要標準化的部署流程
  • 有專職 DevOps/SRE
  • 需要多環境(dev / staging / production)標準化
  • 合規要求(金融、醫療)

不要上 K8s 的理由

  • 團隊 < 5 人(沒人維護 K8s)
  • UV < 1000(Docker Compose 夠用)
  • 沒有 DevOps 背景(K8s 學習曲線 3-6 個月)
  • 預算有限(K8s 的 control plane 吃資源 = 多花錢)

如果你在 1000 人邊界

現在: Docker Compose + nginx(單機或 2 台)

成長到 1000 人:
  選項 A: Docker Compose + nginx LB(4 台)+ 擴 DB
  選項 B: 上 K8s

比較:
  A: 簡單、便宜、但手動管 4 台機器
  B: 自動化、但要學 K8s、control plane 吃資源

建議: 先做 A,等到需要自動擴縮(流量波動大)再做 B

K8s 的「YAML 地獄」

上了 K8s 之後你會寫的 YAML:

deployment.yaml          — 幾個 pod、用什麼 image
service.yaml             — 怎麼暴露 port
ingress.yaml             — 外部怎麼存取
configmap.yaml           — 環境變數
secret.yaml              — 密碼
hpa.yaml                 — 自動擴縮規則
pvc.yaml                 — 持久化存儲
networkpolicy.yaml       — 網路隔離
serviceaccount.yaml      — RBAC

每個微服務一套。5 個服務 = 45 個 YAML 檔。

Helm Chart 可以模板化,但又多了一層抽象。 出問題時要 debug 的層次:application → Docker → K8s → Helm → YAML。

這不是在勸退 K8s——只是要意識到複雜度是真實的。


下一篇

Docker Compose 上生產的正確姿勢 — 「Docker Compose 不適合生產環境」是錯誤的觀念。正確配置的 Docker Compose + nginx + 監控 + 備份,在 1000 人以內比 K8s 更穩定、更便宜、更好維護。


本系列文章

完整 68 篇目錄見 系列首頁

← 上一篇:微服務拆分模式:Strangler Fig 漸進式替換 → 下一篇:Docker Compose 上生產的正確姿勢