【K8S】Kubernetes 使用 Ingress-Nginx 基于 Cookie 实现会话保持的负载均衡
文章目录
- 1. 创建测试应用 Deployment
- 3. 配置基于 Cookie 的 Ingress
- 4. 部署与测试步骤
- (1) 应用配置
- (2) 获取 Ingress IP
- (3) 测试会话保持
- (4) 使用 Nginx 取消域名的限制(仅推荐测试使用)
- 5、生产优化建议
- 6、独立 Nginx 配置参考
在现代微服务架构中,负载均衡是保证高可用的关键技术。然而,某些场景(如用户登录状态、购物车等)需要将同一用户的请求始终路由到同一个后端实例,会话保持(Session Affinity)成为关键需求。本文将介绍如何通过 Ingress-Nginx 的 Cookie 机制实现会话保持。
需要先安装 nginx-ingress 模块 如何安装 Ingress Nginx Controller
1. 创建测试应用 Deployment
# app-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:name: webapp
spec:replicas: 3selector:matchLabels:app: webapptemplate:metadata:labels:app: webappspec:containers:- name: webimage: nginx:alpineports:- containerPort: 80# 添加响应头显示 Pod 名称(用于测试识别)command: ["/bin/sh", "-c"]args