如何在IBM Bluemix上的Kubernetes中为入口资源添加websocket支持?

Jay*_*Agl 6 nginx websocket kubernetes ibm-cloud

当客户端尝试通过wss://请求连接我们的入口定义端点时,应用程序返回400错误请求,根据socket.io文档,这是由于nginx等负载平衡代理删除了丢失的标头.

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: my-ingress
  annotations:
    nginx.org/websocket-services: service-name
spec:
  tls:
    - hosts:
        - www.myhost.com
  rules:
    - host: www.myhost.com
      http:
        paths:
          - path: /
            backend:
              serviceName: service-name
              servicePort: 80
Run Code Online (Sandbox Code Playgroud)

从IBM提供的入口控制器中的日志来看,它似乎是这个nginx入口控制器的一个分支.其中说注释nginx.org/websocket-services通过向生成的nginx conf添加指令来添加对websockets的支持,以传递所需的头.我们按照上面的方法尝试了这一点,但无济于事.

有没有人有任何成功使这个注释工作?添加到生成的nginx conf的任何变通方法?

任何IBM人都知道是否有意从fork中删除了这个功能?如果有任何方法可以在IBM版本的Kubernetes中添加对websockets的支持?

Jac*_*ski 5

目前不支持Websockets,我们正在努力添加它,我会在可用时更新.

谢谢

编辑:Websocket支持在所有地区都可用,其注释为:

  annotations:
    ingress.bluemix.net/websocket-services: service-name
Run Code Online (Sandbox Code Playgroud)

  • 很抱歉响应延迟,但目前所有地区都提供websocket支持.它的注释是:ingress.bluemix.net/websocket-services:<service> (2认同)