Nginx-ingress-controller中的粘性会话不起作用

时间:2018-08-27 20:28:36

标签: kubernetes

我正在研究现有的Kubernetes集群(非EKS)在AWS上设置的问题。我们正在尝试启用粘性会话支持,但我无法使其正常运行。我一直关注文档,但没有运气。这是我现在的位置:

我对头盔模板进行了这些更改(在批注的前面都带有和不带有nginx前缀)。我还没有弄清楚如何检查我们正在使用的Nginx-ingress-controller的版本,因此我已经尝试了两者,并且我知道注解已在12月17日更改。

annotations:
    kubernetes.io/ingress.class:                nginx
    ingress.kubernetes.io/affinity: "cookie"
    ingress.kubernetes.io/session-cookie-name: "route"
    ingress.kubernetes.io/session-cookie-hash: "sha1"

部署了更改,当我描述入口时,我可以通过描述入口(同样,带有和不带有nginx前缀)看到它已部署。我真的不认为这部分是正确的,因为我所看到的示例是/注释之前的所有内容都不应该存在,而在这里。

Annotations:
    ingress.kubernetes.io/affinity:             cookie
    ingress.kubernetes.io/session-cookie-hash:  sha1
    ingress.kubernetes.io/session-cookie-name:  route
    kubernetes.io/ingress.class:                nginx

但是当我执行curl请求时,我可以看到将不设置cookie:

curl -I  https://test.com/hello
HTTP/2 200 
server: nginx/1.11.3
date: Mon, 27 Aug 2018 20:26:37 GMT
content-type: application/json; charset=utf-8
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
etag: W/"93a23971a914e5eacbf0a8d25154cda3"
cache-control: max-age=0, private, must-revalidate
x-request-id: fc91644f-a4b6-475b-9fb5-ccabe0551038
x-runtime: 0.006894
strict-transport-security: max-age=15724800; includeSubDomains; preload
vary: Origin

同样,我测试了有无nginx。粘性注释的前缀,并且没有任何变化,因此我必须缺少一些内容。

2 个答案:

答案 0 :(得分:0)

找到了我的旧问题未解决。我的问题是我需要指定完整的注释。它需要nginx前缀

nginx.ingress.kubernetes.io/affinity:             cookie
nginx.ingress.kubernetes.io/session-cookie-hash:  sha1
nginx.ingress.kubernetes.io/session-cookie-name:  route

答案 1 :(得分:0)

就我而言,我从这里安装了另一个入口控制器:-https://docs.nginx.com/nginx-ingress-controller/installation/installation-with-manifests/

从此链接https://kubernetes.github.io/ingress-nginx/deploy/安装入口控制器后,会话粘性对我来说很好。

我从这里使用过的

YAML文件:-https://kubernetes.github.io/ingress-nginx/examples/affinity/cookie/ingress.yaml

要使用上述YAML文件中使用的域名,我在/ etc / hosts文件中添加了一个条目。