k8s-ingress配置websocket支持

具体来说,使用的ingress-controller不一样,有关的设置也不太一样

Kubernetes Ingress Controller (k8s官方)

参考 http://github.com/kubernetes/ingress-nginx

官方文档地址:https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/?spm=5176.2020520152.0.0.74e016ddRLPYlr

https://kubernetes.github.io/ingress-nginx/user-guide/miscellaneous/#websockets

https://github.com/kubernetes/ingress-nginx/blob/1614027cd42aa3fac53d62afc235b86adec7543d/docs/examples/multi-tls/README.md

在 nginx-ingress-controller 中默认已经支持websocket访问,官方文档中说明websocket不需要特别的配置,但需要在注解中配置以下三项

nginx.ingress.kubernetes.io/proxy-http-version: "1.1"
nginx.ingress.kubernetes.io/proxy-read-timeout: "3600"
nginx.ingress.kubernetes.io/proxy-send-timeout: "3600"

网上看到的另一种写法配置

没实践过,若是配置的话,最好单独创建一个ingress规则yaml文件,别人其他的写在一起

地址:https://www.cnblogs.com/klvchen/articles/14874348.html

解决办法:
annotations 加入

proxy_set_header Upgrade "websocket";
proxy_set_header Connection "Upgrade";
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: sx-data-server
  namespace: spot-standard 
  annotations:
    kubernetes.io/ingress.class: "nginx"
    nginx.ingress.kubernetes.io/configuration-snippet: |
       proxy_set_header Upgrade "websocket";
       proxy_set_header Connection "Upgrade";
spec:
  rules:
  - host: sx-data-server.internal.junengcloud.com
    http:
      paths:
      - path: /
        backend:
          serviceName: sx-data-server
          servicePort: 61051

NGINX Ingress Controller (nginx官方)

http://github.com/nginxinc/kubernetes-ingress

文档地址:https://docs.nginx.com/nginx-ingress-controller/configuration/ingress-resources/advanced-configuration-with-annotations/

https://github.com/nginxinc/kubernetes-ingress/tree/v2.1.0/examples/websocket

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: cafe-ingress
  annotations:
    nginx.org/websocket-services: "ws-svc" # 具体的服务名
spec:
  rules:
  - host: cafe.example.com
    http:
      paths:
      - path: /tea
        pathType: Prefix
        backend:
          service:
            name: tea-svc
            port:
              number: 80
      - path: /coffee
        pathType: Prefix
        backend:
          service:
            name: coffee-svc
            port:
              number: 80
      - path: /ws
        pathType: Prefix
        backend:
          service:
            name: ws-svc
            port:
              number: 8008
posted @   哈喽哈喽111111  阅读(9659)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示