I03 · 計算 & 容器平台 詳細 ROADMAP

計畫文件,不會被 Quartz 渲染。 回主 roadmap → infra/ROADMAP.md


章節目標

Request 從 Gateway 路由到計算資源——這是 infra 最大的主題之一。涵蓋:Container Runtime / K8s 全套 / Helm / Registry / Serverless / 雲端 K8s 服務(EKS / GKE / AKS)、地端 K8s(Kind / OrbStack / k3s)。

這章從 backend/ 吸收大量 pointer(B04 容器底層、B08 Monolith→MS 的 infra 層、B18 部署深入)。


🌱 基本介紹

#主題SlugStage大綱
01計算平台全景01-compute-landscape🌱VM → Container → K8s → Serverless → Edge;每一代解的問題跟新代價

❓ 為什麼需要

#主題SlugStage大綱
02為什麼 VM 直接開就好,要搞 container02-why-container-over-vm🌱啟動速度、資源密度、image 可複用、部署一致性
03為什麼 docker-compose 撐不住要上 K8s03-why-k8s-over-compose🌱多機自動調度、self-healing、HA、滾動更新;吸收 backend/micro-service/41
04為什麼 K8s 複雜度值得04-why-k8s-complexity-worth-it🌱生態 / 多雲可攜性 / 社群標準;跟小團隊上 K8s 的 trade-off
05為什麼 Serverless 在企業不全面取代 K8s05-why-serverless-not-replacing🌱Cold start / vendor lock-in / state 管理;互補關係

🕰️ 演進

#主題SlugStage大綱
06Container 演進⛔️ infra/compute/03-container-runtime🌿跨系列
07K8s 演進⛔️ infra/compute/33-kubernetes-intro🌿跨系列
08計算平台演進驅動力08-compute-evolution-drivers🌱Bare metal 部署繁瑣撞牆 → VM;VM hypervisor overhead 撞牆 → Container;單機 container scheduling 撞牆 → K8s;K8s 運維重撞牆 → Managed K8s / Serverless;雲地混合的歷史脈絡

🧠 知識型

閱讀順序建議(42 題肥章,跟著 request 走 or 主題順序任一):

  1. Container Supply Chain(F03-A):從 image build 到 run 全流程
  2. K8s 核心(F03-B):workload / network / storage / config / helm 六大物件
  3. K8s 可用性 & Scaling(F03-C):上 production 要考慮的面向(含 GPU workload)
  4. Compose / Serverless / 雲地混合(F03-D/E/F):替代方案與進階場景

F03-A Container 基礎 & Supply Chain

Container 不是只有「build → push → run」三件事。2020+ 供應鏈攻擊(xz、solarwinds)後,build → scan → sign → attest → run 是完整鏈路。這節從 runtime 到 supply chain 一次講清。

#主題SlugStage大綱
09Container Runtime 深入(吸收 backend B04 #20)⛔️ infra/compute/03-container-runtime🌿跨系列(原始篇)+ 從 backend B04 吸收:runc / crun / gVisor / OCI spec / K8s CRI
10Container Registry⛔️ infra/compute/07-container-registry🌿跨系列
11Registry 選型對比(概念 + 實戰)⛔️ infra/cloud/01-container-registry-comparison/01 + -2🌿跨系列
12Image Build 優化12-image-build-optimization🌱Multi-stage / BuildKit / distroless / Chainguard / layer caching 策略;build 階段只講建得快、建得小,signing 跟 SBOM 移到 #14
13Image Security Scanning13-image-scanning🌱Trivy / Grype / Snyk;CVE 管理;跟 ops-notes/ 漏洞應變
14Image Signing / SBOM / Provenance14-image-signing-sbom🌱Sigstore cosign / Notary v2;SBOM(SPDX / CycloneDX);SLSA provenance;跟 infra/cicd-deployment/ I07 #33 SBOM 分工(I07 講 CI 整合,本章講 image 本身的簽章鏈)
15Container Supply Chain 全景15-container-supply-chain🌱Build → Scan → Sign → Attest → Admission → Run 全鏈路;policy enforcement(Kyverno / OPA Gatekeeper);跟 I07 CI 整合、I06 admission 串起來的整套防線

F03-B Kubernetes 核心

#主題SlugStage大綱
16K8s Intro⛔️ infra/compute/33-kubernetes-intro🌿跨系列
17K8s Workloads(Deployment / StatefulSet / DaemonSet / Job)⛔️ infra/k8s/01-k8s-workloads🌿跨系列
18K8s Networking(Service / Ingress / NetworkPolicy)⛔️ infra/k8s/02-k8s-networking🌿跨系列
19K8s Storage(PV / PVC / StorageClass / CSI)⛔️ infra/k8s/03-k8s-storage🌿跨系列
20K8s Config / RBAC⛔️ infra/k8s/04-k8s-config-rbac🌿跨系列
21Helm 套件管理⛔️ infra/k8s/05-k8s-helm🌿跨系列
22Sidecar / Init Container Pattern22-sidecar-init-container🌱兩種 pattern 的用途:Init(前置準備、migration)/ Sidecar(log collector / auth proxy / envoy);資源計算;lifecycle 先後順序;K8s 1.28 Sidecar lifecycle 新 feature
23StatefulSet 深入23-statefulset-deep🌱Order guarantee、stable network identity、PV provisioning、Headless Service;跑 stateful workload 在 K8s 的完整挑戰;跟 I04 DB-on-K8s 分工(本章講 K8s 機制,I04 講特定 DB 如 PG / Redis 的運維)

F03-C K8s 可用性 & Scaling

#主題SlugStage大綱
24Liveness / Readiness / Startup Probe(吸收 backend B08 #36)24-k8s-probes🌱從 backend 吸收:三 probe 分工;readiness + graceful shutdown 配合
25HPA / VPA / KEDA25-k8s-autoscaling🌱CPU / memory / custom metrics / event-based;跟 backend 壓測配合
26Service Discovery / DNS(吸收 backend B08 #37)26-service-discovery🌱從 backend 吸收:K8s Service / Consul / etcd 選型;跨 cluster discovery
27Pod Affinity / Anti-affinity / Topology27-pod-placement🌱資源隔離、跨 AZ 分散、節點調度策略
28Node 管理(taint / toleration / labels)28-node-management🌱Workload 隔離、spot instance 策略
29GPU / AI Workload on K8s29-gpu-ai-workload🌱2024+ 顯學:NVIDIA device plugin / GPU Operator;Multi-Instance GPU (MIG);KubeRay for Ray cluster;vLLM / TGI 部署;Volcano batch scheduler;GPU node taint / toleration;跟 AI 團隊協作

F03-D Docker Compose 實戰

#主題SlugStage大綱
30Docker Compose Cookbook⛔️ infra/compute/32-docker-compose-cookbook🌿跨系列
31Compose vs K8s(微服務視角)⛔️ backend/micro-service/41-docker-compose-vs-k8s🌿跨系列
32Compose Production 使用情境⛔️ backend/micro-service/42-docker-compose-production🌿跨系列

F03-E Serverless

#主題SlugStage大綱
33Serverless 概念⛔️ infra/compute/24-serverless🌿跨系列
34Serverless vs Server(概念 + 實戰)⛔️ infra/cloud/02-serverless-vs-server/01 + -2🌿跨系列
35FaaS 深入(Lambda / Cloud Run / Cloudflare Workers)35-faas-deep🌱各家 runtime 限制、concurrency model、cold start 處理
36Container on Serverless(Fargate / Cloud Run container)36-container-serverless🌱不 manage K8s 但跑 container 的中間地帶

F03-F 雲地混合

#主題SlugStage大綱
37Managed K8s 選型(EKS / GKE / AKS)37-managed-k8s-comparison🌱control plane 費用、node 管理、整合度、跟 infra/cloud/aws/03-aws-compute 對照
38地端 K8s 選型(Kind / OrbStack / k3s / RKE2)38-on-prem-k8s🌱小規模 vs 大規模地端;GPU / edge K8s 場景
39Hybrid / Multi-cluster 策略39-hybrid-multi-cluster🌱GitOps 管多 cluster;cluster mesh;failover 設計

🔧 小實作注意事項

#主題SlugStage大綱
40本機 K8s 從零(Kind / OrbStack)40-local-k8s-from-scratch🌱5 分鐘起 local cluster;deploy sample app;kubectl 基本流
41寫 production-grade Deployment YAML41-production-deployment-yaml🌱resource request/limit / probe / PDB / 安全 context
42Helm chart 從零建42-build-helm-chart🌱values.yaml / _helpers.tpl / templates;測試 chart
43cosign 簽 image + Kyverno admission43-cosign-kyverno-demo🌱cosign generate / sign image;Kyverno policy 只允許簽過的 image;驗證 admission 擋未簽 image

💣 Anti-pattern

#主題SlugStage大綱
44計算平台 Anti-patterns44-compute-antipatterns🌱Container 跑 root、image 塞 3GB(沒 distroless)、K8s Pod 沒 resource limit(OOM kill 別人)、readiness probe 設太寬(流量灌進還沒起好的 pod)、sticky session 硬上 K8s、5 人團隊上 Istio+multi-cluster、GPU 沒設 toleration 跑在 CPU node 上、沒做 image 簽章直接上 production、StatefulSet 用 emptyDir 當 storage

🧰 對應檢查工具

#主題SlugStage大綱
45計算平台工具45-compute-tooling🌱Container: Docker / Buildah / Podman;K8s: Kubectl / k9s / kubectx / stern;Package: Helm / Kustomize / Timoni;Security: Trivy / Snyk / Grype / cosign / Kyverno / OPA Gatekeeper;Analysis: dive(image layer)/ kube-bench;GPU: nvidia-smi / DCGM

📎 補充

#主題SlugStage大綱
S01K8s Operator 模式s01-k8s-operator🌱Operator SDK;自訂 CRD;什麼場景值得寫 Operator
S02K8s Troubleshooting 實戰⛔️ infra/k8s/07-k8s-troubleshooting🌿跨系列
S03DX:Local dev with K8s⛔️ backend/micro-service/52-dx-local-development🌿跨系列
S04WASM Workload:wasmCloud / Spin / SpinKubes04-wasm-workload🌱2024+ WebAssembly 作為 container 替代:冷啟動快、體積小、語言中立;wasmCloud actor model vs Spin CLI;SpinKube 當 K8s workload 跑 wasm;跟 container / serverless 的定位差

章節進度統計

  • 知識主題:45 + 4 補充 = 49 項(2026-04 新增:Image Signing/SBOM #14、Container Supply Chain #15、Sidecar/Init Container #22、StatefulSet 深入 #23、GPU workload #29、cosign+Kyverno demo #43、WASM S04)
  • 🌿 growing:14(既有 infra/ + k8s/ + cloud/ + micro-service pointer)
  • 🌱 seed:35

跨系列連結

  • infra/compute/03, 07, 24, 32, 33(原始 compute 篇)
  • infra/k8s/01-08(K8s 深度章節)
  • infra/cloud/01(Registry 選型)+ 02(Serverless vs Server)
  • backend/ B04 #20 / B08 36-37 / B18 pointer(已吸收)
  • backend/micro-service/41, 42, 52-53(Compose vs K8s / DX 實戰)
  • infra/cloud/aws/03 Compute(雲端 K8s 實作)
  • → I04 Data Ops(應用從 compute 讀寫 data)
  • → I05 Observability(K8s monitoring)
  • → I07 CI-CD(K8s deployment pipeline)