kubernetes - Kubernetes 会话亲和行为
问题描述
我正在使用 kubernetes 1.9.2 创建但 kubeadm。这个 kubernetes 集群在 4 个 ec2 节点上运行。
我有一个需要在每个 pod 中使用缓存的部署。为了完成我们使用来自 ClusterIP 的会话亲和性。
因为我是 Kubernetes 集群前的 ELB,所以我想知道会话亲和性的表现如何。
自然的行为是,对于每个客户端 IP,都会有不同的请求,但考虑到流量是通过 ELB 传输的,会话亲缘关系识别哪个 IP,ELB IP 还是实际客户端 IP?
当我检查 pod 的流量时,我看到 102 个 pod 收到了所有请求,而另外 2 个 pod 正在等待。
非常感谢您的帮助。
解决方案
SessionAffinity
识别客户端 IP,ELB 应该通过客户端 IP。
我认为您应该使用HTTP 标头和经典负载均衡器并进行设置X-Forwarded-For: client-ip-address
此外,这似乎是一个已知问题,使会话亲和性仅转到单个 pod #3056。
报告了NGINX Ingress 控制器0.18.0
的0.19.0
版本。
问题已关闭并评论说已在 version 中修复0.21.0
,但在 12 月最初的作者说它仍然对他不起作用。
推荐阅读
- mysql - 将 mysql(在重复键上)查询转换为 oracle 合并
- angular - 过滤器仅返回 1 或 0 结果与数据
- react-native - 无法在 React Native 中读取属性“prev”
- c# - 通过 C# 更改扫描设置
- android - 如何在 Android 应用程序中使用 Alexa Voice Service 设备 SDK?
- automata-theory - 在自动机理论中,回文长度是什么意思?甚至回文?奇怪的回文?
- node.js - 如何从 api 获取数据并使用履行在操作中显示?
- python - scipy.misc 库在机器学习中的用途是什么?
- sed - 从 json 参数获取值不起作用(jq:1 编译错误)
- javascript - 使用 php 中的 from 操作将 td 值传递到另一个页面