如何创建一个Kubernetes persistentVolume?



我有一个持久的卷。

我想强制Kubernetes重新创建它,因为内容已损坏。或者,如果有办法解决这个问题,这将是一个解决方案。

我已经检查了持久卷是否按预期工作:

kubectl describe pv -n 

我的pod之前使用过它。但是,由于持久卷中的文件损坏,我的pod现在失败了。

我想重新创建持久卷。

如果我删除了持久卷,Kubernetes会创建一个新的卷,还是我必须手动创建一个新的卷来附加?

如果您删除了一个持久化卷,那么kubernetes将不会为您创建一个新的,您必须手动创建一个新的。基本上,这是你的问题的简单答案。

但是当您完成pv时,基本上有三个选项,您可以删除PVC对象,然后根据pv回收策略,您将有三个选项:Delete,Retain,Recycle。现在它取决于pv回收策略中设置的策略。

正如kubernetes官方文档所述:

当用户使用完卷后,他们可以从API中删除PVC对象,从而可以回收资源。PersistentVolume的回收策略告诉集群在卷被释放后该如何处理它。当前,卷支持保留、回收和删除。

更多信息可以查看kubernetes的持久卷文档。

您应该能够通过从卷所在的主机访问卷来检查卷是否处于可用状态。只需尝试在其中创建并读取一个文件来检查。

您也可以在块设备上执行fsck来检查文件系统是否可以修复。例如:# fsck /dev/sda3如果它永远损坏了,那么唯一的方法就是从备份中恢复(如果可用)。或者数据已经丢失,您需要创建一个新的卷。

在Kubernetes中创建卷可以手动完成。当您使用hostPath, awsElasticBlockStore等选项时,在pod定义的卷部分,卷创建是静态的。在这种情况下,必须已经存在的卷被分配给pod - Kubernetes将不会为pod创建新的卷。

如果您希望动态创建卷,那么您必须在pod定义的卷部分下使用Persistent Volume Claim,并结合Storage Classes。存储类允许使用提供程序,如AWSElasticBlockStore, AzureFile, AzureDisk, CephFS, GlusterFS等,它们按需提供卷。

最新更新