使用 nginx 入口启用粘性会话,不起作用

Abh*_*nda 5 kubernetes

我有一个运行 nginx 入口控制器的 v1.8.4 部署。我有一个工作正常的入口。但现在我试图在其中启用粘性会话。我曾经kubectl edit ing mying添加这些注释:

nginx.ingress.kubernetes.io/affinity: cookie
nginx.ingress.kubernetes.io/session-cookie-hash: md5
nginx.ingress.kubernetes.io/session-cookie-name: foobar
Run Code Online (Sandbox Code Playgroud)

但是粘性会话仍然不起作用。Nginx 配置没有任何关于粘性会话的内容。此外,kubectl describe ing mying不显示注释。这里出了什么问题?

我也尝试了粘性会话的例子在这里。描述入口不显示注释。

mum*_*bin 4

因为项目主机(ingress.yml 中)不能为空或通配符 (*.example.com)。

\n\n

确保您的主机例如test.example.com(如果您没有dns,请在本地主机中配置它),然后测试

\n\n
curl -I  http://test.example.com/test/login.jsp\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后你就会看到

\n\n
Set-Cookie: route=ebfcc90982e244d1d7ce029b98f8786b; Expires=Sat, 03-Jan-70 00:00:00 GMT; Max-Age=172800; Domain=test.example.com; Path=/test; HttpOnly\n
Run Code Online (Sandbox Code Playgroud)\n\n

官方示例\xef\xbc\x9a

\n\n
apiVersion: extensions/v1beta1\nkind: Ingress\nmetadata:\n  name: nginx-test\n  annotations:\n    nginx.ingress.kubernetes.io/affinity: "cookie"\n    nginx.ingress.kubernetes.io/session-cookie-name: "route"\n    nginx.ingress.kubernetes.io/session-cookie-expires: "172800"\n    nginx.ingress.kubernetes.io/session-cookie-max-age: "172800"\n\nspec:\n  rules:\n  - host: stickyingress.example.com\n    http:\n      paths:\n      - backend:\n          serviceName: http-svc\n          servicePort: 80\n        path: /\n
Run Code Online (Sandbox Code Playgroud)\n