1. 程式人生 > >kubernetes session回話保持

kubernetes session回話保持

1.Nginx 版本

[email protected]:/# /usr/sbin/nginx -v
nginx version: nginx/1.13.9

2.ingress 配置

apiVersion: extensions/v1beta1

kind: Ingress
metadata:
   name: ingress-fanout
   annotations:
  kubernetes.io/ingress.class: "nginx"
  nginx.ingress.kubernetes.io/affinity: "cookie"
  nginx.ingress.kubernetes.io/session-cookie-name: "route"
  nginx.ingress.kubernetes.io/session-cookie-hash: "sha1"
spec:
  rules:
    - host: <dnsname>
      http:
      paths:
        - backend:
          serviceName: <servicename>
          servicePort: 80
path: /

3.回話保持原理

3.1兩種方法:

a.session based on affinity

in the spec section:

sessionAffinity: ClientIP

b.session based on cookie

c.下面我介紹第二種

 

參考:The cookie is a piece of data that the client store and send to the web server to say: “Hey, I´m X! Redirect me to my pod!”. It works when there are multiple clients from the same IP, because it´s stored at web browser level. It needs an Ingress object, so you can use it with HTTPS or name-based virtual hosting. Similar to previous post.

參考:https://medium.com/@diegomrtnzg/redirect-your-users-to-the-same-pod-by-using-session-affinity-on-kubernetes-baebf6a1733b