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-阿裏雲