【问题标题】:epoll_wait() reported that client prematurely closed connection, so upstream connection is closed too while sending request to upstreamepoll_wait() 报告客户端过早关闭连接,因此上游连接在向上游发送请求时也关闭
【发布时间】:2020-03-20 11:40:09
【问题描述】:

我有一个网页,它运行良好。但是对于只有一个路径 /user/reg 它给出了 502 错误代码,因为该路径需要更多时间来处理,所以我已经向容器添加了活性和就绪性探测器,但仍然有同样的问题。我正在使用 Kubernetes 入口和 GCP 中部署的完整堆栈。

下面是我的入口配置

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  annotations:
      kubernetes.io/ingress.global-static-ip-name: "nonprod"
      ingress.kubernetes.io/force-ssl-redirect: "true"
      kubernetes.io/ingress.allow-http: "false"
      ingress.kubernetes.io/upstream-max-fails: "999"
      ingress.kubernetes.io/upstream-fail-timeout: "999"
  name: nonprod
  namespace: nonprod
spec:
  tls:
  - hosts:
    - hostname.example.com
    secretName: nonprod-tls
  rules:
    - host: hostname.example.com
      http:
        paths:
        - path: /*
          backend:
            serviceName: nonprod-nodeport
            servicePort: 80

下面是我的部署yaml

  image: gcr.io/image:v1
        livenessProbe:
          failureThreshold: 3
          httpGet:
            path: /
            port: 80
            scheme: HTTP
          initialDelaySeconds: 180
          periodSeconds: 10
          successThreshold: 1
          timeoutSeconds: 1
        name: drupal
        ports:
        - containerPort: 80
        readinessProbe:
          failureThreshold: 3
          httpGet:
            path: /
            port: 80
            scheme: HTTP
          initialDelaySeconds: 180
          periodSeconds: 10
          successThreshold: 1
          timeoutSeconds: 1
        resources:
          limits:
            cpu: "1"
            memory: 2Gi
          requests:
            cpu: "1"
            memory: 2Gi

我检查了其他类似的问题,但没有帮助

当我检查日志时

2020/03/20 06:46:35 [info] 91#91: *60234 epoll_wait() reported that client prematurely closed connection, so upstream connection is closed too while sending request to upstream, clie
nt: 10.44.0.1, server: example.com, request: "POST /user/register HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm.sock:", host: "hostname.example.com", referre
r: "https://hostname.example.com/user/register"
10.44.0.1 - - [20/Mar/2020:06:46:35 +0000] "POST /user/register HTTP/1.1" 499 0 "https://hostname.example.com/user/register" "Mozilla/5.0 (Macintosh; Intel Mac OS X 
10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36 Edg/80.0.361.66" "27.59.32.87, 34.107.231.112"
10.44.0.1 - - [20/Mar/2020:06:46:35 +0000] "GET / HTTP/1.1" 200 17662 "-" "kube-probe/1.15+" "-"

【问题讨论】:

  • 我找不到支持 GKE Ingress 的关于上游的 annotation。在创建此 Ingress 定义时,您是否遵循任何特定指南。您是否尝试过使用支持此annotation 的自定义Ingress 控制器?
  • 我们有一个特定的要求来遵循 GKE Ingress。因为我需要使用仅支持 HTTP(S) 负载均衡器的云盔甲。和 IP 应该是静态的。而且上游不适用于这个入口

标签: nginx kubernetes google-kubernetes-engine


【解决方案1】:

我可以通过增加 LoadBalancer 后端服务器超时来解决这个问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-22
    • 2020-10-27
    • 2012-05-10
    • 1970-01-01
    • 1970-01-01
    • 2019-05-15
    • 2012-12-12
    • 1970-01-01
    相关资源
    最近更新 更多