Веб-сокеты на AKS с использованием GraphQL не подключаются - PullRequest
0 голосов
/ 17 июня 2019

В настоящее время у меня есть настройка кластера AKS, на которой работает сервер GraphQL и обычный вход nginx. Мы пытаемся подключить подписки GraphQL, которые используют веб-сокеты. URL-адрес, который GraphQL использует для веб-сокетов, является тем же URL-адресом, который используется для запросов GraphQL. Мы попытались добавить конфигурацию прокси-сервера для включения доступа через веб-сокет, но соединение так и не было установлено. Запуск сервера GraphQL без Kubernetes успешен, поэтому мы думаем, что здесь происходит что-то специфичное для kubernetes ... Кто-нибудь имел успех в этом? Соответствующий входной конфиг ниже

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: web-ingress
  namespace: web
  annotations:
    kubernetes.io/ingress.class: nginx
    certmanager.k8s.io/cluster-issuer: letsencrypt
    nginx.ingress.kubernetes.io/use-regex: "true"
    nginx.ingress.kubernetes.io/affinity: cookie
    nginx.ingress.kubernetes.io/proxy-send-timeout: "3600"
    nginx.ingress.kubernetes.io/proxy-read-timeout: "3600"
    nginx.ingress.kubernetes.io/proxy-connect-timeout: "30"
    nginx.ingress.kubernetes.io/configuration-snippet: |
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
spec:
  tls:
  - hosts:
    - my.host
    - my-api.host
    secretName: tls-secret
  rules:
  - host: my.host
    http:
      paths:
      - path: /graphql
        backend:
          serviceName: webapi
          servicePort: 80
      - path: /(.*)
        backend:
          serviceName: website
          servicePort: 80
  - host: my-api.host
    http:
      paths:
      - backend:
          serviceName: webapi
          servicePort: 80
        path: /(.*)
...