emptyDir介绍

  Kubernetes支持存储卷类型中,emptyDir存储卷的生命周期与其所属的Pod对象相同,它无法脱离Pod对象的生命周期提供数据存储功能,因此emptyDir通常仅用于数据缓存或临时存储。


使用emptyDir存储卷创建pod

  如下示例中定义的存储卷名称为html,挂载于容器nginx的 /usr/share/nginx/html目录,以及容器pagegen的/html目录。容器pagegen每隔10秒向存储卷上的index.html文件中追加一行信息,在nginx容器,则使用tail命令持续监控 /usr/share/nginx/html目录下index.html文件的变化。

# 创建yaml文件
vim vol-emptydir.yaml
"""# vol-emptydir.yaml的内容如下所示:
apiVersion: v1
kind: Pod
metadata:
  name: vol-emptydir-pod
  namespace: one-namespace
spec:
  volumes:
  - name: html
    emptyDir: { }
  containers:
  - name: nginx
    image: nginx:latest
    command: ["bash", "-c", "tail -f /usr/share/nginx/html/index.html"]
    volumeMounts:
    - name: html
      mountPath: /usr/share/nginx/html
  - name: pagegen
    image: alpine
    volumeMounts:
    - name: html
      mountPath: /html
    command: [ "/bin/sh", "-c" ]
    args:                       #定义循环,每10秒向/html/文件中追加写入当前主机名和时间
    - while true; do
        echo $(hostname) $(date) >> /html/index.html;
        sleep 10;
      done
"""

# 创建pod
kubectl create -f vol-emptydir.yaml
# 查看pod状态
kubectl -n one-namespace get po
"""查看结果:
NAME               READY   STATUS    RESTARTS   AGE
vol-emptydir-pod   2/2     Running   1          17s
"""

# 查看nginx容器的日志信息,确定是否共享成功
kubectl -n one-namespace logs vol-emptydir-pod -c nginx
"""
vol-emptydir-pod Wed Jun 29 03:45:46 UTC 2022
vol-emptydir-pod Wed Jun 29 03:45:56 UTC 2022
vol-emptydir-pod Wed Jun 29 03:46:06 UTC 2022
vol-emptydir-pod Wed Jun 29 03:46:16 UTC 2022
"""

配置信息补充

  下面的代码中,medium指定临时存储到内存中,sizeLimit则是给予的内存空间大小。

volumes:
  - name: volume_name
    emptyDir:
      medium: Memory                
      sizeLimit: 256Mi              
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐