Menu Close

第 4 章 配置持久性存储

4.1. 使用 AWS Elastic Block Store 的持久性存储

OpenShift Container Platform 支持 AWS Elastic Block Store 卷 (EBS) 。您可以使用 Amazon EC2 为 OpenShift Container Platform 集群置备持久性存储。我们假设您对 Kubernetes 和 AWS 有一定的了解。

Kubernetes 持久性卷框架允许管理员提供带有持久性存储的集群,并使用户可以在不了解底层存储架构的情况下请求这些资源。AWS Elastic Block Store 卷可以动态部署。持久性卷不与某个特定项目或命名空间相关联,它们可以在 OpenShift Container Platform 集群间共享。持久性卷声明是针对某个项目或者命名空间的,相应的用户可请求它。

重要

OpenShift Container Platform 默认使用 in-tree(非 CSI)插件来置备 AWS EBS 存储。

在以后的 OpenShift Container Platform 版本中,计划使用现有树内插件置备的卷迁移到对应的 CSI 驱动程序。CSI 自动迁移应该可以无缝进行。迁移不会改变您使用所有现有 API 对象的方式,如持久性卷、持久性卷声明和存储类。有关迁移的更多信息,请参阅 CSI 自动迁移

完全迁移后,未来的 OpenShift Container Platform 版本将最终删除树内插件。

重要

存储的高可用性功能由底层存储供应商实现。

对于 OpenShift Container Platform,可以从 AWS EBS in-tree 自动迁移到 Container Storage Interface(CSI)驱动程序作为技术预览(TP)功能。启用迁移后,使用现有 in-tree 驱动程序置备的卷会自动迁移到使用 AWS EBS CSI 驱动程序。如需更多信息,请参阅 CSI 自动迁移功能

4.1.1. 创建 EBS 存储类

存储类用于区分和划分存储级别和使用。通过定义存储类,用户可以获得动态置备的持久性卷。

流程

  1. 在 OpenShift Container Platform 控制台中点击 StorageStorage Classes
  2. StorageClasses 概述页面中点 Create Storage Class
  3. StorageClasses create 页面中,根据需要输入值:

    1. 输入一个名称来指代存储类。
    2. 输入描述信息(可选)。
    3. 选择 reclaim 策略。
    4. Provisioner 下拉列表中选择 kubernetes.io/aws-ebs

      注意

      要使用等同的 CSI 驱动程序创建存储类,从下拉列表中选择 ebs.csi.aws.com。如需了解更多详细信息,请参阅附加资源

    5. 根据需要为存储类输入附加参数。
  4. 点击 Create

4.1.2. 创建持久性卷声明

先决条件

当存储可以被挂载为 OpenShift Container Platform 中的卷之前,它必须已存在于底层的存储系统中。

流程

  1. 在 OpenShift Container Platform 控制台中,点击 StoragePersistent Volume Claims
  2. 在持久性卷声明概述页中,点 Create Persistent Volume Claim
  3. 在出现的页面中定义所需选项。

    1. 从下拉菜单中选择之前创建的存储类。
    2. 输入存储声明的唯一名称。
    3. 选择访问模式。这决定了所创建存储声明的读写权限。
    4. 定义存储声明的大小。
  4. 点击 Create 创建持久性卷声明,并生成一个持久性卷。

4.1.3. 卷格式

在 OpenShift Container Platform 挂载卷并将其传递给容器之前,它会检查它是否包含由 fstype 参数指定的文件系统。如果没有使用文件系统格式化该设备,该设备中的所有数据都会被删除,并使用指定的文件系统自动格式化该设备。

这将可以使用未格式化的 AWS 卷作为持久性卷,因为 OpenShift Container Platform 在第一次使用前会对其进行格式化。

4.1.4. 一个节点上的 EBS 卷的最大数目

默认情况下,OpenShift Container Platform 最多支持把 39 个 EBS 卷附加到一个节点。这个限制与 AWS 卷限制一致。卷限制取决于实例类型。

重要

作为集群管理员,您必须使用树内或 Container Storage Interface(CSI)卷及其相应的存储类,但不得同时使用这两个卷类型。附加的最大 EBS 卷数将单独计算为 in-tree 和 CSI 卷。

4.1.5. 其他资源