emptyDir
EmptyDir从名称上的意思看是空的目录,它是在Pod创建的时候新建的一个目录。
如果Pod配置了EmptyDir数据卷,在Pod的生命周期内都会存在,当Pod被分配到Node上的时候,会在Node上创建EmptyDir数据卷,并挂载到Pod的容器中。只要Pod存在,EmptyDir数据卷都会存在(容器删除不会导致EmptyDir数据卷丢失数据),但是如果Pod的生命周期终结(Pod被删除),EmptyDir数据卷也会被删除,并且永久丢失。
EmptyDir数据卷非常适合实现Pod中容器的文件共享。Pod的设计提供了一个很好的容器组合的模型,容器之间各司其职,通过共享文件目录来完成交互,比如可以通过一个专职日志收集容器,在每个Pod中和业务容器中进行组合,来完成日志的收集和汇总。
清单文件
apiVersion: v1
kind: Pod
metadata:
name: test
namespace: default
labels:
app: test
environment: develop
spec:
containers:
- name: httpd
image: ikubernetes/myapp:v1
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80
name: http
protocol: TCP
volumeMounts:
- name: html-vol
mountPath: /usr/share/nginx/html/
- name: busybox
image: busybox:latest
volumeMounts:
- name: html-vol
mountPath: /usr/share/nginx/html/
command: ["/bin/sh", "-c", "while true; do echo $(date) >> /usr/share/nginx/html/index.html; sleep 2; done"]
volumes:
- name: html-vol
emptyDir: {}