如果一個 Deployment 使用 ReplicaSets 來擴大和縮小 Pod,而 StatefulSets 沒有 ReplicaSets...
那么,它是如何管理 Pod 的向上和向下擴展的呢?我的意思是,什么資源負責?StatefulSet 提出什么請求以進行擴展?
uj5u.com熱心網友回復:
簡而言之,StatefulSet Controller 處理 statefulset 副本。
StatefulSet 是一個用于管理有狀態應用程式作業負載的 Kubernetes API 物件。StatefulSets 處理 Kubernetes pod 集的部署和擴展,為它們的唯一性和順序提供保證。
與部署類似,StatefulSet 管理具有相同容器規格的 pod。它們在為每個 pod 維護持久身份方面有所不同。雖然 pod 都是基于相同的規范創建的,但它們不可互換,因此每個 pod 都被賦予了一個通過重新調度來維護的持久識別符號。
StatefulSet 部署的好處包括:
唯一識別符號——StatefulSet 中的每個 pod 都被分配了一個唯一的、穩定的網路身份,由基于應用程式名稱和實體編號的主機名組成。例如,具有三個實體的 Web 應用程式的 StatefulSet 可能具有標記為 web1、web2 和 web3 的 pod。
持久存盤——每個 pod 都有自己穩定的持久卷,默認情況下或按存盤類定義。當集群中的 Pod 縮減或洗掉時,其關聯的卷不會丟失,并且資料會持續存在。在洗掉未使用的 Pod 之前,可以通過將 StatefulSet 縮小到 0 來清除不需要的資源。
有序部署和擴展——StatefulSet 中的 pod 根據它們的增量按順序創建和部署。Pod 也按(反向)順序關閉,確保部署和運行時可靠且可重復。StatefulSet 在所有需要的 pod 都運行之前不會擴展,因此如果 pod 失敗,它會在嘗試根據擴展要求添加更多實體之前重新創建 pod。
自動化的、有序的更新——StatefulSets 可以處理滾動更新,關閉每個節點并按照原始順序重建它,直到每個節點都被替換并清理舊版本。持久卷可以重復使用,因此資料會自動遷移到新版本。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/457715.html
標籤:Kubernetes 亚马逊-eks Kubernetes-pod Kubernetes-statefulset Kubernetes-部署
