Kubernetes入口(特定应用程序)504网关超时60秒

Kubernetes入口(特定应用程序)504网关超时60秒,kubernetes,timeout,Kubernetes,Timeout,我们有一个具有k8s+Rancher 2(3个节点)的环境和一个外部nginx,根据本文档,它只将连接转发到k8s群集: 在该环境中运行的特定应用程序中,当我们执行POST时(因为此POST需要大约3到4分钟才能完成),60秒后会被消息“504网关超时”中断。我尝试应用特定注释更改超时,如下所示,但无效: 申请进入: apiVersion: extensions/v1beta1 kind: Ingress metadata: name: api-loteamento-spring-hml

我们有一个具有k8s+Rancher 2(3个节点)的环境和一个外部nginx,根据本文档,它只将连接转发到k8s群集:

在该环境中运行的特定应用程序中,当我们执行POST时(因为此POST需要大约3到4分钟才能完成),60秒后会被消息“504网关超时”中断。我尝试应用特定注释更改超时,如下所示,但无效:

申请进入:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: api-loteamento-spring-hml
  annotations:
    nginx.ingress.kubernetes.io/proxy-connect-timeout: "3600"
    nginx.ingress.kubernetes.io/proxy-read-timeout: "3600"
    nginx.ingress.kubernetes.io/proxy-send-timeout: "3600"
    nginx.ingress.kubernetes.io/server-snippet: "keepalive_timeout 3600s;client_body_timeout 3600s;client_header_timeout 3600s;"
  labels:
    run: api-loteamento-spring-hml
spec:
  rules:
  - host: hml-api-loteamento-sp.gruposfa.bla.bla
    http:
      paths:
      - backend:
          serviceName: api-loteamento-spring-hml
          servicePort: 80
我还尝试使用以下参数创建全局ConfigMap,但也没有成功:

[rancher@srv-rcnode01 ssl]$ kubectl get pods -n ingress-nginx
NAME                                    READY   STATUS    RESTARTS   AGE
default-http-backend-67cf578fc4-lcz82   1/1     Running   1          38d
nginx-ingress-controller-7jcng          1/1     Running   11         225d
nginx-ingress-controller-8zxbf          1/1     Running   8          225d
nginx-ingress-controller-l527g          1/1     Running   8          225d
并适用于:

kubectl apply -f global-configmap.yaml
访问入口吊舱并检查nginx.conf,我看到注释是根据应用程序块内设置的参数创建的:

[rancher@srv-rcnode01 ~]$ kubectl -n ingress-nginx exec --stdin --tty nginx-ingress-controller-8zxbf -- /bin/bash
并查看nginx.conf

keepalive_timeout 3600s;client_body_timeout 3600s;client_header_timeout 3600s;

# Custom headers to proxied server
            
            
            proxy_connect_timeout                   3600s;
            proxy_send_timeout                      3600s;
            proxy_read_timeout                      3600s;
在“服务器”配置块中nginx.conf文件的开头,我注意到它有默认的60秒超时值:

# Custom headers to proxied server
            
            proxy_connect_timeout                   5s;
            proxy_send_timeout                      60s;
            proxy_read_timeout                      60s;

在这种情况下,我的问题是这些值是否会干扰此问题,以及如何在k8s中更改这些值

有没有人经历过这样的情况,能给我一个答案


谢谢

中的
Nginx文档中提到了您想要实现的目标。建议使用

如果更新了Configmap,NGINX将使用新配置重新加载

之后,在
入口控制器
pod中,您应该会看到如下条目:

8 controller.go:137] Configuration changes detected, backend reload required.
8 controller.go:153] Backend successfully reloaded.
但是,请记住,对于
Nginx
,不建议使用更高的超时值。此信息可在以下位置找到:

设置与代理服务器建立连接的超时应该注意,此超时通常不能超过75秒。

其他信息:

1。有时,当
Nginx入口
无法加载新配置时,您可以找到如下日志:

controller.go:149"] - Unexpected failure reloading the backend": Invalid PID number "" in "/tmp/nginx/pid"
要修复它,只需重新启动
入口吊舱


2.如果您不喜欢默认设置,您可以在
Go语言中创建一个

它是您的本地环境还是云?您是如何部署入口的?您是否强制进入以使用新配置?您是否尝试根据Hi的最低要求在入口
spec.rules.http.paths.path
中添加特定路径。环境是本地的。是的,我在入口上应用了更改,但没有成功。@AngeloBraga这样做吗?
$ cat configmap.yaml
apiVersion: v1
data:
  proxy-connect-timeout: "10"
  proxy-read-timeout: "120"
  proxy-send-timeout: "120"
kind: ConfigMap
metadata:
  name: ingress-nginx-controller

curl https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/docs/examples/customization/custom-configuration/configmap.yaml \
    | kubectl apply -f -
8 controller.go:137] Configuration changes detected, backend reload required.
8 controller.go:153] Backend successfully reloaded.
controller.go:149"] - Unexpected failure reloading the backend": Invalid PID number "" in "/tmp/nginx/pid"