工作負載

瞭解 Pod,Kubernetes 中最小的可部署運算物件,以及協助您執行它們的更高層級抽象概念。

工作負載是在 Kubernetes 上執行的應用程式。無論您的工作負載是單一元件還是多個協同工作的元件,在 Kubernetes 上,您都會在一組 Pod 內執行它。在 Kubernetes 中,Pod 代表一組在您的叢集上執行的容器

Kubernetes Pod 具有定義的生命週期。例如,一旦 Pod 在您的叢集中執行,則在該 Pod 執行所在的節點上發生嚴重錯誤,表示該節點上的所有 Pod 都會失敗。Kubernetes 將該層級的失敗視為最終狀態:即使節點稍後變得健康,您也需要建立新的 Pod 才能復原。

然而,為了讓生活更加輕鬆,您不需要直接管理每個 Pod。相反地,您可以使用工作負載資源,代表您管理一組 Pod。這些資源設定控制器,以確保執行正確數量與正確種類的 Pod,以符合您指定的狀態。

Kubernetes 提供多個內建的工作負載資源

  • DeploymentReplicaSet(取代舊版資源 ReplicationController)。Deployment 非常適合管理叢集上的無狀態應用程式工作負載,其中 Deployment 中的任何 Pod 都是可互換的,並且可以在需要時更換。
  • StatefulSet 可讓您執行一個或多個追蹤某種狀態的相關 Pod。例如,如果您的工作負載持續記錄資料,您可以執行 StatefulSet,將每個 Pod 與 PersistentVolume 匹配。您在該 StatefulSet 的 Pod 中執行的程式碼,可以將資料複寫到相同 StatefulSet 中的其他 Pod,以提高整體彈性。
  • DaemonSet 定義提供節點本機設施的 Pod。每次您將節點新增至叢集,且該節點符合 DaemonSet 中的規格時,控制平面就會將該 DaemonSet 的 Pod 排程到新節點上。DaemonSet 中的每個 Pod 執行的工作都類似於傳統 Unix/POSIX 伺服器上的系統常駐程式。DaemonSet 可能對於叢集的運作至關重要,例如執行 叢集網路的外掛程式,它可以協助您管理節點,或者它可以提供增強您正在執行的容器平台的可選行為。
  • JobCronJob 提供了不同的方法來定義執行到完成然後停止的工作任務。你可以使用 Job 來定義一個只需執行一次就完成的工作任務。你可以使用 CronJob 根據排程多次執行相同的 Job。

在更廣泛的 Kubernetes 生態系統中,你可以找到提供額外行為的第三方工作負載資源。透過使用自訂資源定義,如果你想要 Kubernetes 核心之外的特定行為,可以加入第三方工作負載資源。例如,如果你想為你的應用程式執行一組 Pod,但除非所有 Pod 都可用才開始工作(可能用於某些高吞吐量的分散式任務),那麼你可以實作或安裝一個提供該功能的擴充套件。

下一步

除了閱讀關於每個用於工作負載管理的 API 種類之外,你還可以閱讀如何執行特定任務

若要了解 Kubernetes 將程式碼與組態分離的機制,請造訪組態

有兩個支援概念提供了關於 Kubernetes 如何管理應用程式 Pod 的背景資訊

一旦你的應用程式正在執行,你可能會希望透過 Service 或僅針對 Web 應用程式使用 Ingress,使其在網際網路上可用。

上次修改時間為太平洋標準時間 2023 年 7 月 12 日凌晨 1:25:修訂文件首頁 (9520b96a61)