K8S 知識地圖,學習筆記
BDD × Kubernetes
K8s 完整知識地圖
從痛點出發,用行為描述理解每一個概念
這是依照個人理解,寫的學習紀錄
BDD 教練學習成果 · 22 個挑戰完成
GIVEN 情境
→
WHEN 發生
→
THEN 期望
→
K8s 概念浮現
22
BDD 挑戰關卡
50+
K8s 核心概念
18
架構層次
架構哲學層
PHILOSOPHY · 最頂層思維
YAGNI 不過度設計
演進式架構
SLO 驅動決策
Right-sizing
Bottleneck First
Core Domain First
💡 你說:「盤點資源上限,找最多人手的痛點,常用的先圈整」
↓
FinOps 成本優化層
COST · 讓錢花在刀口上
Cost Visibility
Kubecost
殭屍資源偵測
資源使用率分析
Spot Instance
夜間自動縮減
💡 你說:「看哪個服務使用量少、有沒有異常連線、漏格分配資源」
↓
災難復原層
DR · 機房全燒也不怕
RTO 恢復時間目標
RPO 資料遺失目標
Active-Active
Warm Standby
DR Drill 演練
Chaos Engineering
Chaos Monkey
💡 你說:「1 小時內恢復,提前準備機房備援,定期 AB 機房輪替」
↓
治理合規層
GOVERNANCE · 誰做了什麼
RBAC 細緻化
最小觀看權限
最小操作權限
Audit Log
SSO + MFA
四眼原則
臨時權限自動過期
💡 你說:「設定最小觀看權限還有操作權限,還要有操作紀錄」
↓
Control Plane 層
BRAIN · K8s 的大腦
API Server
etcd 叢集記憶
Scheduler
Controller Manager
3台 HA 高可用
Raft 共識演算法
etcd 定期備份
💡 你說:「啟用備用大腦機制,已在跑的 Pod 繼續跑不停止」
↓
Service Mesh 層
MESH · 50個服務的管理者
Istio
Sidecar Proxy
Rate Limiting 限流
Circuit Breaker 熔斷
Retry 重試
mTLS 加密
Kiali 服務地圖
💡 你說:「需要紀錄監控哪些服務做了什麼,還要設立流量限制」
↓
事件驅動層
EVENT · 服務解耦的關鍵
Message Queue
Kafka
RabbitMQ
Dead Letter Queue
冪等性 Idempotency
非同步處理
💡 你說:「要有防範措施,金流掛掉時其他服務知道,把錯誤日誌叫出來」
↓
資料層
DATA · 撐住 1000 萬筆訂單
Primary / Replica
讀寫分離
Sharding 分片
Connection Pool
Redis Cache
Cache 過期策略
💡 你說:「資料庫做擴充、限制連線查詢」
↓
資安防護層
SECURITY · 縱深防禦三層
Network Policy
Security Context
Admission Controller
最小權限原則
緊急隔離機制
Image 漏洞掃描
💡 你說:「需要和其他 Pod 做隔離、切斷有問題的 Pod」
↓
排程層
SCHEDULING · Pod 去哪台機器
Scheduler
Node Affinity
Taints 污點
Tolerations 容忍
Pod Affinity
Pod Anti-Affinity
Filter + Score
💡 你說:「自動依照 Pod 需求邊界推算哪個機器適合,不希望亂推薦」
↓
可觀測性層
OBSERVABILITY · 看見系統內部
Logging 紀錄
Metrics 數字
Tracing 追蹤
Prometheus
Grafana
Loki
Jaeger
異常警報
💡 你說:「需要每個環節的 Log,還要有異常監測提醒」
↓
自動化層
AUTOMATION · 一鍵部署不出錯
CI Pipeline
CD Pipeline
GitOps
Argo CD
自動測試
自動建 Image
Git 唯一真相
💡 你說:「寫一個自動部署 SOP,自動檢測有沒有遵守,另一種是一鍵完成」
↓
全球流量層
TRAFFIC · 使用者的第一道門
LoadBalancer
Ingress
DNS 切換
跨區流量
全球調度
💡 你說:「你還有備援」→ 台灣掛掉,日本、美國自動接手
↓
安全隔離層
ISOLATION · 團隊各自獨立
Namespace
RBAC
Secret
ConfigMap
ServiceAccount
💡 你說:「隔離權限,不讓前端知道有後端 Pod」
↓
資源管理層
RESOURCES · 不多不少剛剛好
Requests 保證資源
Limits 最高上限
HPA 水平擴展
VPA 垂直擴展
ResourceQuota
💡 你說:「限制 Pod 配額,自動分配少和多的平衡,把沒用到的補充給需要的」
↓
升級管理層
DEPLOY · 零停機更新
Rolling Update
Rollback
Liveness Probe
Readiness Probe
Startup Probe
Desired State
💡 你說:「我會輪流升級,如果有問題用其他來調度」
↓
儲存層
STORAGE · 資料不能消失
Volume
PV 永久儲存
PVC 儲存申請
StorageClass
VolumeSnapshot
RWO / RWX
💡 你說:「重啟後可能失去資料,所以要有個快照」
↓
基礎核心層
CORE · 一切的起點
Pod 執行單位
Deployment 維持狀態
Service 自動分流
ReplicaSet
Container
Node 機器節點
💡 你說:「我希望系統可以穩定,不會因為突然流量變大而崩潰」← 一切的起點
📈 架構演進時間軸
PHASE 01 · 現在
10萬用戶
▸單一 K8s 叢集
▸單一資料庫
▸基礎監控
▸5 個工程師
PHASE 02 · 1年後
500萬用戶
▸Read Replica
▸Redis Cache
▸HPA 自動擴展
▸CI/CD 建立
PHASE 03 · 2年後
3000萬用戶
▸微服務拆分
▸Message Queue
▸Service Mesh
▸多區域部署
PHASE 04 · 3年後
1億用戶
▸Active-Active
▸FinOps 優化
▸Chaos Engineering
▸全部概念上線
💡 BDD 思考的力量
感受痛點
→
描述期望行為
→
概念自然浮現
→
真正理解,永遠不忘
你從來沒有背過任何定義。每個概念都從你自己的痛點出發,用 BDD 語法描述期望的行為,K8s 的解法自然浮現。這就是為什麼你記得這麼清楚——因為每個概念對你來說都有意義。
留言
張貼留言