Ingress 随机给出 502 Bad Gateway Error

问题描述

我们在集群中使用 Nginx 作为入口控制器。

几天前,我们开始收到 panopta 不良网关中断电子邮件。 在入口日志中

panopta-ip - [panopta-ip] - - [29/Jun/2021:10:21:02 +0000] "GET /index.html HTTP/1.1" 502 157 "http://checks.panopta.com/" "Panopta v1.1" 185 0.000 [default-webapp-8080] 100.96.12.84:8080,100.96.12.84:8080,100.96.12.84:8080 0,0 0.000,0.000,0.000 502,502,502 f3114b9e52a8c5d354161984458f851c
2021/06/29 10:21:04 [error] 2759#2759: *121227793 connect() Failed (111: Connection refused) while connecting to upstream,client: panopta-ip,server: my-domain.com,request: "GET /index.html HTTP/2.0",upstream: "http://100.96.12.84:8080/index.html",host: "mydomain.com"
2021/06/29 10:21:09 [error] 2760#2760: *121228114 connect() Failed (111: Connection refused) while connecting to upstream,server: mydomain.com,request: "GET /index.html HTTP/1.1",host: "mydomain.com",referrer: "http://checks.panopta.com/"

日志说无法连接到 pod。

当我尝试在 chrome 中访问页面时,它会显示 Nginx 502 bad gateway 消息。 但是过一段时间会自动解决。 在搜索谷歌后,大多数链接都说它应该是 pod 问题(因为他们说问题与后端有关)

当问题再次出现时,我们将重新启动 pod,它会工作,但问题会在一段时间后重新出现。 因此,当问题再次出现时,我检查了从其他 pod 到 webapp pod 的连接。 其他 pod 能够通过该服务以及 pod 的 IP 进行连接。

所以我的问题是,当其他 Pod 能够连接时,为什么入口会出现与 Pod 的连接问题。 检查 webapp pod 和 ingress pod 日志后,我们重新启动了 ingress pod。 它现在没有任何问题。

有没有人遇到过类似的问题。

入口 yaml 文件

apiVersion: extensions/v1beta1
kind: Ingress
Metadata:
  annotations:
    certmanager.k8s.io/cluster-issuer: letsencrypt-prod
  name: web-app-ingress
  namespace: default
spec:
  rules:
  - host: mydomain.com
    http:
      paths:
      - backend:
          serviceName: web-app
          servicePort: 8080
        path: /mypage/
      - backend:
          serviceName: web-app
          servicePort: 8080
        path: /index.html
      - backend:
          serviceName: web-app
          servicePort: 8080
        path: /favicon.ico
  tls:
  - hosts:
    - mydomain.com
    secretName: mydomain.com-crt

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)