在不丢失内容的情况下更改 GKE 存储 class
Change GKE storage class without losing content
我继承了一个基于 terraform/helm 的 GKE,在生产环境中有一组部署和服务。它们都使用默认存储 class 作为 PVC。
我想切换到更健壮的存储方式(默认保留甚至 Filestore+NFS)。我想知道是否有一种方法可以将存储 class 切换到较新的存储 而不会丢失 或手动从最旧的默认卷中移动内容。这最终使用 terraform 并更新 Helm 图表以保持一致性。
有办法吗?
您不能将您的 StorageClass
更改为另一个并期望数据不会丢失。
将您的 StorageClass
视为一种告诉 Kubernetes 可用存储选项的方式。您可以有一个 NFS
存储空间和 Ceph
存储空间。为存储数据的 PVC
更改 StorageClass
不会将数据传输到新位置。
您甚至无法更改已创建的 StorageClasses
和 PVC's
中的大部分参数。
您可以通过以下链接了解更多信息:
- Kubernetes.io: Storage classes
- Cloud.google.com: Kubernetes Engine: How to: Persistent Volumes: ssd-pd
- whosebug.com: How do I change the storage class of existing persistent volumes?
- Cloud.google.com: Compute: Disks: Create snapshots - 用于磁盘备份
I was wondering if there is a way to switch the storage class to the newer ones without loosing (the data I assume)
如前所述,不可能只将 StorageClass
更改为另一个。
or manually move the content from the oldest default volumes.
是的,这是可能的,有多种方法可以做到。我们不知道您面临的确切情况(您拥有哪些确切资源、其中的数据、它们的部署方式等)。
请查看以下资源:
- Medium.com: Migrate Kubernetes volume data - 您可以使用本指南安装旧卷和新卷(Filestore PVC?)将旧卷的内容复制到新卷.
- Cloud.google.com: Filestore: Accessing fileshares - 这是从 Filestore 创建 PVC 的指南。
- Velero.io
您可以使用上面的示例在 PVC's
之间复制文件来创建一个 Job
,它将自动执行。
This eventually using terraform and updating the helm charts for consistency.
如果您打算创建支持您配置的新存储的资源,这是可能的。您将需要修改现有 resources/create 新资源以支持新存储。请确保您在将解决方案用于生产之前对其进行了测试。
我继承了一个基于 terraform/helm 的 GKE,在生产环境中有一组部署和服务。它们都使用默认存储 class 作为 PVC。
我想切换到更健壮的存储方式(默认保留甚至 Filestore+NFS)。我想知道是否有一种方法可以将存储 class 切换到较新的存储 而不会丢失 或手动从最旧的默认卷中移动内容。这最终使用 terraform 并更新 Helm 图表以保持一致性。
有办法吗?
您不能将您的 StorageClass
更改为另一个并期望数据不会丢失。
将您的 StorageClass
视为一种告诉 Kubernetes 可用存储选项的方式。您可以有一个 NFS
存储空间和 Ceph
存储空间。为存储数据的 PVC
更改 StorageClass
不会将数据传输到新位置。
您甚至无法更改已创建的 StorageClasses
和 PVC's
中的大部分参数。
您可以通过以下链接了解更多信息:
- Kubernetes.io: Storage classes
- Cloud.google.com: Kubernetes Engine: How to: Persistent Volumes: ssd-pd
- whosebug.com: How do I change the storage class of existing persistent volumes?
- Cloud.google.com: Compute: Disks: Create snapshots - 用于磁盘备份
I was wondering if there is a way to switch the storage class to the newer ones without loosing (the data I assume)
如前所述,不可能只将 StorageClass
更改为另一个。
or manually move the content from the oldest default volumes.
是的,这是可能的,有多种方法可以做到。我们不知道您面临的确切情况(您拥有哪些确切资源、其中的数据、它们的部署方式等)。
请查看以下资源:
- Medium.com: Migrate Kubernetes volume data - 您可以使用本指南安装旧卷和新卷(Filestore PVC?)将旧卷的内容复制到新卷.
- Cloud.google.com: Filestore: Accessing fileshares - 这是从 Filestore 创建 PVC 的指南。
- Velero.io
您可以使用上面的示例在 PVC's
之间复制文件来创建一个 Job
,它将自动执行。
This eventually using terraform and updating the helm charts for consistency.
如果您打算创建支持您配置的新存储的资源,这是可能的。您将需要修改现有 resources/create 新资源以支持新存储。请确保您在将解决方案用于生产之前对其进行了测试。