体积是kubernetes豆荚中多个容器访问的共享目录
Kubernetes提供了众多的卷类型,包括:emptyDir, hostPath, NFS,从而,configMap, Cephfs
<强> 1,emptyDir 强>
emptyDir类型的vloume在豆荚分配到节点上时被创建,kubernetes会在节点上自动分配一个目录,所以无须指定宿主机节点上对应的目录文件,该目录初始化内容为空,当吊舱从节点上被移除时,emptyDir中的数据会被永久删除
1。编辑<代码> emptyDir.yaml 代码>文件
<代码类=" language-yaml "> apiVersion:扩展/v1beta1 :部署 元数据: 名称:web-demo-empty 规范: 副本:2 选择器: matchLabels: 应用:app-demo-empty 模板: 元数据: 标签: 应用:app-demo-empty 规范: 容器: ——名称:tomcat-demo 图片:tomcat imagePullPolicy: IfNotPresent 港口: - containerPort: 8080 volumeMounts: #将/mydata-data目录挂载到共享仓库 - mountPath:/mydata-data 名称:datavol ——名称:nginx-demo 图片:nginx imagePullPolicy: IfNotPresent 港口: - containerPort: 80 volumeMounts: #将/mydata-data目录挂载到共享仓库 - mountPath:/mydata-data 名称:datavol # emptyDir是一个共享仓库(中央仓库) 卷: ——名称:datavol emptyDir:{} 代码>
2。执行<代码> kubectl创建代码>
<代码类=" language-bash "> kubectl创建- f emptyDir.yaml美元 部署。扩展/web-demo-empty创建代码>
3。先进入<代码> tomcat-demo 代码>容器中创建文件
<代码类=" language-bash ">美元kubectl exec - web-demo-empty-9b5644c45-7bpn5 - c tomcat-demo bash 美元/mydata-data/data.txt联系 $ ls/mydata-data/data.txt 代码>
4。在进入<代码> nginx-demo 代码>容器查看是否存在<代码> data.txt 代码>文件
<代码类=" language-bash ">美元kubectl exec - web-demo-empty-9b5644c45-7bpn5 - c nginx-demo bash $ ls/mydata-data/data.txt 代码>
经过试验证明emptyDir是一个共享空目录,可以让豆荚中的多个容器之间共享该目录
引用><强> 2,hostPath 强>
hostPath类型的vloume为豆荚挂载到宿主机上的目录或文件,使得容器可以使用宿主机的文件系统进行存储,但是在kubernetes中,豆荚都是基于<代码>时间> 代码组件来动态调度在不同的节点节点上,当一个豆荚在当节点前节点上启动并通过<代码> hostPath> 代码存储了文件到本地后,下次在调度另外一个节点上启动时,就无法使用之前节点上存储的文件了。1。编辑<代码> hostPath.yaml 代码>文件
<代码类=" language-bash "> apiVersion:扩展/v1beta1 :部署 元数据: 名称:web-demo-hostpath 规范: 副本:2 选择器: matchLabels: 应用:app-demo-hostpath 模板: 元数据: 标签: 应用:app-demo-hostpath 规范: 容器: 容器: ——名称:nginx-demo 图片:nginx imagePullPolicy: IfNotPresent 港口: - containerPort: 80 volumeMounts: - mountPath:/mydata-data 名称:datavol 卷: ——名称:datavol hostPath: 路径:“/数据”代码>2。执行<代码> kubectl创建代码>
<代码类=" language-bash "> kubectl创建- f hostPath.yaml美元 部署。扩展/web-demo-hostpath创建代码>3。需要在每节个节点点创建数据<代码>/代码>目录,并创建测试文件
<代码类=" language-bash "> $ mkdir/数据 $触摸/数据/用法代码>4。进入容器里查看是否将<代码>/mydata-data> 代码挂载到了宿主机上
<代码类=" language-bash ">美元kubectl exec - web -演示hostpath - 7866 - c644c4 - 7 - f8fk bash $ ls/mydata-data/用法代码>Kubernetes体积数据卷