k8s的tomcat多pod session会话保持配置

问题:k8s启动的tomcat服务,每次访问都带了session会话,每次调整不同的pod导致session实效,系统登录失败。

处理:在server中添加session保持

sessionAffinity: ClientIP
实验:
启动服务:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
[root@master test]# more Deploy.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: spring-k8s
spec:
  replicas: 4
  selector:
    matchLabels:
      app: spring-k8s
  template:
    metadata:
      labels:
        app: spring-k8s
    spec:
      containers:
        - name: spring-k8s
          image: jiangbo920827/spring-k8s:liveness
          ports:
            - containerPort: 8080
[root@master test]# more Service.yaml
apiVersion: v1
kind: Service
metadata:
  name: spring-k8s
spec:
  selector:
    app: spring-k8s
  type: NodePort
  ports:
    - nodePort: 30008
      port: 80
      protocol: TCP
      targetPort: 8080
容器启动:
1
2
3
4
5
[root@master ~]# kubectl get pods |grep sprin
spring-k8s-7db85b44fc-4d9xg   1/1       Running   0          1h
spring-k8s-7db85b44fc-4rjp4   1/1       Running   0          1h
spring-k8s-7db85b44fc-64v76   1/1       Running   0          1h
spring-k8s-7db85b44fc-s5hhw   1/1       Running   0          1h
没加session亲和信参数:分布到各个pod
1
2
3
4
5
6
7
8
9
10
11
[root@master test]# for i in {1..10};do curl http://192.168.10.98:30008/hostname;echo ;done
spring-k8s-7db85b44fc-4d9xg
spring-k8s-7db85b44fc-4d9xg
spring-k8s-7db85b44fc-4rjp4
spring-k8s-7db85b44fc-4d9xg
spring-k8s-7db85b44fc-64v76
spring-k8s-7db85b44fc-4d9xg
spring-k8s-7db85b44fc-s5hhw
spring-k8s-7db85b44fc-4d9xg
spring-k8s-7db85b44fc-64v76
spring-k8s-7db85b44fc-s5hhw
添加session亲和性参数:sessionAffinity: ClientIP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[root@master test]# more Service.yaml
apiVersion: v1
kind: Service
metadata:
  name: spring-k8s
spec:
  selector:
    app: spring-k8s
  type: NodePort
  ports:
    - nodePort: 30008
      port: 80
      protocol: TCP
      targetPort: 8080
  sessionAffinity: ClientIP
[root@master test]# for i in {1..10};do curl http://192.168.10.98:30008/hostname;echo ;done
spring-k8s-7db85b44fc-4d9xg
spring-k8s-7db85b44fc-4d9xg
spring-k8s-7db85b44fc-4d9xg
spring-k8s-7db85b44fc-4d9xg
spring-k8s-7db85b44fc-4d9xg
spring-k8s-7db85b44fc-4d9xg
spring-k8s-7db85b44fc-4d9xg
spring-k8s-7db85b44fc-4d9xg
spring-k8s-7db85b44fc-4d9xg
spring-k8s-7db85b44fc-4d9xg

  

  

  

posted @   苍茫宇宙  阅读(1214)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示