【发布时间】:2020-11-07 23:45:37
【问题描述】:
我有一个部署,其中包含 2 个 pod,其中有一个 webapp。安装 Nginx 入口控制器以使用 tls-passthrough 公开这两个 pod。 我曾尝试使用注释来设置粘性会话,但无济于事。标头中没有 cookie,因此没有粘性。 我该怎么做才能让它发挥作用? 非常感谢您的明智回答。
我创建的 Ingress:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress
annotations:
# nginx.ingress.kubernetes.io/secure-backends: "true"
# nginx.ingress.kubernetes.io/ssl-passthrough: "true"
# nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
# nginx.ingress.kubernetes.io/rewrite-target: /
nginx.ingress.kubernetes.io/affinity: "cookie"
nginx.ingress.kubernetes.io/affinity-mode: "persistent"
nginx.ingress.kubernetes.io/session-cookie-name: "wabam"
nginx.ingress.kubernetes.io/session-cookie-expires: "172800"
nginx.ingress.kubernetes.io/session-cookie-max-age: "172800"
namespace: default
spec:
rules:
- host: wabam.moulip.lan
http:
paths:
- backend:
serviceName: wabam-ingress-svc
servicePort: 443
path: /
【问题讨论】:
-
如果你
ssl-passthrough那么你不能修改请求/响应(根据定义)。 -
因为负载均衡器前端没有转发 Real-IP 标头
-
大家好,我怀疑 ssl-passthrough 是罪魁祸首。我检查了我的网络应用程序日志,它是转发的实际客户端 IP。由于我不能让 webapp 以纯 http 方式侦听,Nginx 是否会接受终止 ssl 会话并仍然在 https 后面转发流量?
-
如前所述,与
ssl-passthrough一起使用时,任何其他注释都不起作用。因此,我认为这不会像您描述的那样起作用。
标签: nginx kubernetes sticky-session