【问题标题】:Enabling sticky sessions with nginx ingress, not working使用 nginx 入口启用粘性会话,不起作用
【发布时间】:2019-04-03 15:45:01
【问题描述】:

我有一个运行 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。 描述入口不会显示注释。

【问题讨论】:

  • 你能粘贴你的 ingress.yaml 文件吗?
  • 你试过nginx.ingress.kubernetes.io/session-cookie-name: route吗?此外,发布入口清单。将有助于调试。
  • 我遇到了同样的问题,发现这个帖子github.com/kubernetes/ingress-nginx/issues/1980
  • 这有什么更新吗?我在使用网络套接字时遇到了类似的问题。

标签: kubernetes


【解决方案1】:

因为项目主机(ingress.yml)不能为空或通配符(*.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: /

【讨论】:

    猜你喜欢
    • 2020-11-07
    • 2012-03-11
    • 1970-01-01
    • 1970-01-01
    • 2020-02-25
    • 1970-01-01
    • 2017-05-17
    • 2019-10-13
    • 1970-01-01
    相关资源
    最近更新 更多