如何在对Kubernetes服务的请求上使用会话亲和力?

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

我假设存在某种负载平衡。与服务类型有关吗?

此外,我希望在服务转发的请求中具有某种亲和力(即,如果可能的话,具有特定后缀的所有请求应始终映射到同一pod,等等)。那可以实现吗?我见过的Ambassador关闭,但这是服务级别的亲和力,而不是pod级别。

xy328545073 回答:如何在对Kubernetes服务的请求上使用会话亲和力?

部署:无状态工作负载

  

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

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

服务路由入口

使用Ingress(L7代理)时,路由可以基于http请求内容,但这取决于您使用的IngressController的实现。例如。 Ingress-nginx粘性会话具有 some 支持,其他实现可能正是您所需要的。例如。 Istio支持类似的设置。

大使

您撰写的

Ambassador确实对会话相似性/粘性会话具有一些支持。

  

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

提供服务

Pod到服务的路由

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

  

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

如果要在Pod到服务的路由上建立会话亲缘关系,可以在SessionAffinity: ClusterIP对象上设置Service字段。

  

如果要确保每次都将来自特定客户端的连接传递到同一Pod,可以通过将service.spec.sessionAffinity设置为“ ClientIP”(默认值为“无”)。

本文链接:https://www.f2er.com/3065547.html

大家都在问