问题描述
VKE 中在组件管理位置安装了ingress-nginx,如何配置使其支持 Websockets。
问题分析
通过官网查看 ingress-nginx 自身已经支持 Websockets,只需调整 proxy-read-timeout 和 proxy-send-timeout。
问题解决
ingress-nginx 提供了两种方式修改 proxy-read-timeout 和 proxy-send-timeout。
- 通过 Annotations 调整
$ cat ingress-test.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress-test
namespace: xxx
annotations:
nginx.ingress.kubernetes.io/proxy-read-timeout: '3600'
nginx.ingress.kubernetes.io/proxy-send-timeout: '3600'
spec:
...
- 通过 ConfigMaps 修改
$ kubectl edit cm -n ingress-nginx ingress-nginx-controller
apiVersion: v1
data:
proxy-read-timeout: 3600
proxy-send-timeout: 3600
...
参考链接
[1] https://kubernetes.github.io/ingress-nginx/user-guide/miscellaneous/#websockets [2] https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/ [3] https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/ 如果您有其他问题,欢迎您联系火山引擎技术支持服务