TL; DR: я хочу настроить привязку сеанса на основе файлов cookie в K8s через контроллер nginx-ingress с сквозной передачей SSL. Можно ли это сделать?
Всем привет,
У меня работает служба Azure Kubernetes (AKS) (1.11.3), и я настроил NGINX-Ingress контроллер для маршрутизации запросов в службу ClusterIP для моего приложения (в котором запущено минимум 2 модуля).
Я успешно настроил сквозную передачу SSL на контроллере входящего трафика, так что TLS завершается на модулях, и поэтому я могу использовать HTTP2 (согласно этому article). Теперь я хотел бы настроить привязку сеанса (с использованием файлов cookie), чтобы соединения направлялись в один и тот же модуль для поведения с отслеживанием состояния (вход в приложение).
Я пробовал использовать для этого следующие аннотации входящего объекта:
nginx.ingress.kubernetes.io/affinity: "cookie"
nginx.ingress.kubernetes.io/session-cookie-name: "route"
nginx.ingress.kubernetes.io/session-cookie-expires: "172800"
nginx.ingress.kubernetes.io/session-cookie-max-age: "172800"
nginx.ingress.kubernetes.io/session-cookie-hash: "sha1"
Однако я не вижу cookie "маршрута", возвращенного по первому запросу. Я решил проблему, описанную здесь, и убедился, что вход настроен правильно . Затем я заметил это сообщение на документы:
Поскольку SSL Passthrough работает на уровне 4 модели OSI (TCP), а не на уровне 7 (HTTP), использование SSL Passthrough делает недействительными все другие аннотации, установленные для объекта Ingress.
В. Означает ли это, что использование привязки сеанса с сквозной передачей SSL не рассматривается? В том, что Ingress не сможет идентифицировать соединение / файл cookie (поскольку он зашифрован SSL) и направить его в ранее связанный модуль?