kubernetes - 入口随机给出 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 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, client: panopta-ip, server: mydomain.com, request: "GET /index.html HTTP/1.1", upstream: "http://100.96.12.84:8080/index.html", 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
解决方案
推荐阅读
- opengl - 着色器中最快的可写内存是多少?
- amazon-web-services - 创建一个显示 S3 存储桶中所有照片的照片库站点
- java - 即使在 java 中设置了关系,Hibernate 也没有在 mysql 中设置外键
- asp.net-core-webapi - 删除 ProducesResponseType 属性 webapi aspnetcore 2.1
- firebase - 如何在 ionic v1 中跟踪 Firebase 分析中的事件
- javascript - 如何执行过滤器和包含
- ios - 如何在iOS swift中使用firestore获取用户的帖子计数
- development-environment - 页面未在谷歌搜索控制台中索引
- swift - 即使在使用“准备”之后,ARKit 添加节点也会导致丢帧
- python - 如果值中的搜索项(值是列表),则获取 dict 的键