您可以在 openshift 中设置您的路由以同时使用粘性会话和负载平衡吗?

问题描述 投票:0回答:1

我的应用程序使用 HAProxy 路由将传入请求负载均衡到一个或多个 Pod。由于粘性会话默认启用,因此它仅向单个 Pod 发送多个用户请求。我希望它能够将用户发送到之前访问过的同一个 Pod(粘性会话),并使用“leastconn”负载均衡器算法将新用户发送到连接最少的 Pod。这在 Red Hat Openshift 中可能吗?

我的路线:

kind: Route
apiVersion: route.openshift.io/v1
metadata:
  name: my-app
  namespace: my-project
  annotations:
    haproxy.router.openshift.io/balance: leastconn
spec:
  host: myhost.com
  to:
    kind: Service
    name: my-app
    weight: 100
  port:
    targetPort: http-8080
  tls:
    termination: edge
    insecureEdgeTerminationPolicy: Redirect
  wildcardPolicy: None
kubernetes https openshift haproxy
1个回答
0
投票

在 OpenShift 中使用粘性会话,无法保证新连接将转到与服务粘性会话的 Pod 不同的 Pod。

根据文档,您可以使用

haproxy.router.openshift.io/balance: source
注释在路线上启用粘性会话。此注释使用
source
负载均衡策略,该策略对源 IP 地址进行哈希处理并使用它在 Pod 之间分发请求。您只能启用
leastconn
source
roundrobin
负载平衡策略之一。

因此,有可能出现新连接,并且所应用的源 IP 地址哈希算法确定新连接应前往当前为粘性会话连接提供服务的同一个 Pod。

© www.soinside.com 2019 - 2024. All rights reserved.