Kubernetes对象之Volume

Kubernetes Volume:
默认情况下容器中的磁盘文件是非持久化的。
Kubernetes Volume具有明确的生命周期与pod相同。
Volume的生命周期比Pod中运行的任何容器要持久,在容器重新启动时能可以保留数据。
Pod被删除不存在时,Volume也将消失。
Kubernetes支持许多类型的Volume,Pod可以同时使用任意类型/数量的Volume。
一个Volume只是一个目录,目录中可能有一些数据,pod的容器可以访问这些数据。
要使用Volume,pod需要指定Volume的类型和内容(spec.volumes字段),和映射到容器的位置(spec.containers.volumeMounts字段)。


Volume 类型:
Kubernetes支持Volume类型有:
emptyDir、hostPath、gcePersistentDisk、awsElasticBlockStore、nfs、iscsi、fc (fibre channel)、flocker、glusterfs、rbd、cephfs、gitRepo、secret、persistentVolumeClaim、downwardAPI、projected、azureFileVolume、azureDisk、vsphereVolume、Quobyte、PortworxVolume、ScaleIO、StorageOS、local




emptyDir:
使用emptyDir,当Pod分配到Node上时,将会创建emptyDir,并且只要Node上的Pod一直运行,Volume就会一直存在。
当Pod(不管任何原因)从Node上被删除时,emptyDir也同时会删除,存储的数据也将永久删除。
删除容器不影响emptyDir。




hostPath:
hostPath允许挂载Node上的文件系统到Pod里面去。
Pod需要使用Node上的文件,可以使用hostPath。


Local:
Local 是Kubernetes集群中每个节点的本地存储。
Local Storage同HostPath的区别在于对Pod的调度上,使用Local Storage可以由Kubernetes自动的对Pod进行调度,而是用HostPath只能人工手动调度Pod。
本地PersistentVolume需要手动清理和删除。


Using subPath:
volumeMounts.subPath特性可以用来指定卷中的一个子目录,而不是直接使用卷的根目录。


gcePersistentDisk:
gcePersistentDisk可以挂载GCE上的永久磁盘到容器,需要Kubernetes运行在GCE的VM中。
Pod删除时,gcePersistentDisk被删除,但Persistent Disk 的内容任然存在。
gcePersistentDisk能够允许我们提前对数据进行处理,而且这些数据可以在Pod之间“切换”。
使用gcePersistentDisk,必须用gcloud或使用GCE API或UI 创建PD。


awsElasticBlockStore:
Pod删除时,Volume仅被卸载,内容将被保留。
awsElasticBlockStore可以挂载AWS上的EBS盘到容器,需要Kubernetes运行在AWS的EC2上。
awsElasticBlockStore能够允许我们提前对数据进行处理,而且这些数据可以在Pod之间“切换”。


NFS:
Kubernetes中通过简单地配置就可以挂载NFS到Pod中,而NFS中的数据是可以永久保存的,同时NFS支持同时写操作。
Pod被删除时,Volume被卸载,内容被保留。
NFS能够允许我们提前对数据进行处理,而且这些数据可以在Pod之间相互传递。


iSCSI:
iscsi允许将现有的iscsi磁盘挂载到我们的pod中。
删除Pod时会被删除,但Volume只是被卸载,内容被保留。
iscsi能够允许我们提前对数据进行处理,而且这些数据可以在Pod之间“切换”。


flocker:
Flocker是一个开源的容器集群数据卷管理器。它提供各种存储后端支持的数据卷的管理和编排。


GlusterFS:
允许将Glusterfs Volume安装到pod中。
Pod被删除时,Volume只是被卸载,内容被保留。
味着glusterfs能够允许我们提前对数据进行处理,而且这些数据可以在Pod之间“切换”。


RBD:
RBD允许Rados Block Device格式的磁盘挂载到Pod中。
当pod被删除的时候,rbd也仅仅是被卸载,内容保留。
rbd能够允许我们提前对数据进行处理,而且这些数据可以在Pod之间“切换”。


cephFS:
cephfs Volume可以将已经存在的CephFS Volume挂载到pod中。
pod被删除的时,cephfs仅被被卸载,内容保留。
cephfs能够允许我们提前对数据进行处理,而且这些数据可以在Pod之间“切换”。


secret:
secret volume用于将敏感信息(如密码)传递给pod。
将secrets存储在Kubernetes API中,使用的时候以文件的形式挂载到pod中,而不用连接api。
ecret volume由tmpfs(RAM支持的文件系统)支持。


downwardAPI:

通过环境变量的方式告诉容器Pod的信息


内容整理自Kubernetes中文社区:https://www.kubernetes.org.cn/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值