привет!
Разрабатываем микросервис, содержащий в себе встроенную Camunda: движок и веб-приложеения. Запущен этот микросервис в среде Kubernetes и наружу предоставляеться nginx-ingress. Обнаружили такую интересную историю, если запускается более одной реплики сервиса, перестает работать вход в Cockpit. Выдается ошибка 401. Подскажите, куда копать?
1 лайк
Привет.
Когда реплик камунды становится больше одной, необходимо реализовать sticky session, для этого нужно добавить в манифест ingress-а через который происходит доступ к веб-интерфейсу камунды следующие аннотации:
> metadata:
> annotations:
> nginx.ingress.kubernetes.io/affinity: "cookie"
> nginx.ingress.kubernetes.io/session-cookie-name: "INGRESSCAMUNDACOOKIE"
> nginx.ingress.kubernetes.io/session-cookie-expires: "172800"
> nginx.ingress.kubernetes.io/session-cookie-max-age: "172800"
Информацию об аннотациях можно посмотреть тут.
Решение реализовано с помощью nginx ingress. Добавляется новый Cookie, который обеспечивает “липкую” сессию.
При этом нужно учесть, что должно быть установлено dns имя:
spec:
rules:
- host: stickyingress.example.com
2 лайка
Спасибо добрый человек! После применения настроек все заработало. 
Здравствуйте. Подскажите, а если вместо ingress используется istio, то как будет выглядеть настройка? Вы сталкивались с такой проблемой? Прблема в общем-то всё та же, только вместо nginx-ingress используется istio и как-то не очень понятно как. на данный момент вот такой вариант конфига
---
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
name: bpm-main-dr
namespace: {{ k8s_namespace }}
spec:
host: bpm-main-service
trafficPolicy:
loadBalancer:
consistentHash:
httpCookie:
name: INGRESSCAMUNDACOOKIE
ttl: 3600s
---
Но с ним проблема. При попытке зайти в cockpit выбрасывает через довольно быстрое время. Более менее работает в режиме инкогнито в браузере и то не всегда.
Если вдруг у кого аналогичная проблема с балансировщиком istio, помог следующий совет
На практике проще всего сделать так чтобы трафик /camunda всегда направлять только но один под, а трафик /engine-rest, направлять балансировщиком на все поды.
2 лайка