--- title: "Kubernetes 持久存储:卷和存储类" description: "了解在 Kubernetes 中创建持久存储的两种方式:持久卷和存储类" --- 在部署需要保​​留数据的应用时,你需要创建持久存储。持久存储允许你在运行应用的 pod 之外存储应用数据。即使运行应用的 pod 发生故障,这种存储方式也能让你保留应用数据。 本文假设你已了解 Kubernetes 的持久卷、持久卷声明和存储类的概念。如需更多信息,请参阅[存储的工作原理](../how-to-guides/new-user-guides/manage-clusters/create-kubernetes-persistent-storage/manage-persistent-storage/about-persistent-storage.md)。 ### 先决条件 设置持久存储需要`管理卷`的[角色](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/manage-role-based-access-control-rbac/cluster-and-project-roles.md#项目角色参考)。 如果你要为云集群配置存储,则存储和集群主机必须使用相同的云提供商。 要使用 Rancher 配置新存储,则必须启用云提供商。有关启用云提供商的详细信息,请参阅[此页面](../pages-for-subheaders/set-up-cloud-providers.md)。 如果要将现有的持久存储连接到集群,则不需要启用云提供商。 ### 设置现有存储 设置现有存储的总体流程如下: 1. 设置你的持久存储。可以是云存储或你自己的存储。 2. 添加引用持久存储的持久卷 (PV)。 3. 添加引用 PV 的持久卷声明 (PVC)。 4. 将 PVC 挂载为工作负载中的卷。 有关详细信息和先决条件,请参阅[此页面](../how-to-guides/new-user-guides/manage-clusters/create-kubernetes-persistent-storage/manage-persistent-storage/set-up-existing-storage.md)。 ### 在 Rancher 中动态配置新存储 配置新存储的总体流程如下: 1. 添加一个 StorageClass 并将它配置为使用你的存储提供商。StorageClass 可以引用云存储或你自己的存储。 2. 添加引用存储类的持久卷声明 (PVC)。 3. 将 PVC 挂载为工作负载的卷。 有关详细信息和先决条件,请参阅[此页面](../how-to-guides/new-user-guides/manage-clusters/create-kubernetes-persistent-storage/manage-persistent-storage/dynamically-provision-new-storage.md)。 ### Longhorn 存储 [Longhorn](https://longhorn.io/) 是一个轻量级、可靠、易用的 Kubernetes 分布式块存储系统。 Longhorn 是免费的开源软件。Longhorn 最初由 Rancher Labs 开发,现在正在作为云原生计算基金会的沙盒项目进行开发。它可以通过 Helm、kubectl 或 Rancher UI 安装在任何 Kubernetes 集群上。 如果你有块存储池,Longhorn 可以帮助你为 Kubernetes 集群提供持久存储,而无需依赖云提供商。有关 Longhorn 功能的更多信息,请参阅[文档](https://longhorn.io/docs/latest/what-is-longhorn/)。 Rancher v2.5 简化了在 Rancher 管理的集群上安装 Longhorn 的过程。详情请参见[本页面](../integrations-in-rancher/longhorn.md)。 ### 配置存储示例 我们提供了如何使用 [NFS、](../how-to-guides/new-user-guides/manage-clusters/provisioning-storage-examples/nfs-storage.md) [vSphere](../how-to-guides/new-user-guides/manage-clusters/provisioning-storage-examples/vsphere-storage.md) 和 [Amazon EBS](../how-to-guides/new-user-guides/manage-clusters/provisioning-storage-examples/persistent-storage-in-amazon-ebs.md) 来配置存储的示例。 ### GlusterFS 卷 在将数据存储在 GlusterFS 卷上的集群中,你可能会遇到重启 `kubelet` 后 pod 无法挂载卷的问题。有关避免此情况发生的详细信息,请参阅[此页面](../how-to-guides/new-user-guides/manage-clusters/create-kubernetes-persistent-storage/manage-persistent-storage/about-glusterfs-volumes.md)。 ### iSCSI 卷 在将数据存储在 iSCSI 卷上的 [Rancher 启动的 Kubernetes 集群](../pages-for-subheaders/launch-kubernetes-with-rancher.md)中,你可能会遇到 kubelet 无法自动连接 iSCSI 卷的问题。有关解决此问题的详细信息,请参阅[此页面](../how-to-guides/new-user-guides/manage-clusters/create-kubernetes-persistent-storage/manage-persistent-storage/install-iscsi-volumes.md)。 ### hostPath 卷 在创建 hostPath 卷之前,你需要在集群配置中设置 [extra_bind](https://rancher.com/docs/rke/latest/en/config-options/services/services-extras/#extra-binds/)。这会将路径作为卷安装在你的 kubelet 中,可用于工作负载中的 hostPath 卷。 ### 将 vSphere Cloud Provider 从树内迁移到树外 Kubernetes 正在逐渐不在树内维护云提供商。vSphere 有一个树外云提供商,可通过安装 vSphere 云提供商和云存储插件来使用。 有关如何从树内 vSphere 云提供商迁移到树外,以及如何在迁移后管理现有虚拟机,请参阅[此页面](../how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/set-up-cloud-providers/configure-out-of-tree-vsphere.md)。 ### 相关链接 - [Kubernetes 文档:存储](https://kubernetes.io/docs/concepts/storage/)