我似乎无法让GCP负载均衡器中的会话亲缘性行为正常工作 . 我的测试如下:

  • 我有一个容器引擎集群,其中包含2个节点池(不同的区域),每个池有2个节点 .

  • 我有一个设置为replica:8的部署,它(几乎)在4个节点之间均匀分布 .

  • 我的服务暴露如下(ips编辑)

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.
  • 我有一个带有后端服务的负载均衡器,它有2个后端指向端口31015.它有一个通过的运行状况检查和到达该后端服务的路由 .

  • 最后,我也在该后端服务上将Session关联设置为ClientIP .

卷曲路径并检查stackdriver中的日志后,我在日志的元数据中看到 container.googleapis.com/pod_name: ,其中包含许多不同的pod名称 . 在Kubernetes ui中,我也看到所有的pod都有一个小的cpu尖峰,表明我正在交替并击中每个 . 一个奇怪的部分是,在GCP中,当我查看后端服务的监视时,该图表显示我每秒仅向其中一个池的请求(即使来自k8s的日志和cpu图表显示另一个池也被击中) .