首页 文章

Ingress给出502错误

提问于
浏览
6

如果我运行http load balancer example它在我的谷歌容器引擎项目中正常工作 . 当我运行"kubectl describe 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,并且工作只是发现我是否使用负载 balancer 器而不是NodePort .

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

现在,当我运行“kubectl describe ing”时,后端被列为“不 Health ”,并且对入口IP的所有请求都给出了502 .

  • 502是不良 Health 检查的症状吗?

  • 如何通过 Health 检查?我'm pretty sure the container running my app is actually healthy. I never set up a health check so I'假设我必须配置一些未配置的东西,但我的谷歌搜索并没有让我到处都是 .

2 回答

  • 16

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

  • 0

    在我们的例子中,外部端口和内部端口在values.yaml中被称为5000,但是服务正在侦听3000端口(在看到pod日志之后才知道),因此显示了502坏网关 .

    一旦我将外部端口和内部端口更新为3000并升级了该特定服务的部署,就能够看到所需的输出 .

相关问题