Pub Sub 数据关联与 Pod 自动缩放

Posted

技术标签:

【中文标题】Pub Sub 数据关联与 Pod 自动缩放【英文标题】:Pubsub data affinity with Pod autoscalling 【发布时间】:2019-01-01 20:21:28 【问题描述】:

我正在运行一个启用 pod 自动缩放的谷歌云 Kubernetes 项目。 Pod 使用来自 pubsub 订阅的消息(流数据)。多个用户将时间戳数据包发布到上述 pubsub 主题。但是所有发布的数据包都具有相同的结构。在实际场景中,所有可用的 Pod 无限制地消费所有用户的数据。用户未绑定到特定的 pod。

我想要在这里实现亲和力(特定用户的数据应该由特定的pod处理。请参考图像以获得进一步的说明)

任何人都可以在此处就实现数据亲和力提出建议/评论。

【问题讨论】:

【参考方案1】:

基本上,您要做的是随着时间的推移从用户那里收集 Pub/Sub 主题,然后将这些主题发送到 pod。

我知道当您说data affinity 时,实际上是指session affinity

您可以使用负载均衡器配置Session affinity。您说过流量的类型是 Cloud Pub/Sub。这意味着您无法设置 HTTP 负载均衡器。它必须是 HTTPS 流量。 Cloud Pub/sub traffic uses HTTPS traffic.

附带说明,GKE 入口规则 does not allow the use of session affinity yet。

您可以使用GKE HTTPS Internal Load Balancer,或外部GCP HTTPS Load Balancer。这会将流量引导到特定的 pod。

【讨论】:

以上是关于Pub Sub 数据关联与 Pod 自动缩放的主要内容,如果未能解决你的问题,请参考以下文章

Google Cloud Pub/Sub 中的积压工作

我可以自动缩放 Kind : Pod 吗?

EKS:在特定 AWS 自动缩放组上运行特定服务(pod)

使用 pubsub 等谷歌云指标自动缩放 pod

同时自动缩放卷和 Pod (Kubernetes)

Kubernetes:如何将自动缩放 pod 的 accessModes 更改为 ReadOnlyMany?