527
微信
访问链路问题排查__常见问题_产品使用问题_容器服务-阿里云
当您在容器服务中架设了一个 web 类型的容器,并通过 routing 将请求转发到这个服务器时,请求的链路是 client > DNS 域名解析 > 负载均衡 VIP > 负载均衡到集群中某一台 acsrouting 容器 > 转发到 web 容器,如下图所示。
使用该链路进行访问 ,我们称之为简单路由服务,在这整个链路过程中,任何一个环节发生问题,用户的请求可能都不能正确的到达web 容器。下面,我们从最容易发生问题的环节开发者的 web 容器的健康检查开始,来排查访问链路的问题。
问题排查路径指引
查看容器是否处于运行状态。
登录 容器服务管理控制台,单击左侧导航栏中的 应用,选择目标应用所在的集群并单击应用的名称,本示例中为 wordpress-test,如下图所示。
单击应用 wordpress-test 下提供 web 容器的服务的名称,本示例中为 web,如下图所示。
查看提供 web 服务的容器的健康检查状态。
在 容器 选项卡中,检查所有容器在 健康检测 这一列是否均为 正常。如果不正常,请查看相应的 日志 报错信息以及该页面的 事件 选项卡,查看部署是否发生异常。如设置了应用的 健康检查,需要确定健康检查页面返回 200,来确保健康检查的状态是正常的。如下图所示。
检查 web 容器页面响应是否正常。
如果容器的健康检查状态没有问题,需要绕过 routing 直接检查 web 容器的可访问性。如上图所示,可以查看到某个 web 容器的容器 IP,登录集群中某台机器的 routing 的容器,通过容器 IP 请求 web 容器的页面,如果返回的 HTTP 状态码小于 400,则 web 容器的页面正常。如下所示,
docker exec -it f171110f2fe2 sh
中f171110f2fe2
是容器 acsrouting_routing_1 的容器 ID,curl -v 172.19.0.7
中的 IP 地址172.19.0.7
是某个 web 服务的容器 IP 地址。如下所示,请求返回了状态码 302,说明 web 容器访问是正常的。root@c68a460635b8c405e83c052b7c2057c7b-node2:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b403ea045fa1 registry.aliyuncs.com/acs-sample/wordpress:4.5 "/entrypoint.sh apach" 13 seconds ago Up 11 seconds 0.0.0.0:32768->80/tcp w_web_2
025f7967cec3 registry.aliyuncs.com/acs-sample/mysql:5.7 "/entrypoint.sh mysql" About a minute ago Up About a minute 3306/tcp w_db_1
2f247b8a76e5 registry.aliyuncs.com/acs/ilogtail:0.9.9 "/bin/sh -c 'sh /usr/" 31 minutes ago Up 31 minutes acslogging_logtail_1
42b75bee6cd8 registry.aliyuncs.com/acs/monitoring-agent:latest "acs-mon-run.sh --hel" 31 minutes ago Up 31 minutes acsmonitoring_acs-monitoring-agent_2
0a9afa527f03 registry.aliyuncs.com/acs/volume-driver:0.7-252cb09 "acs-agent volume_exe" 31 minutes ago Up 31 minutes acsvolumedriver_volumedriver_2
3c1440fd114c registry.aliyuncs.com/acs/logspout:0.1-41e0e21 "/bin/logspout" 32 minutes ago Up 32 minutes acslogging_logspout_1
f171110f2fe2 registry.aliyuncs.com/acs/routing:0.7-staging "/opt/run.sh" 32 minutes ago Up 32 minutes 127.0.0.1:1936->1936/tcp, 0.0.0.0:9080->80/tcp acsrouting_routing_1
0bdeb8464c14 registry.aliyuncs.com/acs/agent:0.7-bfe8bdf "acs-agent join --nod" 33 minutes ago Up 33 minutes acs-agent
ba32a0e9e7fe registry.aliyuncs.com/acs/tunnel-agent:0.21 "/acs/agent -config=c" 33 minutes ago Up 33 minutes tunnel-agent
root@c68a460635b8c405e83c052b7c2057c7b-node2:~# docker exec -it f171110f2fe2 sh
/ # curl -v 172.19.0.7
* Rebuilt URL to: 172.19.0.7/
* Trying 172.19.0.7...
* Connected to 172.19.0.7 (172.19.0.7) port 80 (#0)
> GET / HTTP/1.1
> Host: 172.19.0.7
> User-Agent: curl/7.47.0
> Accept: */*
>
< HTTP/1.1 302 Found
< Date: Mon, 09 May 2016 03:19:47 GMT
< Server: Apache/2.4.10 (Debian) PHP/5.6.21
< X-Powered-By: PHP/5.6.21
< Expires: Wed, 11 Jan 1984 05:00:00 GMT
< Cache-Control: no-cache, must-revalidate, max-age=0
< Pragma: no-cache
< Location: https://172.19.0.7/wp-admin/install.php
< Content-Length: 0
< Content-Type: text/html; charset=UTF-8
<
* Connection #0 to host 172.19.0.7 left intact
/ #
验证 acsrouting 的正确性。
升级 routing 到最新版本,登录集群机器,请求 routing 健康检查页面,如下所示。
root@c68a460635b8c405e83c052b7c2057c7b-node2:~# curl -Ss -u admin:admin 'https://127.0.0.1:1936/haproxy?stats' &> test.html
将页面
test.html
拷贝到有浏览器的机器,用浏览器打开本地文件test.html
,如下图所示。查看相应的 web 服务和容器后端,第一部分为 stats 信息,为 routing 的统计信息,第二部分为 frontend 的统计信息,我们主要观察第三部分 backend 的信息,w_web_80_servers
表示名为 w 的应用下服务 web 的 80 端口的后端 servers 的信息。总共有三个 backend server,即后端有三个容器提供 web 服务,显示为绿色,表示 routing 容器到这三个容器的网络是连通的,在正常工作,显示为其他颜色则为异常。查看负载均衡 VIP 的转发是否正确,并查看健康检查的状态。
- 如下图所示,找到集群的负载均衡 VIP。单击 容器服务管理控制台 左侧导航栏中的 集群,选择相应的集群,本示例中为 routing-test-online。
- 单击该集群对应的 管理,进入集群详情页面。单击左侧导航栏中的 负载均衡,单击前往SLB控制台,进入该集群的负载均衡管理控制台页面。
- 查看负载均衡实例的服务地址,本示例中为 112.74.143.184。
- 查看负载均衡的端口健康状态。单击左侧导航栏中的 监听,状态 显示为 运行中 则表示端口正常。
- 查看负载均衡后端挂载的服务器的状态。单击左侧导航栏中的 服务器,健康检查状态 必须为 正常。
- 如下图所示,找到集群的负载均衡 VIP。单击 容器服务管理控制台 左侧导航栏中的 集群,选择相应的集群,本示例中为 routing-test-online。
查看域名是否正确解析到了负载均衡的 VIP。例如,使用
ping
命令或者dig
命令查看解析结果。域名解析的结果必须指向前面步骤查找到的负载均衡的 VIP 地址。如下所示。$ ping www.example-domain.com
$ dig www.example-domain.com
- 如果用户在创建集群时,没有选择默认创建集群负载均衡实例,由于简单路由服务依赖该集群负载均衡实例,因此用户需要额外绑定一个负载均衡实例来使用简单路由服务,具体方法参考绑定集群负载均衡实例
最后更新:2016-11-03 15:14:57
上一篇:
云监控ECS监控插件安装方法__技术分享_技术运维问题_云监控-阿里云
下一篇:
路由服务常见问题__常见问题_产品使用问题_容器服务-阿里云
基于OSS的移动开发__接入OSS_开发人员指南_对象存储 OSS-阿里云
酒店_阿里云帮助中心-阿里云,领先的云计算服务提供商
查询集群详情__集群_API参考_E-MapReduce-阿里云
阿里云推出新一代企业级ECS 让天下没有难做的生意
EipAddressSetType__数据类型_API 参考_云服务器 ECS-阿里云
阿里云栖大会明日开幕,9月重卡销量再增89%
安全管家应急服务能提供数据恢复服务吗?__常见问题_产品常见问题_安全管家服务-阿里云
根据 Topic 查询消息__消息管理相关接口_Open API_消息队列 MQ-阿里云
图片服务__开发人员指南_对象存储 OSS-阿里云
CreateMachineGroup__Logtail机器组相关接口_API-Reference_日志服务-阿里云
相关内容
常见错误说明__附录_大数据计算服务-阿里云
发送短信接口__API使用手册_短信服务-阿里云
接口文档__Android_安全组件教程_移动安全-阿里云
运营商错误码(联通)__常见问题_短信服务-阿里云
设置短信模板__使用手册_短信服务-阿里云
OSS 权限问题及排查__常见错误及排除_最佳实践_对象存储 OSS-阿里云
消息通知__操作指南_批量计算-阿里云
设备端快速接入(MQTT)__快速开始_阿里云物联网套件-阿里云
查询API调用流量数据__API管理相关接口_API_API 网关-阿里云
使用STS访问__JavaScript-SDK_SDK 参考_对象存储 OSS-阿里云