一、简介

  • emptyDir卷是最简单的卷,主要用于存储临时数据,当pod生命周期结束,emptyDir卷也就销毁。
  • emptyDir卷应用场景一般是pod中多个容器共享数据,即在pod中定义一个emptyDir卷,然后容器A挂载到某个目录,容器B也挂载到某个目录,这样,容器A和容器B就能读写文件,就能共享数据。

二、存储介质

  • medium:此目录所在的存储介质的类型,可用值为“default”或“Memory”。
  • sizeLimit:当前存储卷的空间限额,默认值为nil,表示不限制。

三、实现emptyDir存储卷

root@k8s-master01:~/learning-k8s/examples/volumes# cat pod-with-emptyDir-vol.yaml
apiVersion: v1
kind: Pod
metadata:
name: pods-with-emptydir-vol
spec:
containers:
- image: ikubernetes/admin-box:v1.2
name: admin
command: ["/bin/sh", "-c"]
args: ["sleep 99999"]
resources: {}
volumeMounts:
- name: data
mountPath: /data
- image: ikubernetes/demoapp:v1.0
name: demoapp
resources: {}
volumeMounts:
- name: data
mountPath: /var/www/html
volumes:
- name: data
emptyDir:
medium: Memory
sizeLimit: 16Mi
dnsPolicy: ClusterFirst
restartPolicy: Always
root@k8s-master01:~/learning-k8s/examples/volumes# kubectl apply -f pod-with-emptyDir-vol.yaml
pod/pods-with-emptydir-vol created root@k8s-master01:~/learning-k8s/examples/volumes# kubectl get pod
NAME READY STATUS RESTARTS AGE
pods-with-emptydir-vol 2/2 Running 0 5m20s

四、验证容器之间的数据共享

1、进入admin容器创建test.html文件,进入dempapp容器中验证。

root@k8s-master01:~/learning-k8s/examples/volumes# kubectl exec -it pods-with-emptydir-vol -c admin bash
kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead.
root@pods-with-emptydir-vol /# cd /data/
root@pods-with-emptydir-vol data# echo "<h1>Index Page</h1>" > test.html
root@pods-with-emptydir-vol data# cat test.html
<h1>Index Page</h1>

2、在admin容器的挂载目录下生成了test.html

root@k8s-master01:~/learning-k8s/examples/volumes# kubectl exec -it pods-with-emptydir-vol -c demoapp /bin/sh
kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead.
[root@pods-with-emptydir-vol /]# cd /var/www/html/
[root@pods-with-emptydir-vol /var/www/html]# ls
test.html
[root@pods-with-emptydir-vol /var/www/html]# cat test.html
<h1>Index Page</h1>

3、同理,在demoapp创建test02在admin容器也能看到

[root@pods-with-emptydir-vol /var/www/html]# echo $(date) $(hostname)> test02.html
[root@pods-with-emptydir-vol /var/www/html]# cat test
test.html test02.html
[root@pods-with-emptydir-vol /var/www/html]# cat test02.html
Mon Jan 22 13:19:03 UTC 2024 pods-with-emptydir-vol
[root@pods-with-emptydir-vol /var/www/html]# exit
root@k8s-master01:~/learning-k8s/examples/volumes# kubectl exec -it pods-with-emptydir-vol -c admin bash
kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead.
root@pods-with-emptydir-vol /# cd /data/
root@pods-with-emptydir-vol data# ls
test.html test02.html
root@pods-with-emptydir-vol data# cat test02.html
Mon Jan 22 13:19:03 UTC 2024 pods-with-emptydir-vol

k8s之emptyDir存储卷的更多相关文章

  1. k8s之存储卷及pvc

    1.存储卷概述 因为pod是有生命周期的,pod一重启,里面的数据就没了,所以我们需要数据持久化存储,在k8s中,存储卷不属于容器,而是属于pod,也就是说同一个pod中的容器可以共享一个存储卷,存储 ...

  2. K8s的存储卷使用总结

    K8s的存储卷: 它有四种存储卷: 1. emptyDir: 空目录,这种存储卷会随着Pod的删除而被清空,它一般作为缓存目录使用,或临时目录, 当做缓存目录时,通常会将一块内存空间映射到该目录上,让 ...

  3. k8s存储卷概述

    pod本身具有生命周期,故其内部运行的容器及其相关数据自身均无法持久存在.docker支持配置容器使用存储卷将数据持久存储于容器自身文件系统之外的存储空间中,它们可以是节点文件系统或网络文件系统之上的 ...

  4. k8s系列---存储卷pv/pvc。configMap/secert

    因为pod是有生命周期的,pod一重启,里面的数据就没了.所以我们需要数据持久化存储. 在k8s中,存储卷不属于容器,而是属于pod.也就是说同一个pod中的容器可以共享一个存储卷. 存储卷可以是宿主 ...

  5. kubernetes系列10—存储卷详解

    本文收录在容器技术学习系列文章总目录 1.认识存储卷 1.1 背景 默认情况下容器中的磁盘文件是非持久化的,容器中的磁盘的生命周期是短暂的,这就带来了一系列的问题:第一,当一个容器损坏之后,kubel ...

  6. Kubernetes学习之路(十六)之存储卷

    目录 一.存储卷的概念和类型 二.emptyDir存储卷演示 三.hostPath存储卷演示 四.nfs共享存储卷演示 五.PVC和PV的概念 六.NFS使用PV和PVC 1.配置nfs存储 2.定义 ...

  7. (九)Kubernetes 存储卷

    Kubernetes存储卷概述 Pod本身具有生命周期,这就带了一系列的问题,第一,当一个容器损坏之后,kubelet会重启这个容器,但是文件会丢失-这个容器会是一个全新的状态:第二,当很多容器在同一 ...

  8. Kubernetes 学习12 kubernetes 存储卷

    一.概述 1.我们此前讲过根据应用本身是否需要持久存储数据以及某一次请求和之前的请求是否有联系,可以分为四类应用 a.有状态,要存储 b.有状态,无持久存储 c.无状态,要存储 d.无状态,无持久存储 ...

  9. k8s学习笔记之八:存储卷

    第一章.前言 默认情况下容器的数据都是非持久化的, 在容器消亡以后数据也跟着丢失, 所以 Docker 提供了 Volume 机制以便将数据持久化存储. 类似的, Kubernetes 提供了更强大的 ...

  10. k8s volume存储卷(四)

    介绍 volume存储卷是Pod中能够被多个容器访问的共享目录,kubernetes的volume概念,用途和目的与docker的volume比较类似,但两者不能等价,首先,kubernetes中的v ...

随机推荐

  1. C++ //STL---常用算法 //常用遍历 for_each //transform

    1 //STL---常用算法 2 //常用遍历 for_each 3 //transform 4 #include<iostream> 5 #include<string> 6 ...

  2. Codeforces Round #848 (Div. 2) A~F 题解

    A. Flip Flop Sum 能换 \(-1,-1\) 就换,不能能换 \(1,-1\) 或 \(-1,1\) 也可以,否则只能换 \(1,1\). B. The Forbidden Permut ...

  3. 宝塔Linux面板 https://www.bt.cn/ 服务器环境搭建软件

    宝塔Linux面板 https://www.bt.cn/

  4. Redis持久化之RDB(Redis DataBase) 和 AOF(Append Only File)

    Redis提供了两种持久化方式:RDB(Redis DataBase)和AOF(Append Only File). 1. RDB持久化: RDB持久化是指在指定的时间间隔内将内存中的数据集快照写入磁 ...

  5. 2023中山市第三届香山杯网络安全大赛初赛wp

    序 被带飞了 PWN move 先往变量 sskd 写入 0x20 字节,往第二个输入点输入 0x12345678 即可进入到第三个输入点,存在 0x8 字节的溢出.思路是在第一个输入点布置 rop ...

  6. python的替换函数strip(),replace()和re.sub()实例分析

    前记: python是一个非常好用的语言,能够帮忙处理很多日常的耗费体力的事情.今天做一个脚本的时候,遇到了python替换的问题,这里就梳理一下知识点吧. 概念: 1.replace() 基本用法: ...

  7. Kotlin 集合对象的单条件和多条件排序

    原文: Kotlin 集合对象的单条件和多条件排序 - Stars-One的杂货小窝 本文不是太难的东西,因为sortedWith之前没怎么用过,所以就记录下 平常开发经常使用到List,Map等数据 ...

  8. 【ATCOER、D - ±1 Operation 2】前缀和+排序二分

    import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Arrays; public cla ...

  9. PagerAdapter深度解析和实践优化

    目录介绍 01.PagerAdapter简单介绍 02.PagerAdapter抽象方法 03.PagerAdapter原理介绍 04.PagerAdapter缓存和销毁 05.自定义PagerAda ...

  10. Redis集群模式和常用数据结构

    一.Redis 支持三种主要的集群模式 主从复制模式(Master-Slave Replication): 在这种模式下,主节点(Master)负责处理写入操作,而从节点(Slave)则是主节点的副本 ...