首先请求转到我已经实现的代理服务,服务将请求随机转发到 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。