【云原生kubernets】存储管理与应用

一、存储卷介绍

1.1.为什么需要存储卷:

容器中的文件在磁盘上是临时存放的,这给容器中运行的特殊应用程序带来一些问题。首先,当容器崩溃时,kubelet 将重新启动容器,容器中的文件将会丢失,因为容器会以干净的状态重建。其次,当在一个 Pod 中同时运行多个容器时,常常需要在这些容器之间共享文件。

1.2.存储卷的生命周期

Kubernetes 卷具有明确的生命周期,与包裹它的 Pod 相同。 因此,卷比 Pod 中运行的任何容器的存活期都长,在容器重新启动时数据也会得到保留。 当一个 Pod 不再存在时,卷也将不再存在。Kubernetes 可以支持许多类型的卷,Pod 也能同时使用任意数量的卷,卷不能挂载到其他卷,也不能与其他卷有硬链接,Pod 中的每个容器必须独立地指定每个卷的挂载位置。

二、基本存储

2.1.EmptyDir

2.1.1.EmptyDir本质:

EmptyDir是最基础的Volume类型,一个EmptyDir就是Host上的一个空目录。

2.1.2.EmptyDir工作流程:

EmptyDir是在Pod被分配到Node时创建的,它的初始内容为空,并且无须指定宿主机上对应的目录文件,因为kubernetes会自动分配一个目录,当Pod销毁时, EmptyDir中的数据也会被永久删除。当 Pod 指定到某个节点上时,首先创建的是一个 emptyDir 卷,并且只要 Pod 在该节点上运行,卷就一直存在。 就像它的名称表示的那样,卷最初是空的。 尽管 Pod 中的容器挂载 emptyDir 卷的路径可能相同也可能不同,但是这些容器都可以读写 emptyDir 卷中相同的文件。 当 Pod 因为某些原因被从节点上删除时,emptyDir 卷中的数据也会永久删除。

2.1.3.EmptyDir用途如下:

(1)临时空间,例如用于某些应用程序运行时所需的临时目录,且无须永久保留。

(2)一个容器需要从另一个容器中获取数据的目录,即多容器共享目录。

接下来,通过一个容器之间文件共享的案例来使用一下EmptyDir。

在一个Pod中准备两个容器nginx和busybox,然后声明一个Volume分别挂在到两个容器的目录中,然后nginx容器负责向Volume中写日志,busybox中通过命令将日志内容读到控制台。

相关推荐
科技小花1 小时前
AI重塑数据治理:2026年核心方案评估与场景适配
大数据·人工智能·云原生·ai原生
阿里云云原生1 小时前
基于 HiClaw 的运维场景多智能体协同实践
云原生
阿里云云原生3 小时前
从 OpenSearch 到阿里云 SLS:极致弹性、更低成本、生态兼容
云原生
yuanlaile3 小时前
从入门到部署|2026年Koa全栈开发实战:覆盖Node.js、数据库、部署与云架构全链路
微服务·云原生·kubernetes·node.js·serverless·nodejs全栈开发
http阿拉丁神猫5 小时前
kubernetes知识点汇总37-42
云原生·容器·kubernetes
360智汇云5 小时前
在OpenStack使用Ceph纠删码存储
云原生
2301_771717216 小时前
登录生成 Token + 网关解析 Token + 微服务透传 userId
微服务·云原生·架构
恼书:-(空寄6 小时前
K8s 网关(Ingress-Nginx/Envoy/云原生网关)20 个高频故障速查手册
云原生·k8s·ingress
风向决定发型丶18 小时前
K8S CPU绑核详解
云原生·容器·kubernetes
KubeSphere 云原生19 小时前
KubeSphere Skills 正式发布:让 OpenClaw 更懂 KubeSphere
云原生