Advertisement

K8s存储对象的应用

阅读量:

背景和概念

容器内部存储的文件在磁盘上仅作为临时数据存在,这种特性为运行于容器中的关键性应用带来一定隐患:一旦容器发生崩溃或停止运行,其当前状态无法被保留,因此在容器生命周期中所生成或修改的所有文件内容都将被清除。此外,在容器异常终止后,kubelet 会将其恢复至初始状态重新启动。当多个容器共存于同一个 Pod 中并需共享文件时,如何在所有容器之间统一配置和访问共享文件系统也面临一定难度;

对于熟悉 Docker 的用户而言,应当了解 Docker 中存在一种称为“数据卷”的机制,用于实现容器内文件数据的持久化存储;同样地,在 Kubernetes 架构中也采用了类似的“卷”概念;

Kubernetes 支持多种类型的卷,Pod 可以同时使用任意数量的卷类型。其中临时卷的生命周期与 Pod 完全一致,而持久卷则可以超越 Pod 的存在时间。当 Pod 被删除后,Kubernetes 会同步销毁与其绑定的临时卷;然而对于持久卷,则不会执行删除操作。无论使用何种类型的卷,在容器重启过程中其数据均不会丢失。

卷的本质是一个目录结构,该目录可能包含有数据内容,并且 Pod 内的所有容器均可访问此目录下的信息。具体采用哪种类型的卷将决定该目录是如何生成、通过何种介质进行存储以及其中保存的数据内容。

在使用卷时,需要在 .spec.volumes 字段中为 Pod 配置

全部评论 (0)

还没有任何评论哟~