更新时间:2020-12-29 15:59
本文以转账应用的发布、变更及监控为例,介绍运维管理模块中的各个组件的功能:
在 应用管理 中创建名为 transfer money 的应用。技术栈选择 SOFABoot 2.0 版本。具体步骤参考 创建应用。
在 容器应用服务 中创建以下 2 个应用服务,参考 创建应用服务。
创建转账服务端的应用服务,名为 aks-transfermoney-server。
涉及到的配置信息如下:
基本信息和 Pod 模版配置:
registry-vpc.cn-shanghai.aliyuncs.com/sofa-samples/aks-transfermoney-server:20190726095608708-master.40215e87
。APPSVC_VERSION = V1
,ANTCLOUD_SOFA_PROFILE = prod
。/health/readiness
,访问端口 8080
。其余项按照输入框提示配置。/home/admin/release/run/logs/aks-transfermoney-server/digest/*.log
。/home/admin/release/run/logs
、/home/admin/release/run/logs/aks-transfermoney-client/digest/transfermoney.log
。弹性配置:Server 开启副本弹性扩缩容功能,最小副本数 1,最大副本数 4。根据 CPU 使用率 50% 进行弹性扩缩容。即在副本数允许的情况下,确保 CPU 使用率在 50% (实际使用 / 请求资源量) 水位之下。可添加多个指标,如匹配内存共同使用,弹性规则 replica count 取最大期望值进行下发操作。
访问配置:Server 使用 ClusterIP Service,允许集群内访问。端口映射设置为 TCP 协议,访问端口 80,容器端口 8341。需记录下这个 Service Name,需要以环境变量形式配置到客户端应用。
发布配置:都保持默认设置。
创建转账客户端的应用服务,名称为 aks-transfermoney-client。
涉及到的配置信息如下:
基本信息和 Pod 模版配置:
registry-vpc.cn-shanghai.aliyuncs.com/sofa-samples/aks-transfermoney-client:20190815134744553-master.5ea6278b
。SERVER_TM_ADDRESS
,值为 Server 端 Service Name。/home/admin/release/run/logs
。弹性配置:Client 使用固定副本数 1。每个 client 能够压测并发上限为 1000。
访问配置:Client 绑定公网 SLB Service,前端端口 80 ,后端端口 8341。其余为默认值。
发布配置:保持默认设置。
在 client 应用服务详情页面的 服务 页签中获取到刚刚创建的 SLB Service 公网 IP 地址。
在本地执行以下 curl 命令,以 1000 并发启动客户端进行批量调用服务。
# 启动,最高并发1000
# 转账client因高并发 (max 1000)导致实例宕机,系统会自动重启容器应用
curl -X POST "http://$Money_Client_SERVICE_IP/webapi/transferclient/start?concurrency=1000&minamount=100&maxamount=100"
# 统计
curl http://$Money_Client_SERVICE_IP/webapi/transferclient/gauges
# 停止
curl -X PUT "http://$Money_Client_SERVICE_IP/webapi/transferclient/stop"
在 实时监控 的 自定义监控 页面,创建如下各种维度的监控项:
服务端响应请求的容器所在 Cell:
/home/admin/release/run/logs/aks-transfermoney-server/digest/transfermoney.log
。应用版本:
/home/admin/release/run/logs/aks-transfermoney-server/digest/transfermoney.log
。客户端记录的 HTTP 访问结果码:
/home/admin/release/run/logs/aks-transfermoney-client/digest/transfermoney.log
。转出账户名称按分钟的 Top 统计:
/home/admin/release/run/logs/aks-transfermoney-server/digest/transfermoney.log
。转入账户名称按分钟的 Top 统计:
/home/admin/release/run/logs/aks-transfermoney-server/digest/transfermoney.log
。分钟级客户端调用统计:
/home/admin/release/run/logs/aks-transfermoney-client/digest/transfermoney.log
。在 自定义监控 页面,新建 TransferMoney 大盘,配置如下:
针对某个监控项或者所有监控项进行报警规则设置和报警订阅。
例如:以下配置对分钟级客户端调用统计 (transferclient_status_minutes) 监控项,配置报警规则,即一旦延迟 (所有 HTTP code)或错误(非 HTTP 200)在 1 分钟内 latency 时延指标到达一定程度后就报警。
在本地执行以下 curl 命令,以 1500 并发启动客户端进行批量调用服务。
curl -X POST "http://$Money_Client_SERVICE_IP/webapi/transferclient/start?concurrency=1500&minamount=100&maxamount=100"
查看 Server 应用服务的实例数扩容情况。
之前对 Server 应用服务的弹性配置为 1 ~ 4。client 端压力启动后,Server 实例数很快会达到最大实例数 4。实时监控大盘亦开始展示相关数据趋势。上限并发到一定程度会引发 OOM(内存不足)。
在 Server 应用服务详情页,点击 快捷操作 > 扩缩容,扩容到 10 个实例,点击 提交。提交后会自动生成发布单,点击 整体发布 进行发布。
可以看到此次发布单因为只进行弹性配置变更,会很快生效。
在本地执行以下 curl 命令,停止 client 端调用。
curl -X PUT "http://$Money_Client_SERVICE_IP/webapi/transferclient/stop"
查看 Server 应用服务的实例数缩容情况。
Server 实例数很快会跌回最小实例数 1。实时监控大盘亦开始展示相关数据趋势。
在文档使用中是否遇到以下问题
更多建议
匿名提交