Я подключаю наше текущее приложение и внедряю его в кластер kubernetes.У нас есть 2 услуги, а именно, сервис-A и сервис-B.Один из наших сервисов (пример сервиса-A) использует websocket.мы настроили правило на входе для маршрутизации запроса веб-сокета непосредственно на сервис-А через порт 8080. Также есть правило для маршрутизации других запросов на сервис-Б на порт 443. Но вместо этого контроллер входа всегда направляет запрос веб-сокета на сервис-Бмаршрутизации к сервису-A.
Итак, я удалил правило сервис-B из входа, но он все еще перенаправляется как запрос tls, и запрос никогда не достигает сервис-A.Не уверен, почему он перенаправлен как TLS, а не как http-запрос, обновленный до подключения к веб-сокету.
Пожалуйста, найдите мою входную конфигурацию ниже:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
field.cattle.io/publicEndpoints: '[{"addresses":[""],"port":443,"protocol":"HTTPS","serviceName":"cluster42:service-B","ingressName":"cluster42:my-ingress","hostname":"cluster42-phase-0 ","path":"/","allNodes":false},{"addresses":[""],"port":443,"protocol":"HTTPS","serviceName":"cluster42:service-A","ingressName":"cluster42:my-ingress","hostname":"cluster42-phase-0 ","path":"/ws-service","allNodes":false}]'
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"extensions/v1beta1","kind":"Ingress","metadata":{"annotations":{"nginx.ingress.kubernetes.io/rewrite-target":"/","nginx.ingress.kubernetes.io/ssl-passthrough":"true"},"labels":{"app":"ingress","chart":" myapplication-chart","heritage":"Tiller","release":"installation-cluster42"},"name":"my-ingress","namespace":"cluster42"},"spec":{"rules":[{"host":"cluster42-phase-0 ","http":{"paths":[{"backend":{"serviceName":"service-B","servicePort":443},"path":"/"}]}}],"tls":[{"hosts":["cluster42-phase-0 "]}]}}
nginx.ingress.kubernetes.io/rewrite-target: /
nginx.ingress.kubernetes.io/ssl-passthrough: "true"
nginx.org/websocket-services: "service-A"
creationTimestamp: "2019-05-24T11:46:40Z"
generation: 31
labels:
app: ingress
chart: myapplication-chart
heritage: Tiller
release: installation-cluster42
name: my-ingress
namespace: cluster42
resourceVersion: "57549362"
selfLink: /apis/extensions/v1beta1/namespaces/cluster42/ingresses/my-ingress
uid: 98784b1f-7e19-11e9-b2f1-005056b0b58e
spec:
rules:
- host: cluster42-phase-0
http:
paths:
- backend:
serviceName: service-B
servicePort: 443
path: /
- backend:
serviceName: service-A
servicePort: 8080
path: /ws-service
tls:
- hosts:
- cluster42-phase-0
status:
loadBalancer:
ingress:
- {}
Я ожидаю, что запрос будет перенаправлен на сервис-A вместослужбы-б.Пожалуйста, дайте мне знать, если я что-то упустил в своей конфигурации или что-то делаю не так.
Заранее спасибо.