420
阿裏雲
路由服務常見問題__常見問題_產品使用問題_容器服務-阿裏雲
Q:我想簡單體驗下容器服務,部署一個 web 容器,且能夠訪問,有示例嗎?
A:有,示例包括 通過鏡像創建 Nginx,通過編排模板創建 WordPress,示例指導您如何簡單快速地部署應用。
Q:如何使用 routing 服務?
A:參見示例 通過 acsrouting 路由應用暴露 HTTP 服務。
Q:如何使用 routing 標簽?
A:參見服務編排文檔 標簽說明。
Q:我部署了一個 web 類型容器,如何能夠訪問到這個容器裏麵的內容?
A:容器技術沒有黑魔法,一個容器就是一個或者一組進程,進程需要暴露端口,用戶才能訪問到容器裏麵的內容。容器抽象出了容器的端口,與主機的端口相映射。我們可以通過訪問與容器映射了的主機端口訪問到容器。
Q:為了做到高可用,我們會使用多個相同功能的容器,隻提供一個訪問的端點,這在容器服務中是如何做到的呢?
A:如下圖所示,我們提供了一個 routing 服務(通過 服務 > 變更配置 > web 路由規則 進行配置),routing 服務會默認在集群的每個節點部署一個 routing (創建集群之後,您會在容器列表中看到,屬於 acsrouting 應用)容器,所有請求先走集群的(創建集群會默認創建一個負載均衡實例)負載均衡前端80端口 > 節點9080端口 > routing 容器 80 端口。routing 容器的底層實現是一個 HAProxy 負載均衡軟件,類似 Nginx,提供負載均衡功能。routing 容器是根據 HTTP 協議中的 “HOST” header 指定的域名來轉發到不同的容器後端的(在同一個集群中,容器與容器之間是網絡互通的)。您在進行路由配置時,一定要注意負載均衡的端口,節點 vm 的端口與容器端口的區別和聯係。
Q:如何給暴露公網的服務添加域名,並支持 HTTP 協議?
A:參見鏈接 給暴露公網的服務添加域名。
Q:如何將 HTTP 協議轉換成 HTTPS 協議?
A:參見鏈接 將暴露的 HTTP 服務修改為 HTTPS 服務。
Q:如何將 HTTP 請求跳轉為 HTTPS 請求?
A:首先我們要區分請求的協議是 HTTP 還是 HTTPS。如果是 HTTP 協議,則通過 301 或者 302 跳轉到 HTTPS。但是當 HTTP 請求和 HTTPS 請求分別通過負載均衡的 80 和 443 端口轉發到後端相同的端口(例如 9080 端口)時,後端的容器是沒有辦法區分該請求的協議是 HTTP 還是 HTTPS 協議的。解決的辦法是,通過額外暴露一個端口(例如 8080 端口)將 HTTP 的請求走如下鏈路:負載均衡前端 80 端口 > 節點主機 vm8080 端口 > 專門用作跳轉處理的容器,例如 Nginx 80 端口 > 返回 302 跳轉。
Q:為什麼負載均衡 HTTP 協議的端口顯示異常?
A:負載均衡的 HTTP 協議端口健康檢查失敗,就會顯示異常。健康檢查的原理很簡單,就是發送一個 HTTP 的 HEAD 請求(與 GET 請求類似,但是隻需要返回響應頭即可),用戶需要配置 HTTP 請求的域名,默認是 IP,如果請求返回 200,負載均衡才認為健康檢查是正常的。解決辦法是繞過負載均衡,直接在您的主機節點上通過 curl 命令探測請求是否正確返回 200。
Q:為什麼負載均衡 HTTPS 協議的端口顯示異常?
A:負載均衡的 HTTPS 協議端口健康檢查失敗,就會顯示異常。健康檢查的原理很簡單,就是發送一個 HTTP 的 HEAD 請求(與 GET 請求類似,但是隻需要返回響應頭即可),用戶需要配置 HTTP 請求的域名,默認是 IP,如果請求返回 200,負載均衡才認為健康檢查是正常的。用戶如果配置的是 HTTPS 協議端口,請注意一定要在配置健康檢查的時候配置請求的域名,否則默認健康檢查是會失敗的(默認配置的 IP 請求到 routing 容器,routing 容器不知道該轉發到哪個後端,返回 503 報錯)。檢查辦法是繞過負載均衡,直接在您的主機節點上通過 curl 命令探測請求是否正確返回 200,如果沒有返回,請檢查應用的正確性。
Q:集群的負載均衡是否支持綁定內網負載均衡,是否支持解綁?
A:集群支持綁定至多一個負載均衡實例,同時支持解綁定,參見 設置集群根域名 中的 綁定負載均衡。
Q:集群支持綁定多個集群級別的負載均衡嗎?
A:目前不支持。用戶可以通過手動創建負載均衡綁定到集群節點的 9080 端口,當節點伸縮擴容時,用戶需要自己維護自己創建的負載均衡的後端服務器,例如添加或者減少後端服務器。
Q:同一個集群內,容器和容器之間如何通信?
A:同一個集群內,容器訪問另外一個容器,可以直接使用容器名當作內部域名進行訪問。
Q: 同一個集群內,容器和容器之間如何進行服務發現和負載均衡?
A:通過路由服務代理進行轉發和發現。參見示例 基於容器服務實現 Docker 微服務間的負載均衡和自動服務發現的方法。
Q:路由服務訪問鏈路的問題,如何排查?
A:排查方法參見 訪問鏈路問題排查。
Q:既可以通過應用模板的 aliyun.routing.port_$container_port
設置 web 路由規則,也可以通過服務的 變更配置 設置 web 路由規則,區別是什麼?
A:本質是一樣的。通過應用模板的 aliyun.routing.port_$container_port
設置 web 路由規則會反映在服務的 變更配置 的 web 路由規則上,但是反過來則不會。通過服務的 變更配置 設置 web 路由規則,隻是便於用戶在控製台使用,同時方便錯誤檢查和校驗。其實現也就是把這個表單變成應用模板的一個 label,然後再去更新服務的配置。
Q: 我希望對負載均衡做更多的配置,默認的路由服務不支持,怎麼辦?
A:我們提供了一個自定義代理的鏡像 registry.aliyuncs.com/acs/proxy,該鏡像的底層實現是 HAProxy,支持對 HAProxy 各種定義的參數化配置,同時支持動態的服務發現,即根據服務的健康狀況,正確地路由到健康的容器中。
最後更新:2016-11-02 10:16:14
上一篇:
訪問鏈路問題排查__常見問題_產品使用問題_容器服務-阿裏雲
下一篇:
如何申請備案服務號?__產品驗證_備案流程_備案-阿裏雲
ALIYUN::ECS::ForwardEntry__資源列表_資源編排-阿裏雲
RDS數據源配置__數據源配置_數據同步手冊_用戶操作指南_大數據開發套件-阿裏雲
采集-日誌管理__最佳實踐_日誌服務-阿裏雲
如何通過企業對公帳號打款認證完成企業實名認證__實名認證_帳號實名認證_會員賬號&實名認證-阿裏雲
刪除文件__快速入門_對象存儲 OSS-阿裏雲
ARMS Open API 說明__API 參考_業務實時監控服務 ARMS-阿裏雲
SSH 服務啟動時出現如下錯誤:error while loading shared libraries__遠程登錄 (SSH)_Linux操作運維問題_雲服務器 ECS-阿裏雲
庫表列映射__數據遷移_用戶指南_數據傳輸-阿裏雲
雲服務器 ECS 網絡和安全性之網絡 IP 地址
ping 丟包或不通時鏈路測試說明__ECS常見問題_產品使用問題_雲服務器 ECS-阿裏雲
相關內容
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲