2016-04-14 55 views
3

我試圖在2臺Tomcat服務器上運行GCE上的負載平衡器,它們分別在2臺虛擬機上運行(vm-1vm-2)。兩者都在端口80上偵聽,並且網絡防火牆規則允許來自任何來源的端口80上的流量(0.0.0.0/0)。 現在,我創建了一個名爲vm-group的這兩個虛擬機的實例組,並設置名爲http的指向端口80負載均衡器:運行狀況檢查無故失敗

我也在端口80上創建了一個健康檢查,指向/<app_name>/<health_url>,如果該應用程序健康,則報告HTTP 200。

然後,我使用this video中的指令設置HTTP負載平衡器。安裝完成後,我發現負載平衡器報告0/2實例是健康的,這意味着健康檢查失敗。

當我手動打開健康檢查網址時,他們會返回一個HTTP 200 - 所以我的應用程序很健康。

現在,我不知道爲什麼負載平衡器報告虛擬機不健康,無法路由請求。我怎樣才能進一步調試呢?

編輯:我確認google-address-manager正在運行,如this question中所述。

+0

你可以運行'gcloud計算http健康檢查描述healthcheck-name'並粘貼結果在你的問題的結尾? – Grzenio

回答

2

我有同樣的問題。另外使用gcloud工具時:

gcloud compute backend-services get-health mybackendservice 

我得到

- healthState: UNHEALTHY 
    instance: https://www.googleapis.com/compute/v1/projects/myproject/.../instances/mycluster-4gim 
    port: 8000 

的問題是,在後端服務HTTP定義的健康檢查,使用(沒有使用https)和端口號80。找不到解釋對於這種差異。

+0

原來,端口號取自實例組設置(端口名稱映射部分)。但健康檢查仍然不起作用... – fuego666

1

原來,端口號取自實例組設置(端口名稱映射部分)。但是,健康檢查還沒有工作...含作爲實例組

gcloud compute target-pools get-health targetpoolname 

--- 
healthStatus: 
- healthState: HEALTHY 
    instance: https://www.googleapis.com/compute/v1/projects/inst 
    ipAddress: an.ip.addr.es 
kind: compute#targetPoolInstanceHealth 
--- 

...

2

你有沒有加入谷歌的運行狀況檢查你的防火牆列表相同的情況下,目標池比較檢驗成果: 130.211.0.0/22