在使用docker的时候,我们会发现如果不外挂载目录的话,docker停掉之后,整个docker里面的数据就丢失了,所以后面我们会把docker示例的某些目录给外挂载出来,此时如果docker示例停掉之后,数据其实还在的。在kubernetes中我们也会遇到这个问题,所以出现了存储卷和存储卷声明,这样子我们的数据可以外挂载到存储卷中,如果pod实例停掉或者漂移后,数据还是在的,能保证服务正常的运行。关于存储卷的相关文章,我们在以前的文章《kubernetes系列(二十四)-关于kubernetes的存储卷和存储卷声明是什么?》介绍过,所以不多说。本系列主要是介绍实际的操作,所以本文我们主要介绍下存储卷里面的临时存储卷。
什么是临时存储卷
临时存储卷主要是在宿主机上的一个临时目录,他得生命周期与关联的pod相同,当pod被删除的时候,这个存储卷就会被清理。
临时存储卷的应用场景有哪些
常见的临时存储卷的应用场景主要有:写缓存文件,写日志文件(这种一般有ELK,EFK或者其他方案采集到专门的日志系统去)。
如何创建临时卷
这里我们使用yaml文件的案例来介绍一个临时存储卷的案例,创建一个emptydir.yaml的文件:
然后把下面的内容复制进去:
apiVersion: v1 kind: Pod metadata: name: emptydir-pod #pod名称 spec: containers: - name: nginx1 image: nginx volumeMounts: #配置卷的挂载位置 - name: volume-test #临时存储卷的名称 mountPath: /mat #挂载到宿主机的路径上 volumes: #声明卷 - name: volume-test #与存储卷名称一样 emptyDir: {} #emptyDir代表的就是临时存储卷
然后创建这个临时卷的pod。
kubectl apply -f emptydir.yaml
此时我们可以看到有这个emptydir-pod的实例启动起来,然后我们进入到这个pod实例里面,然后在/mat目录下创建一个aaa.txt的文件,并且写入一些内容:
然后我们就可以在宿主机上找到这个aaa.txt文件:
我们从宿主机上看看这个文件内容:
可以看到具体的内容。然后我们把这个存储卷给停掉:
kubectl delete -f emptydir.yaml
此时我们再去宿主机上看是否还有这个aaa.txt文件
可以看到宿主机上也没有这个文件了。
以上就是kubernetes中存储卷的临时存储卷的用法。
备注:
1、临时存储卷主要存在于当前pod运行的宿主机上,没有运行这个pod,就不会有当前的临时存储卷。
2、临时存储卷在pod被删掉之后,也会从宿主机上删除掉。
3、临时存储卷的应用一般主要是容许数据可以用丢失风险的场景。
还没有评论,来说两句吧...