CKA [Storage] – Volume的讲解
问题1
我们的pod很多时候会保存一些文件或是用户数据,如果是使用deployment也就是stateless pod的话,那么当我们重启pod的时候,pod内所保存的文件也会一并摧毁,这就会造成了文件或是数据的丢失。

做个实验
1. 开启busybox pod
✅ sleep 100
的作用是:
让容器里的进程 暂停(sleep)100秒,然后退出。
kubectl run busybox --image=busybox -- sleep 100

2. 进入到pod内
kubectl exec -it busybox -- sh
3. 进入到home然后创建test.txt
cd /home
touch test.txt
4. 等100秒后,pod会被摧毁,然后再次被重新创建,然后你再次进入pod内会发现刚刚创建的文件并不存在了
kubectl get pod
kubectl exec -it busybox -- sh


每100秒之后pod就会complete, 接着就会重启pod,你看到的restarts就是总共重启的次数

问题2
多个container需要使用共享的文件

这就是为什么需要使用volume来存储数据,如果有一天你的database container删掉了,需要重新创建那么volume可以永久化的保存你的数据。


在kubernetes当中使用的volume会有很多种

ephemeral volume 只能在pod的运行周期内保存,如果要永久性保存的话就必须使用persistent volume

在pod的yaml当中,有volume,这个volume就是定义了volume的名称。
而volume mount 就是在container内就是定义了哪个path内的文件是保存在哪个volume内


以下就是volume和volume mount是使用yaml example

Facebook评论