目前在MAAS服务中很多地方都需要设置更长的超时时间,是由于有时有超长的提示词导致需要更长的响应时间,这样需要更改Ingress的超时配置,Ingress的超时配置默认是60s,一般有两种配置方式可以调整这个超时时间
1.全局 ConfigMap
2.单 Ingress 注解其中单 Ingress 注解的优先级更高,当上述两者都有配置时,最后单 Ingress 注解的配置是最终生效的效果。
超时配置主要有以下三个参数控制
proxy-connect-timeout:与后端建立 TCP 连接超时(推荐 5–10s)
proxy-read-timeout:从后端读取响应的间隔超时(按业务调整,如 300s)
proxy-send-timeout:向后端发送请求的间隔超时(通常同 read)ConfigMap 全局配置
可以直接修改 ingress-nginx 命名空间下的 ConfigMap
kubectl edit cm -n ingress-nginx ingress-nginx-controller
apiVersion: v1
kind: ConfigMap
metadata:
name: nginx-ingress-controller
namespace: ingress-nginx
data:
proxy-connect-timeout: "10" # 10秒
proxy-read-timeout: "300" # 5分钟
proxy-send-timeout: "300" # 5分钟默认可能没有data这个字段,我们直接在最后添加上述配置即可。
改好以后可以重启下ingress-nginx控制器
kubectl rollout restart deployment ingress-nginx-controller -n ingress-nginx
我实测中实际可以不用重启ingress-nginx-controller,它会自动检测 ConfigMap 的配置变化,自动重启控制器中的 Nginx
单 Ingress 注解配置
在 Ingress YAML 中添加 annotations,仅对当前规则生效:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-app-ingress
annotations:
nginx.ingress.kubernetes.io/proxy-connect-timeout: "10"
nginx.ingress.kubernetes.io/proxy-read-timeout: "300"
nginx.ingress.kubernetes.io/proxy-send-timeout: "300"
spec:
rules:
- host: app.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: my-app
port:
number: 80然后更新下 Ingress 规则即可。
kubectl apply -f my-ingress.yaml
内容版权声明:除非注明,否则皆为本站原创文章。
转载注明出处:https://sulao.cn/post/1175
评论列表