编辑: 摇摆白勺白芍 | 2019-07-11 |
8089 protocol: http 服务配置没有挂载到正确的位置 Mesh 应用相关 最近更新时间:2019-04-12 16:58:43 腾讯微服务平台 版权所有:腾讯云计算(北京)有限责任公司 第9 共18页 在容器环境下,排查业务是否在容器的启动脚本中,把spec.yaml 和apis 目录(可选),拷贝到挂载路 径/opt/tsf/app_config 下面. 在虚拟机环境下,排查业务程序包根目录下面,是否存在 spec.yaml 以及 apis 目录(可选),如果没有,则 需要修改. 通用排查方法: a. 检查 pilot-agent 加载配置文件的绝对目录. 输入: curl 127.0.0.1:15020/config/agent|grep appConfigDir , 输出: appConfigDir: /data/demo/shopService 代表 pilot-agent 会从 /data/demo/shopService 中加载 spec.yaml. b. 确认 appConfigDir 指向的目录存在 spec.yaml. 2. 查看健康检查返回 登录应用所在的容器或者虚拟机,通过调用本地的健康检查路径,查看返回码是否为200,如果不是200,证明服务 存在健康问题.详情参考 TSF Mesh 开发指引. curl -i -H '
Host: local-service'
{ip}:{Port}/ 3. 通过运维接口查看 sidecar 相关信息 登录应用所在的容器或者虚拟机,调用 pilot-agent 的运维接口,查看 sidecar 容器的相关状态信息. 查看接口列表 调用 GET 127.0.0.1:15020/help 接口查看接口列表: [root@TENCENT64 ~/pilot-agent/op]# curl 127.0.0.1:15020/help admin commands are: GET /health: print out the health info for data-plane GET /config_dump/{component}: print out the configuration of the component, component can b e pilot-agent/envoy/mesh-dns GET /help: print out list of admin commands GET /config/agent: print out the pilot-agent configuration GET /config/services: print out the services info GET /config/global: print out the global mesh configuration GET /config/envoy: print out the envoy startup configuration GET /version: print out the pilot-agent version GET /version/{component}: print out the version of the component, component can be pilot-age nt/envoy/mesh-dns GET /latest_error: print out the latest error info GET /status: print out the status, result could be , , , <
SERVICE_REGISTERED>
GET /epoch/{component}: print out the component restart epoch, component can be envoy/mesh -dns POST /hot_restart/{component}: hot restart the component process, component can be envoy/mes 腾讯微服务平台 版权所有:腾讯云计算(北京)有限责任公司 第10 共18页h-dns PUT /update: Update the component PUT /logging/{scope}/{level}: dynamic change logging level, scope can be healthz/admin/ads/def ault/model, level can be info/warn/error/none/debug 查看版本号 调用 GET 127.0.0.1:15020/version 接口查看版本号: [root@TENCENT64 ~/pilot-agent/op]# curl 127.0.0.1:15020/version 1.0.13.release-20190225_103608 查看 sidecar 健康状态 调用 GET 127.0.0.1:15020/health 接口查看 sidecar 健康状态: [root@TENCENT64 ~/pilot-agent/op]# curl 127.0.0.1:15020/health { envoy :{ status : UP }, mesh-dns :{ status : UP }, status : UP } 如果出现部件不健康的组件(status 不为 UP),或者接口调用失败,则需要通过通过 提交工单 联系后台运维人 员处理. 4. 调用 clusters 接口 登录应用所在的容器或者虚拟机,调用 envoy 的clusters 接口,查看本地 cluster(格式为 in#port#serviceName)是否存在或者健康状态是否 healthy. 输入: curl http://127.0.0.1:15000/clusters 输出: in#8080#reporttimeb::default_priority::max_connections::1024 in#8080#reporttimeb::default_priority::max_pending_requests::1024 in#8080#reporttimeb::default_priority::max_requests::1024 in#8080#reporttimeb::default_priority::max_retries::3 in#8080#reporttimeb::high_priority::max_connections::1024 in#8080#reporttimeb::high_priority::max_pending_requests::1024 in#8080#reporttimeb::high_priority::max_requests::1024 in#8080#reporttimeb::high_priority::max_retries::3 in#8080#reporttimeb::added_via_api::true in#8080#reporttimeb::9.77.7.132:8080::cx_active::0 腾讯微服务平台 版权所有:腾讯云计算(北京)有限责任公司 第11 共18页in#8080#reporttimeb::9.77.7.132:8080::cx_connect_fail::0 in#8080#reporttimeb::9.77.7.132:8080::cx_total::4 in#8080#reporttimeb::9.77.7.132:8080::rq_active::0 in#8080#reporttimeb::9.77.7.132:8080::rq_error::0 in#8080#reporttimeb::9.77.7.132:8080::rq_success::4 in#8080#reporttimeb::9.77.7.132:8080::rq_timeout::0 in#8080#reporttimeb::9.77.7.132:8080::rq_total::4 in#8080#reporttimeb::9.77.7.132:8080::health_flags::healthy in#8080#reporttimeb::9.77.7.132:8080::weight::1 in#8080#reporttimeb::9.77.7.132:8080::region:: in#8080#reporttimeb::9.77.7.132:8080::zone:: in#8080#reporttimeb::9.77.7.132:8080::sub_zone:: in#8080#reporttimeb::9.77.7.132:8080::canary::false in#8080#reporttimeb::9.77.7.132:8080::success_rate::-1 如果 cluster 不存在,则需要通过通过 提交工单 联系后台运维人员处理. 如果状态不为 healthy,则执行后续步骤. 5. 调用 config_dump 接口 登录应用所在的容器或者虚拟机,调用 envoy 的clusters 接口,查看本地的路由配置信息: curl http://127.0.0.1:15000/config_dump -o config.json 通过 vi 打开 config.json 文件,并查找 in#8080#reporttimeb(本地 cluster,格式为 in#port#serviceName), 查看配置中的服务地址(address)、端口(port_value)是否正确. 健康检查信息 health_checks、熔断配置 circuit_breakers 是否正确.如果不正确,且确认服务没有被熔断,则需 要通过 提交工单 联系后台运维人员处理. dynamic_active_clusters : [ { version_info : 2018-10-17T11:31:50+08:00 , cluster : { name : BlackHoleCluster , connect_timeout : 1s }, last_updated : 2018-10-16T19:31:41.792Z }, { version_info : 2018-10-17T11:31:50+08:00 , cluster : { name : in#8080#reporttimeb , connect_timeout : 5s , hosts : [ 腾讯微服务平台 版权所有:腾讯云计算(北京)有限责任公司 第12 共18页{ socket_address : { address : 9.77.7.132 , port_value :