|
|
51CTO旗下网站
|
|
移动端

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

本文介绍了如何在Kubernetes中创建HostPath持久卷的方法。

作者:布加迪编译来源:51CTO|2020-07-20 07:00

【51CTO.com快译】

您可能知道Pod中的数据在Pod的整个生命周期过程中一直存在。如果Pod消失,属于该Pod的所有数据也随之消失。因此,如果您希望在Pod的生命周期结束后保留数据,Kubernetes中就要有所谓的持久卷。

不妨学习如何创建HostPath持久卷,这很容易上手。同时了解有关持卷的基础知识。

就不同供应商而言,kubernetes中可供使用的持久卷有以下类型。

  • GCEPersistentDisk
  • AWSElasticBlockStore
  • AzureFile
  • AzureDisk
  • CSI
  • FC(光纤通道)
  • FlexVolume
  • Flocker
  • NFS
  • iSCSI
  • RBD(Ceph Block Device)
  • CephFS
  • Cinder(OpenStack块存储)
  • Glusterfs
  • VsphereVolume
  • Quobyte Volumes
  • HostPath(仅用于单节点测试——不以任何方式支持本地存储,无法在多节点集群中运行)
  • Portworx Volumes
  • ScaleIO Volumes
  • StorageOS

如您所见,就HostPath而言,应仅将其用于测试目的。它也不支持多节点集群。如果您想了解有关持久卷的更多信息,可以点击该链接(https://kubernetes.io/docs/concepts/storage/persistent-volumes/)。

持久卷的基本过程如下:

  1. K8s管理员在集群中创建持久卷。
  2. 用户一旦声明其状态变为“Bound”,便使用“持久卷声明”对其进行声明。
  3. 然后Pod使用该卷存储将在Pod的生命周期结束后持续存在的数据。

理论方面讲得够多了,不妨说说技术步骤:

  • 创建持久卷

在该步骤中,我们使用以下yaml清单文件来实现同样的目的。

图1

如上述定义文件显示,其存储大小是1GB。路径是“/tmp/kube”。不妨创建PV,如下所示:

图2

使用以下命令,再次核查PV和持久卷声明:

图3

如您所见,PV已创建,其状态为Available;由于我们未指定重新声明策略,使用默认值“Retain”,这意味着即使pvc(持久卷声明)被删除,PV和数据也不会自动被删除。我们会对此进行测试。

  • 创建持久卷声明

为了使用PV,我们需要创建持久卷声明或PVC来使用它。以下是同样的yaml清单文件。

图4

上述定义中有必要指出,声明仅针对100mb(>= size of PV),另外Access模式是“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的host-volume创建的。另外,Pod是在节点“kworker01”上按计划/创建的。

不妨登录进入到Pod创建示例文件。为了演示Pod消失后数据的生命周期:

图10

在上述演示中,我们在/tmp/mydata里面创建了“Hello.txt”。现在不妨删除Pod。

图11

Pod已成功删除,不妨登录入节点“kworker01”,Pod之前已按计划创建,检查数据在Pod删除后是否持久存在。

图12

您可以看到,即便Pod已消失,我们的文件“Hello.txt”仍驻留在节点上。

原文标题:How to create HostPath persistent volume in Kubernetes

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

【编辑推荐】

  1. 使用Lens管理Kubernetes集群
  2. K9s如何加速Kubernetes的集群管理?
  3. 如何在Kubernetes中创建命名空间?
  4. 用树莓派构建Kubernetes集群
  5. Kubernetes实战指南:零宕机无缝迁移Spring Cloud至k8s
【责任编辑:庞桂玉 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

订阅专栏+更多

大数据安全运维实战

大数据安全运维实战

CDH+Ambari
共20章 | 大数据陈浩

86人订阅学习

实操案例:Jenkins持续交付和持续部署

实操案例:Jenkins持续交付和持续部署

微服务架构下的自动化部署
共18章 | freshman411

176人订阅学习

思科交换网络安全指南

思科交换网络安全指南

安全才能无忧
共5章 | 思科小牛

108人订阅学习

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO官微