K8S Ingress上传大文件延迟

Kubernetes对外发布架构

K8S Ingress上传大文件延迟_第1张图片

情形复现

在K8S中部署一个文件上传服务, Ingress中配置对外发布的域名、路径、Service等参数,默认不添加任何注解,在Postman或者idea上传一个100MB文件测试需要1min左右时间

文件上传服务之前部署在虚拟机里面,通过主机+端口访问上传相同大小的文件只需要几秒钟,然而服务迁移到容器环境之后速度慢了这么多,就需要对上传速度慢进行问题定位和分析

排查思路

  1. 将部署在容器的应用通过service开启一个Nodeport端口对外访问来验证看看是不是服务本身的问题,结果上传的速度也是几秒就完成了
  2. 检查Ingress的参数配置,本身集群创建之后就默认设置proxy-body-size、X-Forwarded-Prefix等,应该不是这些导致的大文件上传很慢,创建一个测试ingress配置path到service,验证集群中每个ingress节点的上传速度,全部节点都测试一遍发现速度也很快大概是几秒
  3. 如果排除了ingress的配置,就需要从F5的层面去看,最终发现是转发协议L7层影响了大文件上传速度,将L7层改成L4层转发速度就很快,由于这个集群部署了很多业务,而且业务发布的域名绑定都是同一个F5的VIP,如果修改F5的转发协议可能会导致业务出现问题,而且这种变更影响很大
  4. 建议业务将大文件上传的服务单独申请一个F5 VIP并配置L4层协议

你可能感兴趣的:(运维,kubernetes,网络协议)