Правило входа в Куберне

У меня есть k8s 1.9.0 кластер и следующие мои правила входа.

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
 name: my-ingress
 labels:
  app: report
annotations:
  ingress.kubernetes.io/rewrite-target: /
spec:
 rules:
  - host: "gayan.test.com"
    http:
     paths:
      - path: /report
        backend:
         serviceName: qc-report-svc
         servicePort: 80
     - path: /report/*
        backend:
         serviceName: qc-report-svc
         servicePort: 80

Итак, у меня есть две просьбы.

Запрос один - https://gayan.test.com/report/ping Этот запрос попадает в модуль и возвращает ответ. (GET /ping 200 302.079 ms - 63)

Запрос два - wss://gayan.test.com/report/socket.io/?EIO=3&transport=websocket, Этот запрос даже не попадает на сервер. Я думаю, что это связано с правилом доступа.

Мой вопрос, как я могу отправить все /report движение в qc-report-svc оказание услуг?

1 ответ

Решение

Предполагая, что вы используете Nginx Ingress Controller, вам нужно добавить nginx.org/websocket-services аннотация для включения поддержки WebSocket.

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
 name: my-ingress
 labels:
   app: report
annotations:
  ingress.kubernetes.io/rewrite-target: /
  nginx.org/websocket-services: "qc-report-svc"
spec:
 rules:
  - host: "gayan.test.com"
    http:
     paths:
      - path: /report
        backend:
         serviceName: qc-report-svc
         servicePort: 80
Другие вопросы по тегам