内容简介:Volume解决Kubernetes的存储的问题对于Pod使用的存储,抽象为volume,volume伴随着Pod的创建而创建,消失而同时消失,不能单独的创建这样的好处,是存储的塑胶不会因为某个container重启而丢失,因为volume是pod级别的
Volume解决Kubernetes的存储的问题
对于Pod使用的存储,抽象为volume,volume伴随着Pod的创建而创建,消失而同时消失,不能单独的创建
这样的好处,是存储的塑胶不会因为某个container重启而丢失,因为volume是pod级别的
还有好处是,volume是pod资源,所以所有Pod中的container都可以共享访问这个volume,这样非常的方便
但是需要在contain中去mount这个volume,可以mount到任意目录,比如下面这个例子,
ContentAgent会产生内容html到/var/html,这个目录对应于Volume publicHtml,
WebServer会通过/var/htdocs读取Volume publicHtml中的数据,并把日志通过/var/logs/写到Volume logVol中
最后LogRotator会从Volume logVol消费logs
volume有很多种类型,
- emptyDir —A simple empty directory used for storing transient data.
- hostPath —Used for mounting directories from the worker node’s filesystem into the pod.
- gitRepo —A volume initialized by checking out the contents of a Git repository.
- nfs —An NFS share mounted into the pod.
- gcePersistentDisk (Google Compute Engine Persistent Disk), awsElastic-
- BlockStore (Amazon Web Services Elastic Block Store Volume), azureDisk (Microsoft Azure Disk Volume)—Used for mounting cloud provider-specific storage.
- cinder, cephfs, iscsi, flocker, glusterfs, quobyte, rbd, flexVolume, vsphere-Volume, photonPersistentDisk, scaleIO—Used for mounting other types of network storage.
- configMap, secret, downwardAPI—Special types of volumes used to expose certain Kubernetes resources and cluster information to the pod.
- persistentVolumeClaim —A way to use a pre- or dynamically provisioned persistent storage. (We’ll talk about them in the last section of this chapter.)
其中,
emptyDir最常用,特点是pod删除后数据会丢失,用户container间交互数据或者纯计算的中间结果
hostPath,mount到node的目录,这样数据就不会因为pod删除而丢失
当然,如果要跨节点的恢复数据,就需要用到分布式的volume,比如,gcePersistentDisk
PersistentVolumeClaims,提供一种抽象来封装底层各种具体的存储
这样的好处,user不需要了解和配置具体的存储,可以直接使用,那些事情交给Admin去做
Dynamic provisioning of PersistentVolumes
提前配置好,Persistent Volume Provisioner和Storage Class,仅仅在需要的时候才会自动产生Persistent Volume
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。