Pod、Job、Workflow 是三層:執行載體、任務保證、流程調度

這三個詞常被混用,但它們不是同義詞也不是替代品,而是疊在一起的三個層級:誰負責跑、誰負責確保跑完、誰負責決定跑的順序。

[ Workflow(流程控制) ]
        |
        +---> [ Job A ] ---> 建立並監控 ---> [ Pod 1 ]、[ Pod 2 ]
        |
        +---> [ Job B ] ---> 建立並監控 ---> [ Pod 3 ]
PodJobWorkflow
角色實際的執行載體確保任務完成的控制器多任務調度與拓撲的指揮
生命週期跑完或出錯就結束,不自我修復確保 Pod 成功跑完指定次數才結束所有關聯的 Job 依序跑完才算結束
關注點容器如何共享網路與儲存任務有沒有成功執行完步驟的先後順序、條件分支
例子跑一個 Python 腳本一次性的 DB migration撈數據 → 清洗 → 訓練 → 產報表

各層的定義

  • Pod:Kubernetes 最小的部署單元,可包含一或多個容器。短暫、沒有生命週期保障——失敗了不會自己重啟 → Pod 不會自己重啟,自我修復來自控制器
  • Job:一種控制器,專門管「一次性任務」。它建立 Pod 並確保它們成功執行到 Completed;Pod 中途死掉就再開一個新的,直到任務完成。
  • Workflow:把多個步驟(通常是多個 Job)串成完整業務流程,處理步驟之間的依賴與邏輯(A 完成後 B、C 才能並行,都成功才跑 D)。K8s 生態系裡常用 Argo Workflows 或 Airflow 實作——注意它不是 K8s 原生物件,而是上層工具提供的。

工廠比喻

Pod 是工人(動手鎖螺絲,倒下了不會自己站起來)、Job 是組長(盯著一台機器組裝完,工人倒了就換人上,機器組好組長就下班)、Workflow 是生產線總監(規劃備料 → 組裝 → 品檢的整條流水線)。