服务资源中的负载平衡逻辑

时间:2019-01-10 18:41:05

标签: kubernetes

在我的kubernetes集群中,存在许多服务间通信。我还启用了水平Pod自动缩放器,我们将 service 资源用于所有这些服务。

我需要了解服务资源如何在pod上平衡请求。

我确实读过有关 SessionAffinity 的信息,但如果您不使用Ingress资源,它仅支持ClientIP。

想知道服务是否可以基于特定Pod上的负载(就CPU,内存等)进行负载平衡。简而言之, sessionAffinity 配置是否支持ClientIP以外的任何其他功能。我不想引入 Ingress 资源,因为这些不是面向外部的请求,而是服务间通信。

谢谢。

1 个答案:

答案 0 :(得分:2)

  

简而言之,sessionAffinity配置是否支持ClientIP以外的任何其他功能

不,不是。请参见model definition here中的v1.SessionAffinityConfig:也不会。我已经感觉到sessionAffinity超出了Service的范围,我很惊讶它根本不存在。

如果您想更好地控制连接,则需要在服务之前使用某种类型的层。有很多服务网格可以解决您的问题(请参见isitoLinkerd

您还可以使用nginx推出自己的解决方案,并将对该服务的请求发送到nginx窗格。