He implementado una aplicación de nodo en k8s con socket. Usé aws NLB con TLS terminado en el ingreso.
He intentado muchas soluciones pero aún puedo resolver esto.
El archivo de ingreso es
apiVersion: extensions/v1beta1 kind: Ingress metadata: name: app-node-ingress annotations: kubernetes.io/ingress.class: nginx nginx.ingress.kubernetes.io/websocket-services: app-node-socket nginx.org/websocket-services: app-node-socket cert-manager.io/cluster-issuer: "letsencrypt-prod" kubernetes.io/ingress.class: "nginx" nginx.ingress.kubernetes.io/proxy-send-timeout: "3600" nginx.ingress.kubernetes.io/proxy-read-timeout: "3600" nginx.ingress.kubernetes.io/proxy-connect-timeout: "3600" nginx.ingress.kubernetes.io/secure-backends: "true" nginx.ingress.kubernetes.io/ssl-redirect: "true" nginx.ingress.kubernetes.io/proxy-http-version: "1.1" nginx.ingress.kubernetes.io/configuration-snippet: | proxy_set_header HOST $host; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-NginX-Proxy false; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_redirect off; spec: tls: - hosts: - testdomain.com secretName: letsencrypt-prod rules: - host: testdomain.com http: paths: - path: /socket.io backend: serviceName: app-node-socket servicePort: 8000 - path: / backend: serviceName: app-node servicePort: 5000 Pero aun así, WebSocket connection to '<URL>' failed: WebSocket is closed before the connection is established.
Cualquier ayuda será apreciada.