k8s ingress访问响应慢的问题(阿里云环境)

  • 阿里云国际版折扣https://www.yundadi.com

  • 阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

    一、故障原因

       生产环境采用的是ingress对接阿里云SLB但出现了多次访问服务就会有一次响应特别慢的故障记录一下处理方法。

       后端ingress的pod 上进行抓包抓一下ingress的网络流量多访问复现几次问题看看从ingress pod 的网络抓包里看看能否看到访问超时的情况从网络连接方面分析。

    二、处理办法查询ingress的pod

    1、 可以先执行kubectl get pods podname -n 命名空间 -o wide看看pod运行的节点。
    2、 登录到对应的node上执行 docker ps|grep pod名称找到容器ID然后在执行 docker inspect -f {{.State.Pid}} 容器id 找到容器的进程pid。
    3、 给节点做个快照备份执行yum -y install util-linux.x86_64 安装下 nsenter工具然后执行 nsenter --target 容器pid -n 进入到容器的网络名称空间通过tcpdump -i eth0 -s 0 -w /var/tmp/1.cap 抓包。用Wireshark分析发现有超时现象。找会网络的同事分析

    #查询内核参数值
    sysctl -a --pattern=tcp_tw_recycle
    #设置内核参数
    sysctl -w net.ipv4.tcp_tw_recycle=0
    #绝对路径
    #永久有效
    echo 0 > /proc/sys/net/ipv4/tcp_tw_recycle
    sysctl -p

    三、问题原因

      使用的是阿里云的VPC网络客户端有三台都是走的同一个IP的NAT网关出公网数据包通过NAT网关后源IP会变成NAT地址如果服务端开启了net.ipv4.tcp_tw_recycle=1tcp快速回收数据包到达服务端后发出的TPC/IP时间戳不连续服务端就会识别错乱丢弃连接

  • 阿里云国际版折扣https://www.yundadi.com

  • 阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
    标签: k8s