如果我通过http load balancer example运行它,则可以在我的Google容器引擎项目中正常运行。当我运行“kubectl description ing”时,后端为“HEALTHY”。如果然后将svc更改为一个指向我的应用程序的svc,如下所示:

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 description ing”时,后端被列为“UNHEALTHY”,并且对入口IP的所有请求都给出502。
  • 502是健康检查不良的症状吗?
  • 我必须怎么做才能通过健康检查?我很确定运行我的应用程序的容器实际上是健康的。我从来没有设置过健康检查,所以我假设我必须配置一些未配置的东西,但是我的谷歌搜索并没有使我无处可去。
  • 最佳答案

    经过大量的挖掘,我找到了答案:
    根据此处的要求:https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/cluster-loadbalancing/glbc#prerequisites应用程序必须在“/”处返回200状态代码。因为我的应用程序返回了302(重定向到登录名),所以运行状况检查失败。当运行状况检查失败时,入口资源返回502。

    09-15 22:37