将PVC从gce-pd迁移到GKE中的CSI提供器



我想使用GKE的卷快照功能,发现它需要CSI驱动程序提供的卷。然而,关于如何迁移当前pd供应的PVC以使用CSI驱动程序,网上没有太多信息。

集群上的CSI驱动程序已启用,注解pv.kubernetes.io/migrated-to: pd.csi.storage.gke.io已自动添加到PV中,但接下来会怎样?

当我们从1.23.x升级到1.25.4时,我们的系统目前出现了问题。新的持续数量索赔一直处于未决状态。带有您提到的注释的旧pv:pv.kubernetes.io/migrated-to: pd.csi.storage.gke.io不能在kubernetes 1.25.4的节点上使用(我们仍然有一个未迁移的池,所以我们可以使用持久卷强制我们的pod在那个旧池上运行,直到我们解决问题为止(。

我们在新的持续数量索赔中看到的错误是:

Normal  ExternalProvisioning  5s (x8 over 99s)  persistentvolume-controller  waiting for a volume to be created, either by external provisioner "pd.csi.storage.gke.io" or manually created by system administrator

在挂起的pod上,它试图在新节点上使用旧的持久卷,我们看到了错误:

1 node(s) had volume node affinity conflict

由于这只会导致关于在不同可用性区域上具有节点和持久卷的解释,因此我们需要一些时间来弄清楚,真正的问题隐藏在您在这里提到的pv.kubernetes.io/migrated-to: pd.csi.storage.gke.io中。

所以我们最终想,我们只是添加了csi存储驱动程序,因为我们甚至没有一个用于pd.csi.storage.gke.io的存储类。

发件人:https://cloud.google.com/kubernetes-engine/docs/how-to/persistent-volumes/gce-pd-csi-driver#enabling_the_on_an_existing_cluster

gcloud container clusters update CLUSTER-NAME 
--update-addons=GcePersistentDiskCsiDriver=ENABLED

现在将自动添加两个存储类:标准rw和高级rw。

我们也默认了标准的rwo存储类(我不确定是否有必要(。但这似乎是迁移唯一需要的下一步,因为之后一切都恢复了正常。

最新更新