【问题标题】:Is there a way to provide custom value other than ClientIP for sessionAffinity in kubernetes?有没有办法为 kubernetes 中的 sessionAffinity 提供除 ClientIP 之外的自定义值?
【发布时间】:2020-06-04 13:23:07
【问题描述】:

首先请求转到我已经实现的代理服务,服务将请求随机转发到 Pod,而不使用 sessionAffinity。我想根据我使用 post 方法在请求参数中设置的自定义值向同一个 pod 发送请求。我在服务 yml 中使用了 sessionAffinity。

这是带有 sessionAffinity 的服务 yml:

apiVersion: v1
metadata:
  name: abcd-service
  namespace: ab-services
spec:
  ports:
  - name: http
    protocol: TCP
    port: ****
    targetPort: ****
    nodePort: *****
  selector:
    app: abcd-pod
  sessionAffinity: ClientIP
  sessionAffinityConfig:
    clientIP:
      timeoutSeconds: 600
  type: NodePort

现在的问题是,当多个客户端从同一 IP 地址发送请求时,所有请求都被定向到单个 pod 而不是其他副本,导致负载平衡不均匀。但我也不希望随机转发请求。我希望根据我在发布请求中设置的自定义值而不是通过 clientIP 转发来自同一客户端或不同客户端的所有请求,因为 clientIP 解析为每个请求的源 IP。

【问题讨论】:

  • 您好,您有没有找到其他方法根据其他值将请求路由到特定 pod?我也需要类似的解决方案

标签: ruby kubernetes sticky-session session-affinity


【解决方案1】:

如您所见,here 目前仅支持 ClientIPNone 值。

sessionAffinity 字符串 支持“ClientIP”和“None”。用于维护会话亲和性。启用基于客户端 IP 的会话亲和性。 必须是 ClientIP 或 None。默认为无。更多信息: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies

很遗憾,不允许使用其他值。

【讨论】:

    猜你喜欢
    • 2018-12-28
    • 1970-01-01
    • 2019-04-28
    • 2023-01-30
    • 2011-05-04
    • 2021-10-27
    • 2021-12-07
    • 2012-04-15
    • 1970-01-01
    相关资源
    最近更新 更多