当您在 EDAS 上进行应用部署、启动、扩容/缩容等操作时,应用变更记录将整个变更过程以可视化的方式展现给您。您可以直观的看到变更流程的进度。如果变更失败,您可以在变更详情中查询变更流程中哪些步骤执行失败了,以及失败的原因。

排查变更失败问题

执行应用变更操作后,可以跳转到应用详情页查看应用变更,也可以通过变更流程排查变更失败问题。

  1. 在应用详情页面左侧的导航栏中单击变更记录

    如果某次变更失败,则在变更状态列会显示执行失败

  2. 变更记录页面执行失败的变更记录的操作列单击查看
  3. 变更详情页面的第一批部署(取决于您在部署该应用时设置的分批数。如果您设置了 2 批部署,则会有第一批部署第二批部署两个页面。)区域单击失败的阶段(如执行部署),在右侧实例中查看失败步骤的具体日志,定位问题。

应用变更典型异常及处理

下面介绍应用变更时的几种典型异常如何通过变更流程排查及处理。

  • 端口健康检查异常导致变更失败可能原因
    • 应用启动时应该被正常占用的 65000 端口不可访问。
    • 客户的 Tomcat 容器没有正常启动。
    处理方法

    查看应用日志是否有相应的异常日志。

  • URL 健康检查失败导致变更失败

    如果用户配置了健康检查 URL,应用在启动时会检查这个 URL 是否可以正常访问。在收到 Http code 为 200 的返回码后,应用发布流程才会继续进行。如果在 3 分钟的健康检查周期内都收到错误的响应(非 200),则认为 URL 健康检查失败。

    处理方法
    • 应用启动失败,需要检查应用日志是否正常启动。
    • 检查 URL 地址是否配置出错。
    • 检查应用是否配置了拦截器,拦截了对 HTTP 健康检查 URL 的请求。

    处理完成后,再次部署应用。

  • 磁盘满导致变更失败

    磁盘满会导致在变更流程中,应用长时间处于某个阶段。

    报错信息

    [EDAS-10000] 磁盘上没有剩余空间了No space left on device. Free space (for /home/admin) in bytes: 0exit 1。说明机器的磁盘满了,一般是应用的业务日志将磁盘打满了,此时需要用户清理应用日志。

    处理方法
    • ECS 集群应用需要登录 ECS 清理磁盘上的日志。
    • Swarm 集群下的 Docker 应用则需要重置应用。重置后,容器会被停止、删掉,然后重建。这样磁盘空间就会被释放出来。