当您在EDAS上进行应用部署、启动、扩容/缩容等操作时,应用变更记录将整个变更过程以可视化的方式展现给您。您可以直观的看到变更流程的进度。如果变更失败,您可以在变更详情中查询变更流程中哪些步骤执行失败了,以及失败的原因。
排查变更失败问题
执行应用变更操作后,可以跳转到应用详情页,通过变更流程排查变更失败问题。
在应用详情页面左侧的导航栏中单击变更记录。
如果某次变更失败,则在变更状态列会显示执行失败。
在变更记录页面执行失败的变更记录的操作列单击查看。
在变更详情页面的第一批部署(取决于您在部署该应用时设置的分批数。如果您设置了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应用则需要重置应用。重置后,容器会被停止、删掉,然后重建。这样磁盘空间就会被释放出来。
缺少服务关联角色导致变更失败
可能原因
由于您的账号没有开通服务关联角色AliyunServiceRoleForAutoScaling。该角色可以使弹性伸缩服务获得关联云资源的访问权限,例如ECS、VPC等的访问权限。
处理方法
在ESS控制台开通服务关联角色AliyunServiceRoleForAutoScaling。