动态创建持久卷

本章节描述了如何为 Rancher 中的工作负载配置新的持久化存储。

本章节假定您已了解 Kubernetes 持久卷和持久卷声明的概念,如果您想了解持久卷和持久卷声明的工作原理,请参考存储是如何工作的

先决条件

  • 配置持久化存储前,请检查您的账户是否有 管理卷(Manage Volumes) 权限,具有该权限的角色可以配置持久化存储。
  • 如果要在基础设施提供商托管的集群中设置存储,则需要保证存储和集群主机是来自同一个基础设施提供商。并且必须启用 Cloud Provider。有关启用 Cloud Provider 的详细信息,请参阅文档
  • 确保存储提供者是已启用的。

Rancher 默认启用以下云服务存储卷:

名称插件
Amazon EBS Diskaws-ebs
AzureFileazure-file
AzureDiskazure-disk
Google Persistent Diskgce-pd
Longhornflex-volume-longhorn
VMware vSphere Volumevsphere-volume
Locallocal
Network File Systemnfs
hostPathhost-path

如果需要使用不在上述列表内的存储提供者,您需要使用功能开关来启用不被默认启动存储驱动。不在上述列表内的存储服务没有经过 Rancher 的测试和验证,属于实验性功能,Rancher 不能保证使用过程中是否会出现问题,请谨慎使用不在上表内的存储服务。

配置存储类

  1. 单击Cluster Explorer,找到并单击要为其设置动态持久化存储卷的集群。
  2. 在集群页面中,单击存储,选择存储类,单击添加类
  3. 输入存储类名称
  4. 提供者下拉列表中,选择要用于动态配置存储卷的服务。例如,您有一个 Amazon EC2 集群,并且想要为其使用云存储,请使用Amazon EBS Disk提供者。
  5. 参数中,填写动态配置存储卷所需的信息。每个提供者需要不同的信息来动态供应存储卷。请查阅对应的服务文档以获取更多信息。
  6. 单击保存

结果: 创建了新的存储类,可供 PVC 使用。

有关存储类参数的完整信息,请参阅Kubernetes 官方文档

添加持久卷声明

  1. 进入Cluster Manager到包含您要添加 PVC 的工作负载的项目。
  2. 在导航栏中,下拉资源,选择工作负载(在早于 v2.3.0 的版本中,在导航栏中选择工作负载)。然后选择页签,单击添加卷
  3. 输入卷声明名称
  4. 选择卷声明的命名空间。
  5. 中,单击使用存储类来置备新的持久卷
  6. 单击存储类下拉菜单,然后选择您创建的存储类。
  7. 输入卷容量
  8. 可选:自定义中,选择要使用的访问模式
  9. 单击创建

结果: 创建了新的 PVC,可以把它附加到项目中任意的工作负载上。

挂载持久卷声明

您可以在工作负载部署期间或创建工作负载之后挂载 PVC。

以下的步骤描述了如何将 PVC 分配给有状态的新工作负载:

  1. 按照部署工作负载的流程来创建工作负载.
  2. 工作负载类型中,选择StatefulSet,Pod 数量 为 1。
  3. 展开列表,并单击添加卷,选择添加一个新的持久卷(声明)
  4. 持久卷声明中,选择附加到存储类的新创建的持久卷声明。
  5. 挂载点中,输入工作负载将用来访问卷的路径。
  6. 单击启动

结果: 部署工作负载后,它将向 Kubernetes Master 请求指定数量的磁盘空间。如果在部署工作负载时具有资源匹配且可用的 PV,则 Kubernetes Master 会将 PV 绑定到 PVC。

以下的步骤描述了如何将 PVC 分配给现有工作负载:

  1. 进入要向其添加持久性存储的工作负载。
  2. 工作负载类型应为有状态集合(StatefulSet)。单击 ,选择编辑
  3. 展开,然后单击添加卷,选择添加一个新的持久卷(声明)
  4. 持久卷声明中,选择附加到存储类的新创建的持久卷声明。
  5. 挂载点中,输入工作负载将用来访问卷的路径。
  6. 单击保存

结果: 部署工作负载后,它将向 Kubernetes Master 请求指定数量的磁盘空间。如果在部署工作负载时具有资源匹配且可用的 PV,则 Kubernetes Master 会将 PV 绑定到 PVC。否则,Kubernetes 将会配置新的 PV,然后将新的 PV 绑定到 PVC。