上文《Kubernetes入门到进阶使用(十)存储卷之临时存储卷》我们介绍了关于临时存储卷,在这里我们再介绍下本地存储卷。这里的本地存储卷的话,在实际的工作场景中还是会遇得到的,例如阿里云的polardbx,使用k8s部署安装的时候,就需要使用本地存储卷。
在kubernetes中本地存储卷的含义就是:
将宿主机上的某个目录关联到pod上的一中存储类型上面,他得存储不依赖与pod,当pod漂移或者销毁的时候,当前存储目录的数据也都还在。
这里本地存储卷主要使用的是宿主机上的存储空间,除了上诉polardbx的安装,还可以适配一些需要手机宿主机系统上数据的一些pod场景。本文我们来介绍下如何使用本地存储卷。这里我们还是使用yaml的方式创建一个本地存储卷,完整的yaml文件内容如下:
apiVersion: v1 kind: Pod metadata: name: hostdir-pod #pod名称 spec: containers: - name: nginx1 image: nginx volumeMounts: #配置卷的挂载位置 - name: volume-host #本地存储卷的名称 mountPath: /mat #容器对应的路径 volumes: #声明卷 - name: volume-host #与存储卷名称一样 hostPath: #挂载本地文件的路径 path: /mdt #本地宿主机上的映射路径
当我们准备好这个文件之后,就可以创建这个存储卷了,示例如下:
kubectl apply -f hostdir.yaml
执行完成之后,我们就可以看到整个pod启动起来了
此时我们进入到容器,在/mat目录下创建一个文件:
这里我们在pod的/mat目录下创建了一个aaa.txt目录,然后我们退出pod,去宿主机上的/mdt目录下看是否存在这个文件
这里我们可以看到在宿主机的/mdt目录下时存在这个aaa.txt文件的。然后我们在宿主机的/mdt目录下创建一个bbb.txt文件,再看看宿主机上是否有:
在宿主机上创建这个bbb.txt文件之后,再pod容器里面也可以看到这个bbb.txt文件。
以上就是kubernetes中关于本地存储卷的介绍。
备注:
1、使用本地存储卷一般我们需要指定pod必须在当前机器上运行,可以通过NodeSeletcor或者NodeAffinity等方式实现。
2、使用本地存储卷如果注意上诉1的问题,那么pod出现漂移的时候,程序就会读取不到相关的目录,会导致业务出问题。
还没有评论,来说两句吧...