Kubernetes详解(三十四)——Kubernetes emptyDir存储卷

  • Post author:
  • Post category:其他


今天继续给大家介绍Linux运维相关知识,本文主要内容是Kubernetes emptyDir存储卷。



一、emptyDir存储卷简介

emtpyDir总是在Pod被指定到Node节点上时创建,emptyDir在被创建之初是一个空目录,并且会一直存在于Pod的生命周期中,当Pod被移除时,emptyDir中的数据也会被随之删除。(但是,Pod中一个容器的崩溃并不会使得emptyDir被删除。)emptyDir可以被挂载到Pod的任意容器下的任意路径下,并且被Pod中的容器所共享。

emptyDir磁盘的作用如下所示:

1、Pod中容器的普通空间,用于临时的数据存储。

2、作为从崩溃中恢复的备份点。

在默认情况下,emptyDir会存储在主机所使用的媒介上,具体是何种存储媒介取决于环境。我们也可以将emptyDir.medium的值设置为Memory,使得Kubernetes来挂载基于内存的tmpfs,这样存储速度会增大,但是当主机重启后,数据会消失。

执行命令:

kubectl explain pods.spec.volumes.emptyDir

可以详细查看emptyDir存储的相关参数,该命令执行结果如下所示:

在这里插入图片描述



二、emptyDir存储卷创建

接下来,我们就来实际创建一个emptyDir的存储卷。

首先,我们来创建一个资源清单配置文件pod-vol.yaml,并向该文件中写入如下内容:

apiVersion: v1
kind: Pod
metadata:
  name: pod-with-emptydir
  namespace: default
  labels:
    pod: myapp
    dir: empty
spec:
  containers:
  - name: myapp
    image: ikubernetes/myapp:v1
    ports:
    - name: http
      containerPort: 80
    volumeMounts:
    - name: html
      mountPath: /usr/share/nginx/html/
  - name: busybox
    image: busybox
    volumeMounts:
    - name: html
      mountPath: /exp/
    command: ['/bin/sh','-c','while true; do echo $(date) > /exp/index.html; sleep 3; done']
  volumes:
  - name: html
    emptyDir: {}

资源清单文件配置完成后如下所示:

在这里插入图片描述

在上述配置文件中,Pod的spec字段中volumes来指定该Pod的存储卷,name参数表示该存储卷的名称,emptyDir参数表示该存储卷的类型。在spec的容器定义中,volumeMounts参数定义了在该容器内挂载的存储卷,其name参数和下面volumes中的name一致,表示在容器中挂载的存储卷就是下面的volumes中定义的emptyDir存储卷,后面的mountPath参数指定了该存储卷的挂载目录。

此外,在该配置文件中,我们在Pod中定义了两个容器——busybox容器和myapp容器,为了检测emptyDir存储卷在Pod中容器间的共享性,我们让这两个容器都挂载emptyDir存储卷。并且busybox容器会不断的向该存储卷内写入日志,而myapp则会从该存储卷中读取index.html文件中读取内容作为自己的主页。

完成配置后,我们来创建该Pod,执行命令:

kubectl apply -f pod-vol.yaml

该命令执行结果如下:

在这里插入图片描述



三、emptyDir存储卷查看

在该命令执行后,我们的Pod就已经创建了,接下来,我们来检验一下emptyDir存储卷的效果。执行命令:

kubectl get pods -o wide

查看我们创建的Pod及其IP地址信息,如下所示:

在这里插入图片描述

之后,我们访问该IP地址,执行命令:

curl 10.10.2.69

结果如下所示:

在这里插入图片描述

从上图可以看出,我们访问的结果正是busybox容器写入的内容,我们的Kubernetes emptyDir存储卷配置成功!

原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200



版权声明:本文为weixin_40228200原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。