k8s~Ingress转发出现502的问题
目前在对接keycloak过程中,通过云端LB到ingress,再由ingress到k8s-service,在配置完成之后,偶发出现502的情况。
ingress的配置,先是实现了客户端的会话保持
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
namespace: pkulaw-cas-final
name: nginx-keycloak
annotations:
nginx.ingress.kubernetes.io/affinity: "cookie"
nginx.ingress.kubernetes.io/session-cookie-name: "route"
nginx.ingress.kubernetes.io/session-cookie-expires: "172800"
nginx.ingress.kubernetes.io/session-cookie-max-age: "172800"
spec:
rules:
- host: xxx.product.com
http:
paths:
- backend:
serviceName: keycloak
servicePort: 8080
path: /
出现502
需要添加proxy-buffer-number的注释解决问题
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
namespace: pkulaw-cas-final
name: nginx-keycloak
annotations:
nginx.ingress.kubernetes.io/affinity: "cookie"
nginx.ingress.kubernetes.io/session-cookie-name: "route"
nginx.ingress.kubernetes.io/session-cookie-expires: "172800"
nginx.ingress.kubernetes.io/session-cookie-max-age: "172800"
nginx.ingress.kubernetes.io/proxy-buffer-size: "16k" #缓冲区大小
nginx.ingress.kubernetes.io/proxy-buffers-number: "8" #缓冲区数据,不加它参数多时返回502
其它缓冲区配置
代理缓冲
启用或禁用代理缓冲proxy_buffering。默认情况下,NGINX配置中禁用代理缓冲。
要为所有Ingress规则全局配置此设置,proxy-buffering可以在NGINX ConfigMap中设置该值。要在Ingress规则中使用自定义值,请定义以下注释:
nginx.ingress.kubernetes.io/proxy-buffering: "on"
代理缓冲区数
设置proxy_buffers用于读取从代理服务器接收到的响应的第一部分的缓冲区数。默认情况下,代理缓冲区数设置为4
要全局配置此设置,请proxy-buffers-number在NGINX ConfigMap中进行设置。要在Ingress规则中使用自定义值,请定义以下注释:
nginx.ingress.kubernetes.io/proxy-buffers-number: "4"
代理缓冲区大小
设置proxy_buffer_size用于读取从代理服务器接收到的响应的第一部分的缓冲区的大小。默认情况下,代理缓冲区大小设置为“ 4k”
要全局配置此设置,请proxy-buffer-size在NGINX ConfigMap中进行设置。要在Ingress规则中使用自定义值,请定义以下注释:
nginx.ingress.kubernetes.io/proxy-buffer-size: "8k"
代理最大临时文件大小
如果buffering启用了来自代理服务器的响应,并且整个响应不适合通过proxy_buffer_size和proxy_buffers指令设置的缓冲区,则可以将响应的一部分保存到临时文件中。此伪指令设置size临时文件的最大值,设置为proxy_max_temp_file_size。一次写入临时文件的数据大小由proxy_temp_file_write_size指令设置。
零值禁用对临时文件的响应的缓冲。
要在Ingress规则中使用自定义值,请定义以下注释:
nginx.ingress.kubernetes.io/proxy-max-temp-file-size: "1024m"
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
2017-03-27 Kafka~HelloWorld得来不易
2017-03-27 Kafka~服务端几个常用的命令
2017-03-27 Kafka~Linux环境下的部署
2015-03-27 压力测试~一套完整的压力测试项目文档
2015-03-27 压力测试~测试工具的使用
2014-03-27 EF架构~在T4模版中为所有属性加默认值
2012-03-27 从微软的DBML文件中我们能学到什么(它告诉了我们什么是微软的重中之重)~六 LINQTOSQL中为我们触发了SendPropertyChanging和SendPropertyChanged,它的真正用意是什么