我似乎无法让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图表显示另一个池也被击中) .