首先,请求转到我实现的代理服务,服务将请求随机转发到pods,而不使用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,而不是指向其他副本,从而导致负载平衡不均。但我也不想让请求被随机转发。我希望来自同一客户端或不同客户端的所有请求都根据我在post请求中设置的自定义值转发,而不是通过clientIP考虑clientIP解析为每个请求的源ip。
发布于 2020-02-20 12:21:11
由于您可以阅读这里,因此它目前只支持ClientIP和None值。
sessionAffinity字符串支持"ClientIP“和”无“。用于维护会话亲缘关系。启用基于客户端IP的会话关联。肯定是ClientIP还是零。默认为无。更多信息:https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
不幸的是,没有其他的价值观被允许。
https://stackoverflow.com/questions/60316192
复制相似问题