Kubernetes体积数据卷

  

体积是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体积数据卷