第16章. 持久 卷
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
持久卷是卷概念中的一类特殊卷( ),其特性在于能够在Pod生命周期之外持续保存数据。持久卷的运作机制稍显复杂:持久卷作为实际将数据持久化存储至底层物理存储的资源实体。
持久卷声明 则代表连接Pod与持久卷的桥梁资源,负责向存储系统发起请求。
最后,Pod需要申领持久卷并将其挂载到内部容器可访问的目录路径。
图16-1展示了Pod、持久卷声明与持久卷之间的关系。
图16-1. 从Pod申领 持久卷
持久卷操作
存储在卷上的数据在容器重启后仍可保留。在许多应用中,数据的生命周期远超应用程序、容器、Pod、节点乃至集群本身的存续时间。 数据持久化 确保数据生命周期与集群资源生命周期解耦。典型示例是数据库持久化的数据,这正是持久化卷的职责所在。Kubernetes通过两种基础组件实现数据持久化:PersistentVolume(持久化卷)和PersistentVolumeClaim(持久化卷声明)。
PersistentVolume是 中表示存储空间的基本单元,它与Pod完全解耦,因此拥有独立的生命周期。该对象捕获存储源(例如Cloud服务商提供的存储资源)。PersistentVolume可由Kubernetes管理员提供,也可通过映射存储类实现动态分配。
PersistentVolumeClaim用于请求PersistentVolume的资源 ——例如存储容量和访问类型。在Pod中,需使用persistentVolumeClaim类型通过PersistentVolumeClaim挂载抽象化的PersistentVolume。
卷类型
Kubernetes支持多种持久卷类型( ),以适配不同存储后端和使用场景。每种类型具有独特特性,适用于特定场景。表16-1列出了当前未废弃的最常用持久卷类型。
| 输入命令 | 描述 |
|---|---|
|
将主机节点的文件系统中的文件或目录挂载到 Pod 中。适用于开发和测试环境,但不推荐用于生产环境的多节点集群,因为它将 Pod 绑定到特定节点。 |
|
表示挂载的本地存储设备,如磁盘、分区或目录。性能优于远程存储,但需配置节点亲和性以确保Pod调度至正确节点。 |
|
允许多个Pod共享同一网络文件系统(NFS)挂载点。支持 |
|
容器存储接口(CSI)驱动程序,为容器化工作负载提供标准化存储系统暴露方案。多数现代存储解决方案均采用CSI驱动程序。 |
|
光纤通道(FC)卷,支持将现有FC存储设备挂载至Pod。需节点配备FC硬件并完成相应配置。 |
|
互联网小型计算机系统接口(iSCSI)卷,支持将现有iSCSI存储挂载至Pod。通过IP网络提供块级存储服务。 |
卷类型的选择取决于基础设施、性能需求以及是否需要跨多个Pod或节点共享存储。在云环境中,云服务商通常提供CSI驱动程序(如AWS EBS CSI驱动程序、GCE持久磁盘CSI驱动程序或Azure磁盘CSI驱动程序)以集成其原生存储服务。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access