文档中心 > 容器服务

EWS服务部署常见问题

更新时间:2019/09/04 访问次数:6232

 

一、部署报错常见问题

1、no space left on device

主机上磁盘空间不足导致的,请先排查并清理。学会使用df -h,du --max-depth=1 -h等指令。

1)/acs目录(容器运行时挂载出来的目录)

比如应用指定日志目录为/acs/log(对应主机的/acs/容器id/log),日志文件过大,

找到该容器,docker stop {容器id},删除相关日志

 

2)/var/lib/docker目录(docker自身文件系统目录),清理docker数据并重启docker

systemctl stop docker

rm -rf /var/lib/docker/ (docker目录,具体看机器,有的指定了docker运行目录为/docker)

systemctl restart docker

同时参考问题2

 

3)其他目录,看情况清理

 

2、docker目录占用空间越来越大?docker目录沾满磁盘?删除容器之后也无法释放?

/devicemapper/data文件过大,/var/lib/docker/devicemapper/devicemapper/data,docker的所有镜像、缓存资源都会存储在devicemapper这个目录下,主机上所有容器的数据都会存储到该目录,容器运行过程中这个目录可能会越来越大。

解决方法:

1)主机上清理docker数据,重启docker

systemctl stop docker

rm -rf /var/lib/docker/ (docker目录,具体看机器,有的指定了docker运行目录为/docker)

systemctl restart docker

2)页面上删除属于该机器上的容器,重新添加容器

 

最佳实践:容器中应用的日志存在volume目录/acs/log中(实际占用的是ECS主机目录/acs/容器id/log),并设置好日志轮转

 

3、Cannot restart container XXX System error: can't create pivot_root dir , error mkdir,... .read-only file system

容器运行过程中,docker挂载设备I/O异常导致的可读写配置自动更改。需要把容器删除重建

1)主机上docker stop 容器id,docker rm 容器id

2)EWS页面上删除容器,并重新添加

 

4、上传部署,上传进度一直为0,无法拖拽添加文件等

浏览器缓存问题,清理缓存或者切换隐私模式后重试 

 

5、Error running DeviceCreate,dm_task_run failed

解决方案:

1.登录到容器所在的ECS宿主机,

2.停止docker

systemctl stop docker.service

3.修复docker元数据
thin_check /var/lib/docker/devicemapper/devicemapper/metadata
thin_check --clear-needs-check-flag /var/lib/docker/devicemapper/devicemapper/metadata

4.重启docker
systemctl start docker.service

 

6、device or resource busy

原因:docker本身存在一定的bug,docker文件系统的命名空间和主机上其他进程的命名空间冲突。

解决方法1:找到并停止设备使用的其他进程(比如定位到是nginx或ntpd等),重新启动容器(暂时解决)

参考: https://blog.csdn.net/o_nikyo_o/article/details/79379107

https://blog.csdn.net/xiaoxiao__cc/article/details/82387999

解决方法2:升级docker版本

docker版本比较低(用户自己安装的),可以考虑升级docker到EWS目前使用的18.09.3版本

 

7、dial unix /var/run/docker.sock: connect: connection refused

主机上docker文件系统有问题,一般不会遇到,如果出现了,需要清理主机上的docker数据并重启。

systemctl stop docker

rm -rf /var/lib/docker/ (docker目录,具体看机器,有的指定了docker运行目录为/docker)

systemctl restart docker

 

二、其他部署问题

1、编译部署编译过程出错,如下图:

代码编译过程中出错,请提EWS工单,提供EWS服务名称以及使用的git仓库。

 

2、编译部署发布过程出错,"执行操作时遇到异常,请稍后重试",如下图

 

检查项:打包的配置,编译后war包(有且仅有一个)是否在项目根目录/target目录

正确的pom配置示例:

在本地测试打包是这样的,war包在根目录/target目录

 

错误案例:

一个项目,多个module,每个module的pom打一个war包,编译打包后war包存在根目录/子modul目录/target目录下,编译部署无法通过。问题1,根目录/target目录下找不到war包;问题2,不支持多个war包部署到一个容器中,需要合并进一个war包(一个web module中),或者分成多个应用部署

  

3、FAIL 轮询指令结果 exit status 1

1)排查是否是上传部署使用的代码包损坏的原因

可以在本地执行unzip解压代码包(从服务列表-历史版本部署下载最新上传的代码包)看下结果,含有"attemption to process anyway"提示的均是代码包异常

2)如果是代码包异常,请重新打包上传

 

4、FAIL 轮询指令结果 exit status 9

1)排查下是否是open api中代码包的下载有问题,如下载地址访问404 403

2)如果使用的是HTTP上传部署,请尝试使用本地上传部署,先将代码包下载到本地,载上传本地zip包或war包

3)检查代码包是否可以正常解压,本地执行unzip看是否有报错

4)如果不是代码包的问题,请提供机器公网ip和ssh登录的root密码(确保有公网ip以及22端口打开),提交EWS工单处理

 

5、FAIL 轮询指令结果 net/http:request canceled

1)重新部署试试

2)如果使用的是HTTP上传部署,请尝试使用本地上传部署,先将代码包下载到本地,载上传本地zip包或war包

3)如果重试还是报错,那就需要检查代码问题了。

检查下连接rds,连接redis等,是否能连接畅通。例如排查php error log,或通过(主机上执行)docker logs 容器id查看

 

6、FAIL 解绑接入层 解除接入层(TENGINX) ac-ac-110 VPC接入层网络初始化中

EWS分配的端口不够使用,后台需要初始化增加端口。请等待3-10分钟后重新部署

FAQ

关于此文档暂时还没有FAQ
返回
顶部