k8s分发策略之SessionAffinity

前言

对于后端应用来说,使用有效的负载分发策略,有利于客户端访问到准确、不间断的后端服务,而不至于出现访问无效、失真的情况

分发策略SessionAffinity

基于客户端IP地址进行会话保持/关联的模式,即第1次将某个客户端发起的请求转发到后端的某个Pod上,之后从相同的客户端发起的请求都将被转发到后端相同的Pod上

  • 补充
    Round-Robin:轮替模式,即将客户端请求代理到合适的后端合适的Po

 

如上图所示,当Client第一次被代理到Backend Pod 1上,为了保证Client后续连接还是能够保证到Backend Pod 1上,需要采取的策略是SessionAffinity,当Client没有这个要求时,即可以随意被代理到某个Pod上,则需要采取的策略是Round-Robin,此策略为默认方式,可不进行配置。

在service上进行配置,示例

apiVersion: v1
kind: Service
metadata:
  name: myapp
  namespace: ops
spec:
  selector:
    app: myapp
  type: ClusterIP
  ports:
    - name: http
      protocol: TCP
      port: 8080
      targetPort: 8080
  sessionAffinity: ClientIP    #  配置sessionAffinity策略
  sessionAffinityConfig:
    clientIP:
      timeoutSeconds: 3600    # 最大会话停留时间

 

posted @ 2024-03-25 15:35  羊脂玉净瓶  阅读(170)  评论(0)    收藏  举报