Kube-proxy 或 ELB“延迟”HTTP 请求数据包[关闭]

2024-01-04

我们正在 AWS 中的 Kubernetes (1.9.3) 上运行 Web API 应用程序(使用 KOPS 设置)。该应用程序是一个部署并由服务(类型:LoadBalancer)表示,该服务实际上是AWS上的ELB(v1)。 这通常是有效的 - 除了一些数据包(HTTP 请求的片段)在客户端 应用程序容器之间的某个位置“延迟”。 (在 HTTP 和 HTTPS 中,终止于 ELB)。

从节点侧:

( 注意:服务器端几乎所有数据包都重复到达 3 次 )

我们使用 keep-alive,因此 tcp 套接字处于打开状态,并且请求到达和返回的速度相当快。那么问题就发生了:

  • 首先,只有标头的数据包到达 [PSH,ACK](我通过 tcpdump 在有效负载中看到标头)。
  • 容器发回 [ACK]。
  • tcp 套接字/流在很长一段时间内保持安静(长达 30 秒及以上- 但间隔不一致,我们认为 >1s 是一个问题)。
  • 另一个带有 HTTP 数据的 [PSH, ACK] 到达,请求最终可以在应用程序中处理。

从客户端:

我从我的计算机上运行了一些流量,将其记录在客户端以查看问题的另一端,但不能 100% 确定它代表真正的客户端。

  • 带有标题的 [PSH,ASK] 消失。
  • 带有部分有效负载的几个 [ACK] 开始发出。
  • 几秒钟(或更长时间)没有响应到达,并且没有更多数据包发出。
  • 标记为[TCP 窗口更新] 的[ACK] 到达。
  • 再次短暂暂停,[ACK] 开始到达,会话继续,直到有效负载结束。

这仅在负载下发生。

据我了解,这介于 ELB 和 Kube-Proxy 之间,但我一无所知,迫切需要帮助。

这是 Kube-Proxy 运行时使用的参数:

Commands: /bin/sh -c mkfifo /tmp/pipe; (tee -a /var/log/kube-proxy.log < /tmp/pipe & ) ; exec /usr/local/bin/kube-proxy --cluster-cidr=100.96.0.0/11 --conntrack-max-per-core=131072 --hostname-override=ip-10-176-111-91.ec2.internal --kubeconfig=/var/lib/kube-proxy/kubeconfig --master=https://api.internal.prd.k8s.local --oom-score-adj=-998 --resource-container="" --v=2 > /tmp/pipe 2>&1

我们使用 Calico 作为 CNI:

到目前为止我已经尝试过:

  • Using service.beta.kubernetes.io/aws-load-balancer-type: "nlb"- 问题仍然存在。
  • (尝试使用 ELB 设置希望能解决问题 ́_(ツ)_/́ )
  • 在 Kube-Proxy 中查找错误,发现很少出现以下情况:

E0801 04:10:57.269475 1 Reflector.go:205] k8s.io/kubernetes/pkg/client/informers/informers_ generated/internalversion/factory.go:85:无法列出* core.Endpoints:获取https://api.internal.prd.k8s.local/api/v1/endpoints?limit=500 https://api.internal.prd.k8s.local/api/v1/endpoints?limit=500&resourceVersion=0: 拨打 tcp: 在 10.176.0.2:53 上查找 api.internal.prd.k8s.local: 没有这样的主机

...和...

E0801 04:09:48.075452 1 proxier.go:1667] 无法执行 iptables-restore: 退出状态 1 (iptables-restore: 第 7 行失败 ) I0801 04:09:48.075496 1 proxier.go:1669] iptables 恢复失败后关闭本地端口

我找不到任何描述此类问题的内容,非常感谢任何帮助。欢迎提出有关如何继续和排除故障的想法。


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Kube-proxy 或 ELB“延迟”HTTP 请求数据包[关闭] 的相关文章

随机推荐

  • /etc/rc.local 和 ~/.bashrc 有什么区别?

    这是一个与linux相关的问题 我四处搜寻但没有得到很好的解释 在我看来 这两个文件在我登录时都会配置设置 但是有什么区别吗 我注意到在决定哪些内容应该放入两个不同的文件中似乎有 一些规则 例如 如果我需要向 PATH 添加特定的搜索路径
  • 如何使用apache poi 3.6获取A1(单元格地址)的单元格值

    我有 Excel 单元格地址 如 A1 A2 那么 如何使用 poi 3 6 以编程方式访问此单元格 另一种方法是 row mySheet getRow cell row getCell 但我的地址格式为 A1 那么 我如何以编程方式访问这
  • 如何使用模板函数从缓冲区(T* 数据数组)创建 cv::Mat?

    我想编写一个模板函数来复制指针引用的数据T image to cv Mat 我很困惑如何概括 T 和 cv type 匹配 template
  • 将 Android studio 更新到 2.2 后出现“无法解决 x”错误

    Google 推出了 Android Studio 2 2 所以我将 Android studio 2 1 更新为 Android Studio 2 2 当我制作项目时 我收到这些错误 和更多 Error Failed to resolve
  • 添加apache用户组文件上传权限

    我有一个 php 脚本将文件上传到某个文件夹 目前它们作为 psacln 组上传 以便我可以通过 FTP 删除文件 当 PHP 作为 FastCGI 运行时 这一切都工作正常 我必须将 PHP 更改为作为 Apache 模块运行 以便让 p
  • 为什么Ul上方有空白

    当我放置无序列表时 then why top bar goes down I cannot find the reason behind this Please tell me how to fix this problem http js
  • Joomla MySQL 性能

    我一直在开发一个版本为2 5 11的Joomla网站 网站的流量将会非常高 我的问题是关于 MySQL 查询性能的 数据库包含大约 60000 行内容表 下面看到的查询 核心 com content 文章模型查询 执行时间约为 6 秒 非常
  • 如何显示尾随“%”符号?

    在 SO Line 的折扣百分比列中 我想在其中显示尾随 我尝试将显示格式设置为 P 但这是一场灾难 由于实际值是数据库中的百分比 因此不必乘以 100 感谢您的回答 您应该设置DisplayFormat to 0 00 结果你会得到以下结
  • Py2Exe 检测为病毒。备择方案?

    所以 我创建了一个python程序 使用 Py2Exe 转换为 exe 并尝试使用 PyInstaller 和 cx freeze 所有这些都会触发程序在virustotal 和我的本地计算机上被avast avg 和其他程序检测为病毒 我
  • Cython:编译独立的静态可执行文件

    我正在尝试编译一个不使用动态加载器的可执行文件 ELF 文件 我用了Cython将Python编译为C cython3 3 test py embed Then gcc test c otest pkg config libs cflags
  • 如何将 Material UI 集成到 Svelte 项目中

    我想整合材质用户界面 https sveltematerialui com 进入我的 Svelte 项目 我尝试遵循官方文档here https github com hperrin svelte material ui 但我不知道为什么在
  • 有没有类似于 Java 的 mini-mvc-profiler 的东西?

    正如标题所说 有没有类似的东西迷你 MVC 分析器 http code google com p mvc mini profiler 对于Java 我正在寻找可以用于Struts http struts apache org or 春季MV
  • 我们可以指定散景导出的 png 文件大小/分辨率吗?

    使用 Python Bokeh export png 函数 我们可以将对象导出到 png 文件 但是 我找不到任何方法来指定生成的 png 文件大小 分辨率 我发现我使用相同的代码在Windows和Linux中得到了不同的png文件 在 W
  • Postgresql 捷克语全文搜索(无默认语言配置)

    我正在尝试设置捷克语全文搜索 我有点困惑 因为我看到了一些cs cz affix and cs cz dict里面的文件tsearch data文件夹 但没有捷克语配置 它可能不随 Postgres 一起提供 那么我应该创建一个吗 我必须创
  • 使用 Gradle 将依赖项添加到运行时映像

    我不知道如何添加依赖项 我的模块需要 Log4j 我向模块信息添加了要求 我还添加了 gradle 依赖项 我可以运行项目 但无法创建自定义运行时映像 plugins id java id application id org openjf
  • 返回数组中重复元素的最佳方法

    这是我用来返回重复元素的方法 但是 当我的数组有大量长文本项目时 我面临着最危险的性能问题 例如浏览器关闭等 var arr 9 9 111 2 3 4 4 5 7 var sorted arr arr sort var results f
  • vscode Typescript Intellisense 仅显示第一个选项?

    我正在开发我的 React Native TypeScript 应用程序 今天突然 没有更新 没有更改设置 我的智能感知开始只显示第一个建议 无论如何 这个问题不是特定于特定类的 我已经多次重新启动Vscode 重新启动TS语言服务器 删除
  • 参数中包含空格的 Python 子进程调用在 Windows 上不起作用

    我正在运行一个 java 命令 该命令获取类路径和其他有空格的文件位置 Windows 似乎不喜欢它 我从 C Program Files Splunk 运行程序 其中有一个空格 这是我的命令 c1 os path join appdir
  • 如何获取TFS集合中所有项目的名称?

    关于如何从TFS获取集合参考here https stackoverflow com questions 16100991 how to get all collections from tfs 16100992 16100992 请参考h
  • Kube-proxy 或 ELB“延迟”HTTP 请求数据包[关闭]

    Closed 这个问题是与编程或软件开发无关 help closed questions 目前不接受答案 我们正在 AWS 中的 Kubernetes 1 9 3 上运行 Web API 应用程序 使用 KOPS 设置 该应用程序是一个部署