ingress-nginx是我们常用的Kubernetes 服务,原理上就是启动了一个nginx 容器,并时刻监听着我们的集群,当发现有人创建了ingress对象的时候,kubernetes就会帮助我们动态的更新nginx配置文件
但是,kuberentes在增加新的配置的时候,会使用默认的配置来创建新的Location,其中,关于timeout设置部分生效的
1 2 3 |
proxy_connect_timeout 5s; proxy_send_timeout 60s; proxy_read_timeout 60s; |
这部分我们可以登录到nginx 容器内部通过(kubectl exec -ti $ID /bin/bash)
1 |
cat Nginx.conf |
如果我们想延长超时时间,我们肯定不能通过登录到容器内部修改Ningx.conf然后重启的方式,我们需要通过修改Ingress 对象的annotion
假如,我们创建了一个Ingress 是Name:503errr Hosts:www.503error.com
1 2 3 |
kubectl get ingress NAME HOSTS ADDRESS PORTS AGE 503error www.503error.com 80 115d |
我们想增加www.503error.com这个nginx记录的timeout,我们需要做的就是
1 |
kubectl edit ingress/503error |
修改我们的ingress的annotations部分,增加如下几条记录:
1 2 3 |
nginx.ingress.kubernetes.io/proxy-connect-timeout: "600" nginx.ingress.kubernetes.io/proxy-read-timeout: "600" nginx.ingress.kubernetes.io/proxy-send-timeout: "600" |
我们保存成功后,nginx所在的容器里边的nginx配置文件会动态更新,不需要其他手动操作
关于ingress-nginx其他参数的修改,大家可以参考:
https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/
Latest posts by Zhiming Zhang (see all)
- aws eks node 自动化扩展工具 Karpenter - 8月 10, 2022
- ReplicationController and ReplicaSet in Kubernetes - 12月 20, 2021
- public key fingerprint - 5月 27, 2021