Google compute engine HTTP负载平衡器客户端关联不工作

Google compute engine HTTP负载平衡器客户端关联不工作,google-compute-engine,kubernetes,google-kubernetes-engine,Google Compute Engine,Kubernetes,Google Kubernetes Engine,我似乎无法使GCP负载平衡器中的会话关联行为正常工作。我的测试如下: 我有一个容器引擎集群,它有两个节点池(不同的区域),每个池有两个节点 我有一个被设置为replica:8的部署,它(几乎)均匀地分布在4个节点之间 我有一个如下公开的服务(ips编辑) 名称:svc foo 名称空间:默认值 标签:app=foo 选择器:app=foo 类型:节点端口 IP:。。。。 端口:8080/TCP 节点端口:31015/TCP 端点:…:8080,…:8080,…:8080+5更多。。。 会话关联

我似乎无法使GCP负载平衡器中的会话关联行为正常工作。我的测试如下:

  • 我有一个容器引擎集群,它有两个节点池(不同的区域),每个池有两个节点
  • 我有一个被设置为replica:8的部署,它(几乎)均匀地分布在4个节点之间
  • 我有一个如下公开的服务(ips编辑)

    名称:svc foo
    名称空间:默认值
    标签:app=foo
    选择器:app=foo
    类型:节点端口
    IP:。。。。
    端口:8080/TCP
    节点端口:31015/TCP
    端点:…:8080,…:8080,…:8080+5更多。。。
    会话关联:ClientIP
    没有事件。
    
  • 我有一个带有后端服务的负载平衡器,它有两个后端指向端口31015。它有一个通过的健康检查和一个到达后端服务的路径
  • 最后,我还将该后端服务上的会话关联设置为ClientIP

卷曲路由并检查stackdriver中的日志后,我在日志的元数据中看到了一堆不同的pod名称。在Kubernetes的ui中,我还看到所有的POD都有一个小小的cpu峰值,这表明我正在交替并击中每个POD。奇怪的是,在GCP中,当我查看后端服务的监控时,图表显示每秒仅对其中一个池的请求(尽管k8s的日志和cpu图表显示另一个池也被命中).

您是否在GCE中单独创建了负载平衡器,而不是依靠Kubernetes为您的服务自动创建负载平衡器?它是在GCP中手动创建的,因为我需要一个HTTP(L7)负载平衡器。IIUC,L3负载平衡器自动启用L7负载平衡,因为HTTP位于TCP之上。
Name:           svc-foo
Namespace:      default
Labels:         app=foo
Selector:       app=foo
Type:           NodePort
IP:         ....
Port:           <unset> 8080/TCP
NodePort:       <unset> 31015/TCP
Endpoints:      ...:8080,...:8080,...:8080 + 5 more...
Session Affinity:   ClientIP
No events.