尝试了解在AWS中使用service type = loadbalancer时应如何配置粘性会话 我的后端是运行tomcat应用程序的2个pod 我看到该服务也创建了AWS LB,我在AWS LB配置中设置了正确的cookie值,但是当访问系统时,我看到我一直在我的pod / tomcat实例之间切换
我的服务配置
kind: Service
apiVersion: v1
metadata:
annotations:
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: http
labels:
app: app1
name: AWSELB
namespace: local
spec:
type: LoadBalancer
ports:
- port: 8080
targetPort: 8080
selector:
app: app1
是否还缺少其他设置? 谢谢 千斤顶
答案 0 :(得分:1)
您可以尝试通过将service.spec.sessionAffinity设置为" ClientIP"来设置基于客户端IP的会话亲和性。 (默认为"无")。 (http://kubernetes.io/docs/user-guide/services/)
您还可以尝试运行可以更好地管理内部路由的入口控制器,请参阅:https://github.com/kubernetes/kubernetes/issues/13892#issuecomment-223731222
答案 1 :(得分:1)
不支持。请参阅具有血腥细节的https://github.com/kubernetes/kubernetes/issues/2867。
答案 2 :(得分:0)
kube代理是L4。如果您的源IP相同,则无法区分客户端。您需要L7代理才能阅读这些详细信息。检查Ingress:https://github.com/kubernetes/ingress/tree/master/examples/affinity/cookie/nginx 这使用cookie来识别您的用户并跳过直接调用pod的L4 kube-proxy。