在我的kubernetes集群中,存在许多服务间通信。我还启用了水平Pod自动缩放器,我们将 service 资源用于所有这些服务。
我需要了解服务资源如何在pod上平衡请求。
我确实读过有关 SessionAffinity 的信息,但如果您不使用Ingress资源,它仅支持ClientIP。
想知道服务是否可以基于特定Pod上的负载(就CPU,内存等)进行负载平衡。简而言之, sessionAffinity 配置是否支持ClientIP以外的任何其他功能。我不想引入 Ingress 资源,因为这些不是面向外部的请求,而是服务间通信。
谢谢。
答案 0 :(得分:2)
简而言之,sessionAffinity配置是否支持ClientIP以外的任何其他功能
不,不是。请参见model definition here中的v1.SessionAffinityConfig
:也不会。我已经感觉到sessionAffinity超出了Service的范围,我很惊讶它根本不存在。
如果您想更好地控制连接,则需要在服务之前使用某种类型的层。有很多服务网格可以解决您的问题(请参见isito或Linkerd)
您还可以使用nginx推出自己的解决方案,并将对该服务的请求发送到nginx窗格。