我继承了一个基于 terraform/helm 的 GKE,并在生产环境中提供了一组部署和服务。它们都使用默认存储类作为 PVC。
我想切换到更强大的存储方式(默认保留甚至 Filestore+NFS)。我想知道是否有一种方法可以将存储类切换到较新的类,而不会丢失或手动从最旧的默认卷中移动内容。这最终使用了 terraform 并更新了 Helm 图表以保持一致性。
有没有办法这样做?
我继承了一个基于 terraform/helm 的 GKE,并在生产环境中提供了一组部署和服务。它们都使用默认存储类作为 PVC。
我想切换到更强大的存储方式(默认保留甚至 Filestore+NFS)。我想知道是否有一种方法可以将存储类切换到较新的类,而不会丢失或手动从最旧的默认卷中移动内容。这最终使用了 terraform 并更新了 Helm 图表以保持一致性。
有没有办法这样做?
您不能将您StorageClass
的数据更改为其他数据并期望数据不会丢失。
将您StorageClass
视为一种告诉 Kubernetes 哪些可用存储选项可供使用的方式。你可以有一个NFS
存储和Ceph
存储。更改存储数据的StorageClass
for aPVC
不会将数据传输到新位置。
您甚至无法更改已创建的大部分参数StorageClasses
和PVC's
.
您可以通过以下链接了解更多信息:
我想知道是否有办法将存储类切换到新的而不丢失(我假设的数据)
如前所述,不可能仅将其更改StorageClass
为不同的。
或手动从最旧的默认卷中移动内容。
是的,这是可能的,并且有几种方法可以做到这一点。我们不知道您面临的确切情况(您拥有哪些确切资源、其中的数据、它们的部署方式等)。
请查看以下资源:
您可以使用上面的示例在之间复制文件PVC's
来创建一个Job
会自动执行此操作的示例。
这最终使用了 terraform 并更新了 helm 图表以保持一致性。
如果您打算创建支持您配置的新存储的资源,这是可能的。您将需要修改现有资源/创建新资源以支持新存储。请确保在将其用于生产之前测试了您的解决方案。