在通常情况下,存储在容器中的数据是非持久化的,在容器销毁以后数据也将丢失。在当代高速发展的互联网环境下,数据丢失意味着线上生产环境的灾难性事件。EDAS的K8s集群支持NAS文件存储功能,实现了应用实例数据持久化存储和实例间多读共享数据。

前提条件

在创建应用时配置持久化存储

  1. 登录EDAS控制台
  2. 在左侧导航栏中选择应用管理 > 应用列表,在顶部菜单栏选择地域并在页面上方选择命名空间,然后在应用列表页面左上角单击创建应用
  3. 应用基本信息页签选择集群类型和应用运行环境,然后在页面最下方单击下一步
    参数 描述
    集群类型 选择Kubernetes集群
    应用运行环境 选择应用运行环境。
    • Java运行环境
      • 自定义:适用于在K8s集群中使用自定义的镜像部署应用。
      • Java:支持通用的JAR包部署,适用于Dubbo和Spring Boot应用。在选择后可更改Java环境。
      • Tomcat:支持通用的WAR包部署,适用于Dubbo和Spring应用。在选择后可更改Java环境和容器版本。
      • EDAS-Container(HSF):适用于使用WAR或者FatJar部署HSF应用。在选择后可更改Java环境、Pandora版本和Ali-Tomcat版本。
    • PHP:适用于运行在Apache HTTP Server中的PHP应用程序。
  4. 应用配置页签中设置应用的环境信息、基本信息、部署方式和资源参数,设置完成后单击下一步
  5. 应用高级设置页签展开持久化部署,设置持久化存储数据和日志等信息。
    配置持久化存储
    参数 描述
    存储类型 默认为NAS文件存储,不可配置。
    存储服务类型 目前仅支持SSD性能型,不可配置。
    选择NAS
    • 新购一个NAS:选择NAS挂载目录和本地挂载目录。单一地域内NAS文件系统上限为10个,若已超过10个会创建失败。如有特殊需求,请提交工单
    • 使用已有NAS:选择一个已有的NAS。您最多可以创建两个挂载点。不符合要求的NAS将不会显示在下拉列表中。
    挂载目录 分别设置NAS挂载目录容器挂载目录
  6. 完成设置后单击创建应用
  7. 应用创建完成页签确认应用基本信息应用配置应用高级设置等信息,确认完毕后单击确定创建应用
    在应用 基本信息页面顶部提示信息中单击 查看详情,可在 变更详情页面查看变更流程。应用部署需要几分钟,请您耐心等待。变更完成后在应用 基本信息页面的 实例部署信息页签查看实例的运行状态,如果运行状态为 运行正常,说明应用部署成功。

在更新应用时配置持久化存储

您除了在创建应用时可以配置NAS文件存储,也可以在部署应用时配置或更新NAS文件存储。

  1. 登录EDAS控制台
  2. 在左侧导航栏中选择应用管理 > 应用列表,在应用列表页面单击具体的应用名称。
  3. 应用总览基本信息页面的右上角选择部署 > 部署
  4. 选择部署模式页面选择具体的部署方式,然后在所选方式区域的右上角单击开始部署
  5. 设置应用的环境和部署包信息后展开持久化存储,根据您的需求完成配置后单击确定
    配置持久化存储
    参数 描述
    存储类型 默认为NAS文件存储,不可配置。
    存储服务类型 目前仅支持SSD性能型,不可配置。
    选择NAS
    • 新购一个NAS:选择NAS挂载目录和本地挂载目录。单一地域内NAS文件系统上限为10个,若已超过10个会创建失败。如有特殊需求,请提交工单
    • 使用已有NAS:选择一个已有的NAS。您最多可以创建两个挂载点。不符合要求的NAS将不会显示在下拉列表中。
    挂载目录 分别设置NAS挂载目录容器挂载目录
    注意 单击 确定后,该应用将会被重启,请在业务较少的时间段进行。

结果验证

Linux/Unix/macOS系统

  • (推荐)方法1:在应用实例中执行以下命令来查询应用中是否存在NAS挂载信息。
    cat /proc/mount | grep nfs

    当回显以下信息时,表示NAS挂载成功。

    成功挂载NAS
  • 方法2:使用WebShell进行文件读写验证NAS挂载是否成功。

    示例:

    准备2个应用实例A和B,分别挂载NAS。对A执行写入命令echo "hello" > tmp.txt,对B执行读取命令cat tmp.txt。如果B中能够读取到在A中写入的hello,表示NAS挂载成功。

Windows系统

  • (推荐)在NAS控制台的NAS挂载点的已挂载客户端页面中,查看是否存在该应用的实例IP地址。
    注意 已挂载客户端中仅显示近一分钟内正在使用NAS的客户端IP地址。
    1. 登录NAS控制台
    2. 进入您创建好的NAS详情页面,并单击已挂载的客户端 挂载点类型
    3. 已挂载的客户端查看是否存在该应用实例的IP地址,然后在EDAS控制台中查看该应用的Pod IP地址。

      如果IP地址相同,则表示NAS挂载成功。

  • 在EDAS控制台查看:在变更流程详情页查看变更状态,如果变更状态显示为执行成功,表示应用部署成功,说明NAS挂载成功。

取消持久化存储

挂载NAS后,如果您不再使用持久化存储,可以通过重新部署应用来取消挂载NAS。

  1. 登录EDAS控制台
  2. 在左侧导航栏中选择应用管理 > 应用列表,在应用列表页面单击具体的应用名称。
  3. 应用总览基本信息页面的右上角选择部署 > 部署
  4. 选择部署模式页面选择具体的部署方式,然后在所选方式区域的右上角单击开始部署
  5. 设置应用的环境和部署包信息后展开持久化存储,取消挂载NAS后单击确定
    注意 单击 确定后,该应用将会被重启,请在业务较少的时间段进行。
    在EDAS控制台取消挂载NAS后,您在NAS中所存储的数据仍然存在,不会被删除。

常见问题

  • 如何查看NAS文件系统中的内容,有没有页面可以查看?

    如果需要查看NAS文件系统中的内容,需要将NAS文件系统挂载到具体的ECS或容器上查看。具体操作请参见Windows系统挂载NFS文件系统推荐的挂载方式

  • 文件日志指定的目标路径,可以与NAS指定的存储路径相同吗?

    不可以。

EDAS容器服务K8s和Serverless K8s交流群

如果您在EDAS中使用容器服务K8s集群和Serverless K8s集群过程中有任何疑问或建议,请使用钉钉扫描下面的二维码或搜索钉钉群号23197114加入钉钉群进行反馈。

EDAS K8s/Serverless K8s交流群