我正在尝试将PostgreSQL数据库从性能NAS服务迁移到更便宜的General服务。现在我想创建一个新的PV和PVC,并使我的kubernetes状态设置为绑定到新的PVC。我试图在状态集中编辑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?我必须创建一个新的状态集并删除遗留的PostgreSQL状态集?迁移状态集存储的最顺利的方法是什么?我已经将所有数据和文件结构从遗留性能NAS服务复制到新的NAS服务。
发布于 2021-11-27 04:54:31
大多数字段一旦部署就变得不可变,您只能删除和重新部署不可变字段。但这对你的案子没什么坏处。您可以利用这样的事实:当您删除StatefulSet时,PVC/PC不会被自动删除。因此,您可以考虑使用新的存储创建新的StatefulSet,它由新的PVC/PV返回,然后将备份数据移动到新创建的卷中。然后删除StatefulSet并使用命令更新它,以便运行Postgresql。最后,重新部署StatefulSet,它将重用填充的PVC/PV。
其他常见的方法是编写initContainers来检查您的pod是否新鲜,并在需要时用备份数据填充卷。在这种情况下,您需要确保还原脚本是幂等的。
https://stackoverflow.com/questions/70131980
复制相似问题