在我的Mongo Helm图表中,我使用PVC作为持久卷。我使用图表来安装Mongo。当我删除图表时,我的PV被删除。所以,我找到了一些东西来修补它。
kubectl patch pv <your-pv-name> -p '{"spec":{"persistentVolumeReclaimPolicy":"Retain"}}'
在此之后,我的PV不会被删除,只是状态为已发布
pvc-fc29a491-499a-11e9-a426-42010a800ff9 8Gi RWO Retain Released default/myapp-mongodb standard 3d
如何将此PV绑定到新的舵图安装,以便在删除舵图后数据仍保持不变?
3条答案
按热度按时间bwleehnv1#
Helm仍然没有解决这个问题。
处理它的“黑客”,你可以在这里找到:
https://groups.google.com/forum/#!topic/kubernetes-sig-apps/sLL2pCJ5Ab8
e3bfsja22#
我找到了一个解决办法。我已经创建了一个独立于 Helm 图表的PVC,只是在我的deployment.yaml文件中使用它。
如果存在现有索赔,则仅使用现有索赔,否则创建新索赔。
vsmadaxz3#
现有的PV将无法绑定到新的PVC。但是,您的PV(
pvc-fc29a491-499a-11e9-a426-42010a800ff9
)引用可以绑定到您的PVC。新PV的配置将稍微取决于您使用的云提供商/裸机主机。我按照这个步骤来到下面的示例。这个示例显示了如何使用Google Cloud GCE持久磁盘进行此操作。这里的顺序很重要;请确保在创建PVC之前创建PV(引用现有永久磁盘)。