当前位置: 首页 > 科技观察

如何在Kubernetes中创建HostPath持久卷?

时间:2023-03-15 15:12:06 科技观察

【.com速译】你可能知道Pod中的数据在Pod的整个生命周期中都存在。如果一个Pod消失,属于该Pod的所有数据也会消失。所以如果你想在pod的生命周期结束后保留??数据,Kubernetes中有所谓的持久卷。您不妨学习如何创建HostPathPersistentVolume,它非常容易上手。还要学习有关握住卷筒的基础知识。就不同的provider而言,kubernetes中可用的persistentvolume有以下几种。GCEPersistentDiskAWSElasticBlockStoreAzureFileAzureDiskCSIFC(FibreChannel)FlexVolumeFlockerNFSiSCSIRBD(CephBlockDevice)CephFSCinder(OpenStackBlockStorage)GlusterfsVsphereVolumeQuobyteVolumesHostPath(仅用于单节点测试-不以任何方式支持本地存储,无法运行在多节点集群中)PortworxVolumesScaleIOVolumesStorageOS如您所见,就HostPath而言,它应该仅用于测试目的。它也不支持多节点集群。如果您想了解有关持久卷的更多信息,可以点击此链接(https://kubernetes.io/docs/concepts/storage/persistent-volumes/)。持久卷的基本流程如下:K8s管理员在集群中创建一个持久卷。一旦用户声明其状态已变为“绑定”,则使用“持久卷声明”声明。然后,pod使用该卷来存储将在pod生命周期之后持续存在的数据。理论讲完了,我们来谈谈技术步骤:创建持久卷在这一步中,我们使用以下yaml清单文件来实现相同的目的。如上面图1中的定义文件所示,其存储大小为1GB。路径是“/tmp/kube”。让我们创建如下所示的PV:图2使用以下命令再次验证PV和持久卷声明:图3正如您所看到的,PV已经创建并且其状态为Available;由于我们没有指定reclaimpolicy,所以使用默认值“Retain”,也就是说即使删除了pvc(persistentvolumeclaim),也不会自动删除pv和data。我们将对此进行测试。创建一个PersistentVolumeClaim为了使用PV,我们需要创建一个PersistentVolumeClaim或PVC来使用它。下面是相同的yaml清单文件。上面图4的定义中,需要指出的是,语句只针对100mb(>=PV的大小),Accessmode为“ReadWriteOnce”,与PV模式相同。因此,我们可以创建如下所示的PVC:图5查看pv和pvc的状态。正如您在图6中所见,pv的状态已从Available变为Bound。创建一个Pod,并使用PV作为里面的挂载点。图7如Pod定义文件中所述,它将在Pod内创建挂载点/tmp/mydata。让我们使用上面的定义文件创建一个Pod。图8检查状态,并检查Pod:图9在描述输出中,您可以看到/tmp/mydata卷是使用声明的pvc-hostpath中的主机卷创建的。此外,在节点“kworker01”上安排/创建Pod。您可能希望登录Pod以创建示例文件。为了演示Pod消失后数据的生命周期:图10在上面的演示中,我们在/tmp/mydata中创建了“Hello.txt”。让我们现在删除Pod。图11已成功删除Pod。您可能希望登录到节点“kworker01”。之前已经按计划创建了Pod,查看删除Pod后数据是否还存在。图12您可以看到即使Pod消失了,我们的文件“Hello.txt”仍然驻留在节点上。原标题:如何在Kubernetes中创建HostPath持久卷