本页面简要介绍 Kubernetes 中的卷及其在 Google Kubernetes Engine 中的用法。

概览

对于应用而言,将数据写入容器中的磁盘文件是最简单的途径,但这种方法存在缺陷。如果容器因其他任何原因崩溃或停止,文件将会丢失。此外,一个容器内的文件不可供同一 Pod 中运行的其他容器访问。Kubernetes 卷抽象可以解决这两个问题。

从概念上讲,卷是可供 Pod 中的所有容器访问的目录。Pod 规范中声明的卷来源决定了目录的创建方式、使用的存储介质以及目录的初始内容。Pod 指定了其包含的卷以及这些卷在容器中的装载路径。

临时类型的卷与其所属 Pod 具有相同的生命周期。这些卷是随 Pod 一起创建的,并会留存到容器重新启动为止。当 Pod 终止或被删除时,其所含的卷也会随之终止或删除。

其他类型的卷可以连接到独立于 Pod 的持久性存储空间。与临时卷不同,由持久性存储空间支持的卷中的数据会在 Pod 被移除时留存。系统只是卸载该卷,并可将其数据传递到另一个 Pod。建议您使用 PersistentVolume 资源来管理持久性存储类型的生命周期,而不要直接进行指定。

卷类型

对于卷而言,其存储实现和初始内容会有所不同。您可以根据自己的使用场景选择最适合的卷来源。下面介绍几种常见的卷来源:

emptyDir
一种临时卷,用于提供空目录以供 Pod 中的容器执行读写操作。如果 Pod 因任何原因被从节点中移除,emptyDir 中的数据将被永久删除。emptyDir 适用于临时空间以及在 Pod 中的多个容器之间共享数据。
configMap
用于将配置数据提供给应用。configMap 卷中的文件由 ConfigMap 资源指定。
secret
用于向应用提供密码、OAuth 令牌和 SSH 密钥等敏感数据。
downwardAPI
用于向应用提供 Downward API 数据。该数据包含有关运行应用的 Pod 和容器的信息。例如,可以将 Pod 配置为向应用公开包含 Pod 的命名空间和 IP 地址的 DownwardAPIVolumeFile。
persistentVolumeClaim
集群运营商可以预配供应用使用的持久性存储空间。Pod 使用 PersistentVolumeClaim 来装载由此持久性存储空间支持的卷。

如需查看完整的卷类型列表,请参阅 Kubernetes 卷文档

后续步骤

此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
Kubernetes Engine 文档