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 |
做一个决定,并不难,难的是付诸行动,并且坚持到底。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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)