如何在对Kubernetes服务的请求中使用会话亲和力? [英] How to use Session Affinity on requests to Kubernetes service?

查看:17
本文介绍了如何在对Kubernetes服务的请求中使用会话亲和力?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我找不到指定关联部署使用多个副本扩展时Kubernetes服务如何行为的文档。

我假设存在某种类型的负载平衡。是否与服务类型相关?

此外,我还希望在服务转发的请求中具有一些关联性(即,如果可能,所有具有特定后缀的请求都应该映射到相同的Pod,等等)。这是可以实现的吗?我看到的关闭是Ambassador,但这是服务级别的关联,而不是Pod级别的关联。

推荐答案

部署:无状态工作负载

我找不到指定关联部署使用多副本扩展时Kubernetes服务如何行为的文档。

使用Deployment部署的Pod应该是无状态的。

服务路由入口

使用IngressL7-Proxy时,路由可以基于http请求内容,但这取决于您使用的IngressController实现。例如,Ingress-nginx具有某些粘滞会话的支持,而其他实现可能具有您正在寻找的内容。例如Istio支持类似设置。

大使

Ambassador您所写的内容也支持某些会话关联/粘滞会话。

配置粘滞会话会使大使在给定会话中将请求路由到相同的后端服务。换句话说,会话中的请求由相同的KubernetesPod

提供服务

Pod到Service路由

当您的群集中的Pod向群集中的服务发出http请求时,默认情况下kube-proxy does routing循环的方式进行。

默认情况下,用户空间模式的Kube-Proxy会通过循环算法选择后端。

如果您希望Pod到服务的路由上有会话关联,则可以在Service对象上设置SessionAffinity: ClientIP字段。

如果您希望确保每次都将来自特定客户端的连接传递到相同的Pod,则可以通过将service.spec.essionAffity设置为"ClientIP"(默认为"None"),基于客户端的IP地址选择会话亲和性。

这篇关于如何在对Kubernetes服务的请求中使用会话亲和力?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆