我有一个运行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
但粘性会话仍无效。 Nginx配置没有关于粘性会话的任何内容。此外,kubectl describe ing mying
不会显示注释。这里出了什么问题?
我还尝试了粘性会话here的示例。 描述入口不会显示注释。
答案 0 :(得分:0)
因为项目host(在ingress.yml中)不能为空或wildzard(* .example.com)。
确保您的主机(例如test.example.com)(如果您没有dns,请在本地主机中对其进行配置),然后进行测试
curl -I http://test.example.com/test/login.jsp
然后你会看到
Set-Cookie: route=ebfcc90982e244d1d7ce029b98f8786b; Expires=Sat, 03-Jan-70 00:00:00 GMT; Max-Age=172800; Domain=test.example.com; Path=/test; HttpOnly
官方示例:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: nginx-test
annotations:
nginx.ingress.kubernetes.io/affinity: "cookie"
nginx.ingress.kubernetes.io/session-cookie-name: "route"
nginx.ingress.kubernetes.io/session-cookie-expires: "172800"
nginx.ingress.kubernetes.io/session-cookie-max-age: "172800"
spec:
rules:
- host: stickyingress.example.com
http:
paths:
- backend:
serviceName: http-svc
servicePort: 80
path: /