Недавно я работал над игрушечным приложением, используя Kubernetes.Частью приложения является веб-сервер, который должен поддерживать WebSockets.В настоящее время я использую переадресацию портов для доступа к веб-серверу, и все работает отлично.
Я бы хотел переключиться на использование Ingress и IngressController, чтобы избежать использования переадресации портов.
Вот мой Ingress
конфиг:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: app-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
nginx.ingress.kubernetes.io/secure-backends: "true"
nginx.ingress.kubernetes.io/proxy-send-timeout: "3600"
nginx.ingress.kubernetes.io/proxy-read-timeout: "3600"
spec:
rules:
- http:
paths:
- path: /app
backend:
serviceName: web-svc
servicePort: 3030
- path: /ws
backend:
serviceName: web-svc
servicePort: 3030
Теперь доступ к приложению через $(minikube ip)/app
работает просто отлично, но все запросы WebSocket не выполняются, потому что nginx возвращает 200, а не 101.
Я пытался добавить аннотацию nginx.org/websocket-services
, но, похоже, она тоже не работает.
Кто-нибудь сталкивался с подобной ситуацией?
Приветствия