TL; DR : я хочу настроить привязку сеанса на основе файлов cookie в K8s через контроллер nginx-ingress с передачей SSL - это можно сделать?
Привет всем,
У меня работает работающая служба Azure Kubernetes (AKS) (1.11.3), и я настроил контроллер NGINX-Ingress для маршрутизации запросов к службе ClusterIP для моего приложения (которое имеетминимум 2 работающих модуля).
Я успешно настроил передачу SSL на входном контроллере, чтобы TLS завершался на модулях, и поэтому я могу использовать HTTP2 (согласно этой статье 1013 *).Теперь я бы хотел настроить Session Affinity (используя Cookies), чтобы соединения направлялись в один и тот же модуль для отслеживания состояния (вход в приложение).
Я попытался использовать следующие аннотации для входного объекта для этого:
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.
Q : будет ли это означать, что использование соответствия сеансов с использованием SSL Passthrough вне таблицы?В этом случае Ingress не сможет идентифицировать соединение / cookie (так как он зашифрован SSL) и направить его на ранее связанный модуль?