k8s学习之Voulumn

Volumn(存储卷)

1、概念
Volumn是Pod中可以被多个容器访问的共享目录。与Docker中的Volumn比较类似,但二者不能等价。

  • k8s中的Vloumn是被定义在Pod上,被一个Pod的多个容器共享
  • k8s中的Volumn与Pod的生命周期相同,与容器的生命周期不相关。

2、包含的参数

  • emptyDir
    不指定宿主机上的目录,默认为空,其路径由k8s自动分配。会随着Pod的关闭而移除。一般可以当做临时空间、长时间任务执行的临时目录、容器与容器之间的数据目录传递。emptyDir.medium可以设置内存存储。默认为节点的存储介质(磁盘、网络存储)
  • hostPath
    挂载到宿主机上某个目录。可以长时间存储。一般用在需要永久保存的数据,比如日志等。注意两个点:在不同的Node上,使用了相同配置的Pod,可能访问的数据不一致;如果使用了资源限额管理,那么k8s无法将hostPath在宿主机上使用的资源,纳入管理。
  • configmap
    将配置数据挂载为容器内的文件
  • secret
    将Secret数据挂载为容器内的文件
  • rbd
    将Ceph块设备,共享存储挂载到Pod中
  • 其它
    iscsi、nfs、glusterfs、gitRepo。具体参考《Kubernetes权威指南》

Volumn属于静态管理存储,即需要我们事先定义每个Volumn,然后再挂载到Pod容器中,这种方式存在很多弊端。比如,配置参数繁琐,存在大量的手工操作,违背了k8s自动化的追求目标;预定义的静态Volumn,可能不符合目标应用的要求,比如容量问题、性能问题。所以就有了新的机制-动态存储,以此来实现存储的自动化管理,其核心对象有三个:Persistent Vloumn(PV)、StorageClass、PVC

你可能感兴趣的:(yarn,bash)