Я пытаюсь портировать приложение ASP.NET Core 1 с удостоверением на Kubernetes.Логин не работает, и я получил разные ошибки, такие как Не удалось расшифровать маркер защиты от подделки .Проблема в том, что я использую развертывание с тремя наборами реплик, чтобы последующие запросы обслуживались разными модулями, которые не знают о маркере защиты от подделки.Используя replicas: 3
, он работает.
В том же вопросе я нашел липкую сессионную документацию , которая кажется решением моей проблемы.Название cookie .AspNetCore.Identity.Application
взято из инструментов моего браузера.
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: myapp-k8s-test
annotations:
nginx.ingress.kubernetes.io/affinity: "cookie"
nginx.ingress.kubernetes.io/session-cookie-name: ".AspNetCore.Identity.Application"
spec:
replicas: 3
template:
metadata:
labels:
app: myapp-k8s
spec:
containers:
- name: myapp-app
image: myreg/myapp:0.1
ports:
- containerPort: 80
env:
- name: "ASPNETCORE_ENVIRONMENT"
value: "Production"
imagePullSecrets:
- name: registrypullsecret
Это не работает ни с, ни без начальных точек в имени файла cookie.Я также попытался добавить следующие аннотации
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/session-cookie-hash: sha1
Что требуется, чтобы разрешить липкие сеансы в Kubernetes с ASP.NET Core?