文档中心 > 商家经营工具-开发指引

大促云应用操作手册

更新时间:2023/05/05 访问次数:4905

一、应用相关

1. 环境扩容


应用扩容是指针对应用的某个环境扩容应用实例,比如将应用实例个数从1个调整到2个。

请在「环境管理-实例管理-手动扩缩容」执行扩缩容操作。


image.png


注:

1)如果碰到应用扩容资源不足的问题(点击查看),请先去集群管理,扩容集群。再来扩容应用。

2)扩容或容器漂移时报错403 AccessDenied,请参考:点击查看

 

2. 调整容器的CPU和内存


应用的CPU内存配置决定了每个容器使用多少计算资源。

CPU/内存请求值:约束了容器最低的起始计算资源。

CPU/内存限制值:约束了容器最多可使用计算资源,内存用量超过该值,容器会因为OOM被强制Kill

请在「环境管理-实例管理-实例规格」调整容器的CPU以及内存。


image.png


容器实例的CPU和内存配置需要重新发布后生效。

 

3. 给应用配置健康检查探针


应用的健康检查配置至关重要,决定了容器是否可以正常对外提供服务。目前应用健康检查分为两类:

1)应用存活健康检查:指示应用是否是存活状态,如果健康检查失败并且达到一定阈值,会触发容器重启

2)应用就绪健康检查:指示应用是否已经准备好对外提供服务,如果健康检查成功,应用关联的SLB会自动enable对应的容器。

 

image.png


【重要】容器资源配置注意事项

1)HTTP健康检查HTTP CODE返回200为成功;脚本健康检查exit 0 为成功了;建议使用HTTP健康检查,对CPU等资源消耗更低。

2)注意配置合理的失败次数阈值:为了防止抖动造成的容器频繁重启,请将失败次数阈值配置适当调大(与检查延迟配合,建议至少检查3分钟失败再重启,失败次数阈值*检查延迟 > 3min)。

 

4. 查看应用监控


应用视图,查看具体某个应用下的监控。

基础监控,提供了容器实例CPU 内存等基础指标监控视图。

事件监控(待上线),提供容器实例K8S Event异常事件,如容器重启、驱逐、探针失败等。


 image.png


5. 给应用配置告警


入口:左侧菜单栏-监控告警-应用告警。

地址:https://console.cloud.tmall.com/component/monitoralarm#/index

 

告警范围:

实例阈值告警,应用容器POD的各项指标,如CPU、内存使用量达到某个阈值;

实例事件告警,应用容器POD的各种异常事件,如容器重启、驱逐、探针失败、启动失败等;

 

说明文档:点击查看


1)设置实例阈值告警

为云应用-环境配置相应的阈值告警,支持规则模板复用,也可单独配置告警规则。


image.png


image.png


由于每个云应用的容器规格不一,建议对单个环境进行规则配置。


image.png


规则设置时,请按照容器规格的限制值进行合理配置。举个例子,当前环境CPU请求和限制值分别为2和4核。

如果想设置当CPU使用超过70%则进行告警,那么告警规则中可以设置4*0.7=2.8 core。


image.png


image.png

 

2)设置实例事件告警

前提:需要给集群安装节点探查组件,并且给集群开通事件告警。事件告警操作手册

组件安装好后,就可以为云应用环境配置Pod基本事件告警了:


image.png


image.png


关于告警联系人的设置:点击查看

关于事件类型选择:

目前,我们推荐配置四种类型,

① 通用warning;

② 容器重启;

③ 存活探针失败;

④ POD驱逐。

首先,通用warning包含了该应用下Pod容器级别的所有Warning事件,比如实例重启探针失败驱逐等,能够比较广泛的感知到节点上的一般异常警告事件。容器重启,很多云应用都会出现运行一段时间自动重启的现象,一般是由于配置了健康检查且健康检查失败导致,会伴随有探针失败等事件。POD驱逐,也是云应用运行过程中很容器导致业务稳定性稳定的事件,一般是由于节点异常或者节点资源使用达到集群阈值(特别是系统盘磁盘不足)。综上,这几种事件类型强烈建议配置上。

异常事件参加解决方案:点击查看


二、网络相关

1. EIP升配


通过 资源视图 - 弹性公网 IP 进入列表页如下图,找到需要升配的 EIP。


image.png


列表最右侧点击变配,即可调整带宽大小(预付费只可升配,可以点击短期升配到时间后会自动降配)。


2. NAT 绑定共享带宽


1)购买共享带宽


image.png


根据需要选择共享带宽的类型。


2)添加 EIP 到共享带宽


a.直接在共享带宽页面点击添加 IP。


image.png


b.到弹性公网 IP 列表页进行添加。

直接在共享单款一栏点击加入加入即可。

对于 预付费固定带宽 无法直接添加到共享带宽中,需要首先转换为后付费模式,之后才可以进行添加。


image.png

 

3. 共享带宽变配


在共享带宽列表,点击操作列中的更多操作,点击变配,即可改变提升或者降低带宽大小(预付费只可升配,可以点击短期升配到时间后会自动降配)。


image.png


4. NAT 绑定的多个 EIP


这里主要针对使用 按流量计费的EIP带宽资源不足 的情况。

EIP 绑定的维度为交换机或者 ECS,如果将 EIP 绑定到 ECS 上,则可以跳过第一步,即无需创建交换机。


1)创建交换机


image.png


创建是选择的专有网络需要与ECI所在集群的专有网络一致。


2)购买 EIP


image.png


选择后付费-按使用流量计费模式。


3)绑定 EIP 到 NAT


image.png


image.png


4)设置 SNAT


image.png


image.png


image.png


注:对于交换机维度的情况,一个交换机下的所有 ECS 均使用该交换机绑定的 EIP 访问公网,如果 ECS 分布不均,可能会导致部分 EIP 流量打满。


三、【重要】重点事件告警处理手册


具体各类异常事件介绍请参考: 点击查看

这里列出几个重要的事件类型。


1. 容器相关


1)容器重启

Container Restart

该事件表示应用实例(重启)重启,一般是由于配置了健康检查且健康检查失败导致,会伴随有Readiness probe failed和Liveness probe failed等事件。健康检查失败的原因有很多,通常情况下,比如进程OOM被Kill、比如高负载情况下应用无法正常响应(例如RDS瓶颈导致应用线程全部hang住),都可能会导致健康检查失败。

需要结合临近的相关事件定位具体的Pod重启原因。如伴随有集群节点相关的Out of memory事件,参考此文档上面Out of memory事件的解决方案;其他情况下,结合应用监控或者云产品自身监控来定位问题。

 

2)容器驱逐

The node was low on resource: xxxx

The node had condition: xxx

该事件表示Pod由于节点上的异常情况被驱逐,比如The node had condition: [DiskPressure],表示节点磁盘使用率比较高,通常会伴随有 failed to garbage collect required amount of images 和 Attempting to reclaim ephemeral-storage 等集群维度(节点)的异常事件。

需要结合临近的相关事件定位具体的驱逐原因。对于已经被驱逐的Pod实例,可以在聚石塔控制台,环境管理-管理资源-异常实例,进行查看和手动清理。

 

3)探针失败

Liveness probe failed

Readiness probe failed

由于应用存活/就绪探针失败而引发的异常事件。该事件可能会导致后续达到一定阈值之后,容器被动重启。具体要看应用就绪探针的配置。

需要结合应用存活/就绪探针的配置(点击查看),定位探针检查失败的原因。


2. 节点相关


1)节点OOM

System OOM encountered

Out of memory: Kill process

一般是操作系统把容器内进程Kill而导致的系统内核事件。比如一个java应用,当实际占用内存超过堆内存配置大小时,就会出现OOM错误。

Memory cgroup out of memory: Kill process

由于容器的内存实际使用量超过了容器内存限制值而导致的事件。比如容器的内存限制值配置了1Gi,而容器的内存随着容器内进程内存使用量的增加超过了1Gi,就会导致容器被操作系统Cgroup Kill。

 

2)节点资源不足

节点资源不足(EvictionThresholdMet),一般是节点资源将要达到阈值,可能会触发Pod驱逐。如 Attempting to reclaim ephemeral-storage(参考说明文档)

 

3)节点不可用

参考节点运维手册:点击查看

 

四、发布相关

异常排查


1)SLB流量接入返回503错误码

① 首先通过查看系统日志,看下后端是否有明显的报错日志。如果有明显的报错,则需要自己根据异常来判断错误原因;


查看日志方式:

i)如果已接入SLS并且通过SLS采集了系统日志,可以通过SLS查看;

ii)如果未接入SLS,可以通过下面的方式查看:应用发布 -> 环境管理 -> 管理资源 ,进入后点击应用实例后的 【远程登录】,然后查看自己的系统日志;


image.png

 

image.png


② 如果未发现明显的异常日志,则一般是SLB的规格过低导致连接被断开或拒绝,此种情况需要升级SLB的规格。

 

观察SLB负载情况:

聚石塔控制台 -> 资源视图 -> 负载均衡。


image.png


image.png

升级SLB规格:


image.png

 

2)流量太大导致发布不成功或卡住


如果发布时系统流量太大导致发布不成功或卡住,一般表现为:

i) 外部流量比平时正常情况下要高出较多;

ii) 应用实例刚开始能启动,但随后很快就被重启,发布单一直处于部署中状态;

 

① 先走应用实例扩容操作,保障应用水位处于一个相对较低的水位。


image.png


image.png


② (如果扩容成功,跳过此步)如果扩容起不来新的应用实例,说明已有的应用实例都处于假死状态,请按以下步骤解决:

 

a. 可以先将健康检查配置为肯定能成功的,比如:脚本类型的 return "success",优先保障pod能起来接收流量,并且调大应用实例数量,然后提交新的发布单;


image.png


b. 如果调整健康检查后扔未能扩容成功,一般不会出现这种情况;极端情况下可以考虑将外部流量暂时摘除,不让流量进来(SLB摘流方法参见下图)。此时再去扩容,扩容成功后再将流量引入。注意:流量摘除后对外的服务也将完全不可用,此方案请慎重执行。

 

(注意:下图为需要暂时摘流的方法,摘流后服务会中断不可用,请慎重操作)

image.png

③ 如果有功能变动或bug修复,在扩容成功后,再提交新的发布,发布时请将分批数量设置大点,保证处于服务中的应用实例数量。


FAQ

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