注意:以下文档只适用于TOP接口,请谨慎使用!

文档中心 > 容器服务

容器部署常见问题

更新时间:2020/01/16 访问次数:4359

1. 容器的健康检查是什么?

容器健康检查代表了容器的健康状态,当容器平台判断容器健康检查失败后,会自动重启容器,直到健康检查成功为止。

容器重启次数可以在“环境管理->管理资源”看到。

  

因此,配置正确的健康检查配置至关重要

容器健康检查配置入口如上图所示,主要有两种健康检查类型:

  • http get:系统会定时通过http请求用户配置的URL,注意URL不能包含host字段。例如URL配置为“/checkpreload.htm”,端口配置为"8080",则系统会定时执行检查"curl http://localhost:8080/checkpreload.htm",并判断http的返回码是否为200。若http get返回200,则认为健康检查成功,反之认为健康检查失败。
  • shell script:系统会定时执行脚本内容,若脚本执行的返回值为0(类似 exit 0)则认为健康检查成功,否则认为失败。 

2. 如何排查部署一直不成功的问题?

在部署单详情页可以看到当前部署实例的日志。

点击查看日志可以看到当前容器的启动日志。

 

主要关注两个类型的日志:

  1. [Event]类日志,如下图所示。尤其注意Event日志中的Warning,通常是导致部署不成功的原因所在。如下图所示就是健康检查配置错误导致的启动不成功。

  1. 应用自身的启动日志。这里根据每个应用的不同,需要开发者自行排查。

 

3. 为什么我的应用一直在重启(应用实例远程连接一直闪断)?

 

请检查:

  1. 应用的健康检查配置是否正确
  2. 如果应用健康检查配置没有问题,就是应用自身不可用了,才会导致容器重启。(例如java堆内存泄漏导致java进程被cgroup干掉)

 

4. 从哪里可以看到容器内的应用日志?

可以在“环境管理->管理资源->远程登录”登录到对应的应用实例内,查看应用日志。

 

如果选择了官方镜像,官方镜像的应用日志通常在容器内/acs/log/目录下

 

5. 为什么容器规格无法完全占用ECS的规格?

接入容器集群后,ECS上会额外部署一些管控使用的容器,因此会占用少量资源。但是总体占用资源并不会太大,如果出现容器可使用规格和ECS规格差距太大的情况,请联系技术支持同学。

 

6. 为什么SLB流量接入找不到负载均衡?

请确认几个事情:

1. 所购买的SLB所属VPC和容器集群所属VPC是否相同(容器集群所属VPC在“运维中心”可以看到)。

2. 环境是否选择正确。通常环境会关联容器集群,正式环境和测试环境的集群不同,会影响到所属VPC,进而影响SLB的选择。

3. 确认内外网类型是否选择正确。内网访问只能选择购买的私网SLB,外网访问对应选择外网SLB。

 

 

7、购买ecs的时候需要购买公网带宽吗?还是公网带宽通过slb购买?

购买ecs的时候可以不购买带宽,公网入方向的话可以通过公网SLB来,出方向通过NAT网关和弹性IP来解决。

8、程序包管理是什么意思?

这个程序包管理就是使用哪一个代码包发布,如果代码包有更新的话就是在发布管理里新建一个发布单。

 

8、程序包管理是什么意思?

这个程序包管理就是使用哪一个代码包发布,如果代码包有更新的话就是在发布管理里新建一个发布单。

 

9、Insufficient cpu  Insufficient memory

如果提示Insufficient cpu, 则说明集群cpu核数不足以支撑本次发布; 如果提示Insufficient memory, 则说明集群内存资源不足以支撑本次发布; 即添加到集群的ECS上,没有可以调度给容器的资源了。具体剩余资源可以在集群详情-基本信息里看到。

解决方案:

1)添加其他ECS或者垂直升级ECS规格

2)部署配置中,调小容器规格

然后重新提交一次发布单

使用集群部署,整个集群需要占用1.5C 1.5G的资源,这个量基本是固定的,如果集群内只有一台机器,那么机器可能就不会有多少可用资源了。举个例子,集群就一台2C 的机器,那么这台机器剩余可用的是0.5C左右,是没法部署1C的容器的。

集群占用具体计算规则见:

https://www.yuque.com/fczggw/ec07di/ebzv0t#lzsZC

 

10、当前发布环境下没有可用的集群

1)应用发布时候,选择的环境要和集群环境一样。比如现在只有一个正式环境类型的集群,那么只能部署应用的正式环境;

2)集群内需要有ECS节点

FAQ

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