kubernetes会话亲缘行为

时间:2019-01-10 18:44:22

标签: kubernetes amazon-elb

我正在使用创建的kubernetes 1.9.2,但使用kubeadm。 这个kubernetes集群运行在4个ec2节点中。

我有一个部署,要求在每个Pod中使用缓存。 为了确保我们使用了ClusterIP中的会话亲和力。

由于我在Kubernetes集群之前是ELB,所以我想知道会话亲和力如何表现。

自然的行为是,对于每个客户端IP,不同的客户端将获得请求,但考虑到流量是通过ELB传输的,会话亲缘关系可以识别出哪个IP,即ELB IP还是实际的客户端IP?

当我检查到豆荚的流量时,我看到102个豆荚收到了所有请求,而另外2个豆荚正在等待。

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

#include <stdio.h> #include <stdlib.h> //The program is trying to attempt to give 'test[0] a value of 255' int main(int argc, char ** argv) { //example variables int height = 4; int width = 4; unsigned char image[width][height]; char *test; //gave the 0th element a basic value image[0][0] = 255; //prints out 'Image = 255' as expected printf("Image = %d\n", image[0][0]); //allocate test some memory test = malloc(height * width * sizeof(char)); //Now the problems.. //attempt to give test[0] the value of image[0][0] test[0] = image[0][0]; //prints out '-1' printf("Test = %d\n", test[0]); } 识别客户端IP,ELB应该通过客户端IP。

我认为您应该使用HTTP Headers and Classic Load Balancers并设置SessionAffinity

此外,这似乎是一个已知问题enabling Session affinity goes to a single pod only #3056

据报道,该版本是NGINX Ingress控制器的X-Forwarded-For: client-ip-address0.18.0版本。

问题已关闭并评论了0.19.0版中已修复的问题,但最初的作者在12月表示对他仍然无效。