我正在嘗試將 PostgreSQL 資料庫從性能 NAS 服務遷移到更便宜的通用 NAS 服務。現在我想創建一個新的 PV 和 PVC,并使我的 kubernetes statefulset 系結到新的 PVC。我試圖在 statefulset 中編輯 PVC 系結,但給我這個錯誤:
The StatefulSet "reddwarf-postgresql-postgresql" is invalid: spec: Forbidden: updates to statefulset spec for fields other than 'replicas', 'template', and 'updateStrategy' are forbidden
那么將遺留狀態集更改為系結到新的 PVC 是不可能的?我必須創建一個新的 statefulset 并洗掉舊的 PostgreSQL statefulset?遷移 statefulset 存盤最順暢的方法是什么?我已將所有資料和檔案結構從舊的性能 NAS 服務復制到新的 NAS 服務。
uj5u.com熱心網友回復:
大多數欄位在部署后變得不可變,您只能洗掉和重新部署不可變欄位。但這對你的情況來說并不是一件壞事。您可以利用這樣一個事實:洗掉 StatefulSet 時,不會自動洗掉 PVC/PC。因此,您可以考慮使用新存盤創建由新 PVC/PV 支持的新 StatefulSet,然后將備份資料移動到這些新創建的卷。然后洗掉 StatefulSet 并使用命令更新它以運行 Postgresql。最后,您重新部署 StatefulSet,它將重用填充的 PVC/PV。
其他常見的方法是寫入initContainers以檢查您的 pod 是否新鮮,并在需要時使用備份資料填充卷。在這種情況下,您需要確保您的還原腳本是冪等的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/367688.html
標籤:Kubernetes
