我正在运行 nginx 作为 Kubernetes 集群的入口控制器,并且我有一个用例,其中我使用 cookie 亲和性将客户端持久保存到特定的 pod 以用于会话目的。
我正在使用以下注释:
nginx.ingress.kubernetes.io/affinity: cookie
这将导致 nginx 控制器使用可由客户端重复使用的 Set-Cookie 标头进行回复。
set-cookie: INGRESSCOOKIE=1657803129.789.928.252486|33fc3ff8c889180479b242584ba1f3ad
然而,如果客户端没有自行发送 cookie,我希望 nginx 控制器在 URI 上使用一致性散列,而无需使用其他入口。
这是可以用 nginx ingress controller 配置的东西吗?似乎
nginx.ingress.kubernetes.io/upstream-hash-by: "$request_uri"
并且nginx.ingress.kubernetes.io/affinity: cookie
互相排斥。
我见过NGINX 负载平衡哈希:如果存在则使用 cookie 值,如果不存在则使用 ip_hash但在使用nginx注解的时候好像不适用。