我想在我的 Kubernetes 集群中運行一個 Mongo db pod。我將使用節點選擇器將 pod 安排在特定節點上。
由于 Mongo 是一個資料庫并且我使用的是節點選擇器,我是否有任何理由不使用 StatefulSet 上的 Kubernetes 部署?如果我們永遠不應該使用部署,請詳細說明這一點。
uj5u.com熱心網友回復:
由于 mongo 是一個資料庫并且我使用的是節點選擇器,我有什么理由不使用 StatefulSet 上的 k8s 部署嗎?如果我們永遠不應該使用部署,請詳細說明這一點。
您不應該將資料庫(或其他有狀態的作業負載)運行為Deployment,StatefulSet用于那些。
它們在更新或 pod 變得無法訪問時具有不同的語意。StatefulSet使用at-most-X語意并Deployments使用at-least-X語意,其中 X 是副本數。
例如,如果節點變得無法訪問(例如網路問題),對于 Deployment,將在不同的節點上創建一個新 Pod(以跟隨您想要的 1 個副本),但對于 StatefulSet,它將確保在創建新 Pod 之前終止現有 Pod ,因此永遠不會超過 1(當您有 1 作為所需數量的副本時)。
如果您運行資料庫,我假設您希望資料保持一致,因此您不希望具有不同資料的重復實體 - (但可能應該運行分布式資料庫)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/528223.html
標籤:KubernetesKubernetes-statefulsetKubernetes-部署
下一篇:如何使彈出視頻回應于移動設備
