下次在调度另外一个节点上启动时
标签:
Volume是kubernetes Pod中多个容器访谒的共享目录Kubernetes供给了众多的volume类型,包孕:emptyDir、hostPath、NFS、GlusterFS、configMap、Cephfs
1、emptyDir
emptyDir类型的vloume在Pod分配到node上时被创建,kubernetes会在node上自动分配一个目录,所以无须指定宿主机node上对应的目录文件,该目录初始化内容为空,当Pod从node上被移除时,emptyDir中的数据会被永久删除
1.编纂emptyDir.yaml文件
apiVersion: extensions/v1beta1 kind: Deployment metadata: name: web-demo-empty spec: replicas: 2 selector: matchLabels: app: app-demo-empty template: metadata: labels: app: app-demo-empty spec: containers: - name: tomcat-demo image: tomcat imagePullPolicy: IfNotPresent ports: - containerPort: 8080 volumeMounts: # 将/mydata-data目录挂载到共享货仓 - mountPath: /mydata-data name: datavol - name: nginx-demo image: nginx imagePullPolicy: IfNotPresent ports: - containerPort: 80 volumeMounts: # 将/mydata-data目录挂载到共享货仓 - mountPath: /mydata-data name: datavol # emptyDir是一个共享货仓(中央货仓) volumes: - name: datavol emptyDir: {}2.执行kubectl create
$ kubectl create -f emptyDir.yaml deployment.extensions/web-demo-empty created3.先进入tomcat-demo容器中创建文件
$ kubectl exec -it web-demo-empty-9b5644c45-7bpn5 -c tomcat-demo bash $ touch /mydata-data/data.txt $ ls /mydata-data/ data.txt4.在进入nginx-demo容器检察是否存在data.txt文件
$ kubectl exec -it web-demo-empty-9b5644c45-7bpn5 -c nginx-demo bash $ ls /mydata-data/ data.txt颠末试验证明emptyDir是一个共享空目录,可以让Pod中的多个容器之间共享该目录
2、hostPath
hostPath类型的vloume为Pod挂载到宿主机上的目录或文件,使得容器可以使用宿主机的文件系统进行存储,但是在kubernetes中,Pod都是基于schedule组件来动态调理在差此外node节点上,当一个Pod在当前node节点上启动并通过hostPath存储了文件到本地后,下次在调理此外一个节点上启动时,就无法使用之前节点上存储的文件了。
1.编纂hostPath.yaml文件
apiVersion: extensions/v1beta1 kind: Deployment metadata: name: web-demo-hostpath spec: replicas: 2 selector: matchLabels: app: app-demo-hostpath template: metadata: labels: app: app-demo-hostpath spec: containers: containers: - name: nginx-demo image: nginx imagePullPolicy: IfNotPresent ports: - containerPort: 80 volumeMounts: - mountPath: /mydata-data name: datavol volumes: - name: datavol hostPath: path: "/data"2.执行kubectl create
$ kubectl create -f hostPath.yaml deployment.extensions/web-demo-hostpath created3.需要在每个node节点创建/data目录,,并创建测试文件
$ mkdir /data $ touch /data/test.txt4.进入容器里检察是否将/mydata-data挂载到了宿主机上
$ kubectl exec -it web-demo-hostpath-7866c644c4-7f8fk bash $ ls /mydata-data/ test.txtKubernetes volume数据卷
温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/32437.html
- 上一篇:询问对方后得知需要统一保留两位小数
- 下一篇:由k8s系统自行维护