2017-02-07 92 views
4

如果我運行了http load balancer example,它在我的Google容器引擎項目中工作正常。當我運行「kubectl描述」後端是「健康」。如果我再出改變SVC一個指向我的應用程序如下所示:Ingress給出502錯誤

apiVersion: v1 
kind: Service 
metadata: 
    name: app 
    labels: 
    name: app 
spec: 
    ports: 
    - port: 8000 
    name: http 
    targetPort: 8000 
    selector: 
    name: app 
    type: NodePort 

我運行的應用程序的背後是gunicorn Django和工程只是發現,如果我做的是一個負載平衡器,而不是NodePort 。

apiVersion: extensions/v1beta1 
kind: Ingress 
metadata: 
    name: main-ingress 
spec: 
    backend: 
    serviceName: app 
    servicePort: 8000 

現在,當我運行「kubectl描述了ing」的後端被列爲「不健康」和入口IP的所有請求給予502

  1. 是502的健康狀況不好的症狀檢查?
  2. 我需要做些什麼才能使健康檢查通過?我很確定運行我的應用程序的容器實際上是健康的。我從來沒有設置健康檢查,所以我假設我必須配置一些沒有配置的東西,但我的谷歌搜索沒有得到我的任何地方。

回答

10

經過大量挖我的找到了答案: 據這裏的要求:https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/cluster-loadbalancing/glbc#prerequisites應用程序必須以「/」返回200狀態碼。因爲我的應用程序正在返回302(重定向到登錄),所以運行狀況檢查失敗。當健康檢查失敗時,入口資源返回502.

+0

我認爲你可以接受你的答案。我面臨同樣的問題,並通過你的方法解決它。謝謝! –