多副本

多副本是保障应用高可用的最直接手段的手段,其基本要求就是:stateless

  1. ![image.png](https://cdn.nlark.com/yuque/0/2020/png/2332713/1608998347470-f399d97e-74b2-45b6-8dd0-3d5c53279523.png#align=left&display=inline&height=195&margin=%5Bobject%20Object%5D&name=image.png&originHeight=390&originWidth=750&size=225957&status=done&style=none&width=375)<br />stateless的优势在于:
  • 支持横向扩容,多副本可以提供性能,吞吐量
  • 便于运维,测试
  • 容错性高(在这里不是很理解?)

有状态应用如何处理, 首先可以考虑改造为无状态的:

  • 将session/登录等信息,保存在外部共享存储中(redis)
  • 将文件存储到网络存储(s3)

其次,k8s statefulset能适配有状态到应用,但还是绕不开多副本流量分发:

  • k8s支持4层会话保持???
  • 基于client ip的session Affinity???
  • 7层会话保持效果不佳???
  • 在k8s-kong做header hash