我在Google GKE Kubernetes群集上运行了3个Nginx pod。我已使用带有Load Balancer选项(TCP Level 4)的Kubernetes服务将这些pod暴露给外部Internet。使用SessionAffinity:ClientIP选项打开粘性会话。
当我访问外部URL时,请求将转发到与SessionAffinity配置相同的内部Nginx pod。但是,如果我让浏览器闲置大约3分钟,然后再次访问外部URL,请求将转到另一个Nginx pod。为什么会这样?是否可以在GKE负载均衡器中配置SessionAffinity到期或超时?
我的Nginx Yaml,
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.7.9
ports:
- containerPort: 80
我的服务yaml for external load balancer,
apiVersion: v1
kind: Service
metadata:
name: live
spec:
ports:
- name: name2
port: 80
targetPort: 80
nodePort: 31080
selector:
app: nginx
type: LoadBalancer
sessionAffinity: ClientIP