更新时间:2024-12-16 GMT+08:00

设置数据存储

容器中的文件在磁盘上是临时存放的,这给容器中运行的组件实例带来如下两个问题:

  1. 容器重建时,容器中的文件将会丢失,不满足持久化数据存储的需求。
  2. 在一个Pod中同时运行多个容器时,容器间需要共享文件,存在在多个容器实例之间保持数据一致性的挑战。

通过为容器部署方式部署的组件设置数据存储,可以提供持久化存储选项,确保数据在容器重启、迁移或扩展时的一致性。

使用场景

表1 存储项使用场景说明

项目

场景

云硬盘存储

EVS目前支持普通I/O、高I/O、超高I/O三种规格。

  • 普通I/O:后端存储由SATA存储介质提供,适用于大容量、读写速率要求不高、事务处理较少的场景,如:开发测试、企业办公应用。
  • 高I/O:后端存储由SAS存储介质提供,适用于性能相对较高、读写速率要求高、有实时数据存储需求的场景,如:创建文件系统、分布式文件共享。
  • 超高I/O:后端存储SSD存储介质提供,适用于高性能、高读写速率要求、数据密集型的场景,如:NoSQL、关系型数据库、数据仓库(如Oracle RAC、SAP HANA)。

文件存储

文件存储适用于媒体处理、内容管理、大数据和分析工作负载程序等场景。

对象存储

  • 标准存储:

    适用于有大量热点文件或小文件,且需要频繁访问(平均一个月多次)并快速获取数据的业务场景。例如云应用、数据分析、内容分析、热点对象等。

  • 低频访问存储:

    适用于不频繁访问(平均一年少于12次),但需要快速获取数据的业务场景。例如静态网站托管、备份/活跃归档、作为云服务的存储资源池或者备份存储等。

极速文件存储

极速文件存储具有按需申请,快速供给,弹性扩展,方便灵活等特点,适用于DevOps、容器微服务、企业办公等应用场景。

主机路径挂载

将应用组件所在宿主机的文件目录挂载到应用指定的挂载点中,如应用组件需要访问/etc/hosts则可以使用HostPath映射/etc/hosts等场景。

须知:

请不要挂载在系统目录下,如“/”、“/var/run”等,会导致应用组件实例异常。建议挂载在空目录下。若目录不为空,请确保目录下无影响应用组件实例启动的文件。否则文件会被替换,导致应用组件实例启动异常。

临时路径挂载

用于临时存储,生命周期与应用组件实例相同。应用实例消亡时,EmptyDir会被删除,数据会永久丢失。

配置项挂载

将配置项中的key映射到应用中,可以用于挂载配置文件到指定应用组件目录。

密钥挂载

将应用认证信息、应用密钥等敏感信息存储在密钥中,并将密钥挂载到应用组件的指定路径中。

云硬盘存储

云硬盘不支持跨可用区挂载,且暂时不支持被多个工作负载、同一工作负载的多个实例或多个任务使用。

  1. 选择“容器配置”。
  2. 选择“数据存储 > 云存储 > 添加云存储”,参考表2设置参数。

    表2 云硬盘存储

    参数

    说明

    云存储类型

    选择“云硬盘”

    云硬盘的使用方式与传统服务器硬盘完全一致。同时,云硬盘具有更高的数据可靠性,更高的I/O吞吐能力和更加简单易用等特点。适用于文件系统、数据库或者其他需要块存储设备的系统软件或工作负载。

    分配方式

    • 使用已有存储

      选择已创建的云硬盘存储卷声明。

      您需要提前静态创建云硬盘存储卷声明和存储卷,请参考通过静态存储卷使用已有云硬盘

      云硬盘存储卷声明所在命名空间需和组件实例所在容器命名空间保持一致。

    • 自动分配存储

      自动创建存储,需要输入存储的容量。

      1. 存储类型选择云硬盘时,需要先选择创建云硬盘的可用区。
      2. 选择存储子类型。

        高IO:指由SAS存储介质构成的云硬盘。

        普通IO:指由SATA存储介质构成的云硬盘。

        超高IO:指由SSD存储介质构成的云硬盘。

      3. 输入存储容量,单位为GB。请不要超过存储容量配额,否则会创建失败。

    添加容器挂载

    1. 设置“子路径”、“挂载路径”:输入数据存储挂载到应用上的路径。
      例如,“挂载路径”设置为/tmp,“子路径”设置为app,则数据存储挂载到应用上的路径为/tmp/app。
      须知:
      • 请不要挂载在系统目录下,如“/”、“/var/run”等,会导致应用异常。建议挂载在空目录下,若目录不为空,请确保目录下无影响应用启动的文件,否则文件会被替换,导致应用启动异常,应用创建失败。
      • 挂载高危目录的情况下 ,建议使用低权限账号启动,否则可能会造成宿主机高危文件被破坏。
    2. 设置“权限”。
      • 只读:只能读应用路径中的数据存储。
      • 读写:可修改应用路径中的数据存储,应用迁移时新写入的数据不会随之迁移,会造成数据丢失。

  3. 单击“确定”。

文件存储

  1. 选择“容器配置”。
  2. 选择“数据存储 > 云存储 > 添加云存储”,参考表3设置参数。

    表3 文件存储

    参数

    说明

    云存储类型

    选择“文件存储”

    文件存储适用于媒体处理、内容管理、大数据和分析应用程序等场景。

    分配方式

    • 使用已有存储

      选择已创建的文件存储卷声明。

      您需要提前静态创建文件存储卷声明和存储卷,请参考通过静态存储卷使用已有文件存储

      文件存储卷声明所在命名空间需和组件实例所在容器命名空间保持一致。

    • 自动分配存储

      自动创建存储,需要输入存储的容量。

      1. 选择存储子类型。

        文件存储子类型为NFS。

      2. 输入存储容量,单位为GB。请不要超过存储容量配额,否则会创建失败。

    添加容器挂载

    1. 设置“子路径”、“挂载路径”:输入数据存储挂载到应用上的路径。
      例如,“挂载路径”设置为/tmp,“子路径”设置为app,则数据存储挂载到应用上的路径为/tmp/app。
      须知:
      • 请不要挂载在系统目录下,如“/”、“/var/run”等,会导致应用异常。建议挂载在空目录下,若目录不为空,请确保目录下无影响应用启动的文件,否则文件会被替换,导致应用启动异常,应用创建失败。
      • 挂载高危目录的情况下 ,建议使用低权限账号启动,否则可能会造成宿主机高危文件被破坏。
    2. 设置“权限”。
      • 只读:只能读应用路径中的数据存储。
      • 读写:可修改应用路径中的数据存储,应用迁移时新写入的数据不会随之迁移,会造成数据丢失。

  3. 单击“确定”。

对象存储

  1. 选择“容器配置”。
  2. 选择“数据存储 > 云存储 > 添加云存储”,参考表4设置参数。

    表4 对象存储

    参数

    说明

    云存储类型

    选择“对象存储”

    对象存储有标准存储和低频访问存储两个存储类型,主要适用于大数据分析、原生云应用程序数据、静态网站托管、备份/活跃归档等场景。

    分配方式

    • 使用已有存储

      选择已创建的对象存储卷声明。

      您需要提前静态创建对象存储卷声明和存储卷,请参考通过静态存储卷使用已有对象存储

      对象存储卷所在命名空间需和组件实例所在容器命名空间保持一致。

    • 自动分配存储
      1. 设置“密钥”。其中:

        “命名空间”为组件实例所在容器命名空间,不可修改。

        单击“使用已有密钥”,可选择组件实例所在容器命名空间下的密钥名称。

        也可以创建新密钥:输入新密钥名称后,单击“添加密钥文件”,上传已获取到本地的密钥文件,密钥文件获取请参考访问密钥

      2. 选择存储“子类型”。对象存储子类型为标准存储、低频访问存储。

    添加容器挂载

    1. 设置“子路径”、“挂载路径”:输入数据存储挂载到应用上的路径。
      例如,“挂载路径”设置为/tmp,“子路径”设置为app,则数据存储挂载到应用上的路径为/tmp/app。
      须知:
      • 请不要挂载在系统目录下,如“/”、“/var/run”等,会导致应用异常。建议挂载在空目录下,若目录不为空,请确保目录下无影响应用启动的文件,否则文件会被替换,导致应用启动异常,应用创建失败。
      • 挂载高危目录的情况下 ,建议使用低权限账号启动,否则可能会造成宿主机高危文件被破坏。
    2. 设置“权限”。
      • 只读:只能读应用路径中的数据存储。
      • 读写:可修改应用路径中的数据存储,应用迁移时新写入的数据不会随之迁移,会造成数据丢失。

  3. 单击“确定”

极速文件存储

  1. 选择“容器配置”。
  2. 选择“数据存储 > 云存储 > 添加云存储”,参考表5设置参数。

    表5 极速文件存储

    参数

    说明

    云存储类型

    选择“极速文件存储”

    对象存储有标准存储和低频访问存储两个存储类型,主要适用于大数据分析、原生云应用程序数据、静态网站托管、备份/活跃归档等场景。

    分配方式

    • 使用已有存储

      选择已创建的极速文件存储卷。

      您需要提前静态创建极速文件存储卷声明和存储卷,请参考通过静态存储卷使用已有极速文件存储

      极速文件存储卷所在命名空间需和组件实例所在容器命名空间保持一致。

    • 自动分配存储

      选择可用的文件系统。

      您需要提前创建文件系统,请参考创建SFS Turbo文件系统

    添加容器挂载

    1. 设置“子路径”、“挂载路径”:输入数据存储挂载到应用上的路径。
      例如,“挂载路径”设置为/tmp,“子路径”设置为app,则数据存储挂载到应用上的路径为/tmp/app。
      须知:
      • 请不要挂载在系统目录下,如“/”、“/var/run”等,会导致应用异常。建议挂载在空目录下,若目录不为空,请确保目录下无影响应用启动的文件,否则文件会被替换,导致应用启动异常,应用创建失败。
      • 挂载高危目录的情况下 ,建议使用低权限账号启动,否则可能会造成宿主机高危文件被破坏。
    2. 设置“权限”。
      • 只读:只能读应用路径中的数据存储。
      • 读写:可修改应用路径中的数据存储,应用迁移时新写入的数据不会随之迁移,会造成数据丢失。

  3. 单击“确定”

主机路径挂载

表示在组件上挂载宿主机上的文件或目录。

  1. 选择“容器配置”。
  2. 选择“数据存储 > 本地磁盘 > 挂载本地磁盘”,参考表6设置参数。

    表6 主机路径挂载

    参数

    说明

    本地存储类型

    选择“主机路径挂载”

    主机路径

    输入主机路径,如/etc/hosts。

    容器挂载

    1. 设置“子路径”、“挂载路径”:输入数据存储挂载到应用上的路径。
      例如,“挂载路径”设置为/tmp,“子路径”设置为app,则数据存储挂载到应用上的路径为/tmp/app。
      须知:
      • 请不要挂载在系统目录下,如“/”、“/var/run”等,会导致应用异常。建议挂载在空目录下,若目录不为空,请确保目录下无影响应用启动的文件,否则文件会被替换,导致应用启动异常,应用创建失败。
      • 挂载高危目录的情况下 ,建议使用低权限账号启动,否则可能会造成宿主机高危文件被破坏。
    2. 设置“权限”。
      • 只读:只能读应用路径中的数据存储。
      • 读写:可修改应用路径中的数据存储,应用迁移时新写入的数据不会随之迁移,会造成数据丢失。

  3. 单击“确定”

临时路径挂载

适用于临时存储、灾难恢复、共享运行时数据等场景,应用组件实例的删除或者迁移会导致临时路径被删除。

  1. 选择“容器配置”。
  2. 选择“数据存储 > 本地磁盘 > 挂载本地磁盘”,参考表7设置参数。

    表7 临时路径挂载

    参数

    说明

    本地存储类型

    选择“临时路径挂载”

    磁盘介质

    • 若勾选“内存”,可以提高运行速度,但存储容量受内存大小限制。适用于数据量少,读写效率要求高的场景。
    • 若不勾选“内存”,即存储在硬盘上,适用于数据量大,读写效率要求低的场景。

    容器挂载

    1. 设置“子路径”、“挂载路径”:输入数据存储挂载到应用上的路径。
      例如,“挂载路径”设置为/tmp,“子路径”设置为app,则数据存储挂载到应用上的路径为/tmp/app。
      须知:
      • 请不要挂载在系统目录下,如“/”、“/var/run”等,会导致应用异常。建议挂载在空目录下,若目录不为空,请确保目录下无影响应用启动的文件,否则文件会被替换,导致应用启动异常,应用创建失败。
      • 挂载高危目录的情况下 ,建议使用低权限账号启动,否则可能会造成宿主机高危文件被破坏。
    2. 设置“权限”。
      • 只读:只能读应用路径中的数据存储。
      • 读写:可修改应用路径中的数据存储,应用迁移时新写入的数据不会随之迁移,会造成数据丢失。

  3. 单击“确定”

配置项挂载

平台提供应用代码和配置文件的分离,“配置项挂载”用于处理应用组件配置参数。

  1. 选择“容器配置”。
  2. 选择“数据存储 > 本地磁盘 > 挂载本地磁盘”,参考表8设置参数。

    表8 配置项挂载

    参数

    说明

    本地存储类型

    选择“配置项挂载”

    配置项

    选择对应的配置项名称。

    创建配置项,请参考创建配置项。配置项所在命名空间需和组件实例所在容器命名空间保持一致。

    容器挂载

    设置“子路径”、“挂载路径”:输入数据存储挂载到应用上的路径。

    例如,“挂载路径”设置为/tmp,“子路径”设置为app,则数据存储挂载到应用上的路径为/tmp/app。

    “配置项挂载”仅支持“只读”权限,只能读应用路径中的数据存储。
    须知:
    • 请不要挂载在系统目录下,如“/”、“/var/run”等,会导致应用异常。建议挂载在空目录下,若目录不为空,请确保目录下无影响应用启动的文件,否则文件会被替换,导致应用启动异常,应用创建失败。
    • 挂载高危目录的情况下 ,建议使用低权限账号启动,否则可能会造成宿主机高危文件被破坏。

  3. 单击“确定”

密钥挂载

将密钥中的数据挂载到指定的应用组件中,密钥内容由用户决定。

  1. 选择“容器配置”。
  2. 选择“数据存储 > 本地磁盘 > 挂载本地磁盘”,参考表9设置参数。

    表9 密钥挂载

    参数

    说明

    本地存储类型

    选择“密钥挂载”

    密钥

    选择对应的密钥名称。

    创建密钥,请参考创建密钥。密钥所在命名空间需和组件实例所在容器命名空间保持一致。

    容器挂载

    设置“子路径”、“挂载路径”:输入数据存储挂载到应用上的路径。

    例如,“挂载路径”设置为/tmp,“子路径”设置为app,则数据存储挂载到应用上的路径为/tmp/app。

    “密钥挂载”仅支持“只读”权限,只能读应用路径中的数据存储。
    须知:
    • 请不要挂载在系统目录下,如“/”、“/var/run”等,会导致应用异常。建议挂载在空目录下,若目录不为空,请确保目录下无影响应用启动的文件,否则文件会被替换,导致应用启动异常,应用创建失败。
    • 挂载高危目录的情况下 ,建议使用低权限账号启动,否则可能会造成宿主机高危文件被破坏。

  3. 单击“确定”