云原生之深入解析如何调试Kubernetes集群中的网络延迟问题

这篇具有很好参考价值的文章主要介绍了云原生之深入解析如何调试Kubernetes集群中的网络延迟问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、前言

  • 随着 Kubernetes 集群规模不断增长,对于服务延迟的要求越来越严苛,有时候观察到一些运行在 Kubernetes 平台上的服务正在面临偶发的延迟问题,这些断断续续的问题并不是由于应用本身的性能问题导致的。
  • 慢慢发现,Kubernetes 集群上的应用产生的延迟问题看上去似乎是随机的,对于某些网络连接的建立可能会超过 100ms,从而使得下游的服务产生超时或者重试,这些服务本身处理业务的响应时间都能够很好地保持在 100ms 以内,而建立连接就需要花费 100ms 以上是不可忍受的。另外,对于一些应该执行非常快的 SQL 查询(毫秒量级),从应用的角度看居然超过 100ms,但是在 MySQL 数据库的角度看又是完全正常的,并没有发现可能出现的慢查询问题。
  • 通过排查,可以将问题缩小到与 Kubernetes 节点建立连接的这个环节,包括集群内部的请求或者是涉及到外部的资源和外部的访问者的请求。最简单的重现这个问题的方法是:在任意的内部节点使用 Vegeta 对一个以 NodePort 暴露的服务发起 HTTP 压测,就能观察到不时会产生一些高延迟请求。那么,如何追踪定位到这个问题呢?

二、问题分析

  • 试图用一个简单的例子来复现问题,那么就希望能够把问题的范围缩小,并移除不必要的复杂度。起初,数据在 Vegeta 和 Kubernetes Pods 之间的流转的过程中涉及了太多的组件,很难确定这是不是一个更深层次的网络问题,因此需要来做一个减法:

文章来源地址https://www.toymoban.com/news/detail-757641.html

到了这里,关于云原生之深入解析如何调试Kubernetes集群中的网络延迟问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 云原生之深入解析Kubernetes中如何使用临时容器进行故障排查

    容器及其周围的生态系统改变了工程师部署、维护和排查工作负载故障的方式。但是,在 Kubernetes 集群上调试应用程序有时可能会很困难,因为可能在容器中找不到所需的调试工具。许多工程师使用基于精简、发行版构建无发行版的基础镜像,其中甚至没有包管理器或shell,

    2024年02月05日
    浏览(45)
  • 云原生之深入解析如何在Kubernetes下快速构建企业级云原生日志系统

    ELK 是三个开源软件的缩写,分别表示 Elasticsearch , Logstash, Kibana , 它们都是开源软件。新增了一个 FileBeat,它是一个轻量级的日志收集处理工具 (Agent),Filebeat 占用资源少,适合于在各个服务器上搜集日志后传输给 Logstash,官方也推荐此工具。 大致流程图如下: ① Elasticsearc

    2024年02月09日
    浏览(43)
  • 云原生之深入解析Kubernetes中Kubectl Top如何进行资源监控

    kubectl top 是基础命令,但是需要部署配套的组件才能获取到监控值: 1.8 以下:部署 heapter; 1.8 以上:部署 metric-server; kubectl top node:查看 node 的使用情况: kubectl top pod:查看 pod 的使用情况: 不指定 pod 名称,则显示命名空间下所有 pod,–containers 可以显示 pod 内所有的

    2024年02月10日
    浏览(49)
  • 云原生之深入解析如何正确计算Kubernetes容器CPU使用率

    使用 Prometheus 配置 kubernetes 环境中 Container 的 CPU 使用率时,会经常遇到 CPU 使用超出 100%,现在来分析一下: container_spec_cpu_period:当对容器进行 CPU 限制时,CFS 调度的时间窗口,又称容器 CPU 的时钟周期通常是 100000 微秒 container_spec_cpu_quota:是指容器的使用 CPU 时间周期总量

    2024年02月10日
    浏览(61)
  • 云原生之深入解析如何使用Vagrant Kubespray快速初始化K8S集群

    Vagrant 是一款用于构建及配置虚拟开发环境的软件,采用 Ruby 编写,主要以命令行方式运行。其主要使用 Oracle VirtualBox 提供虚拟化系统,与 Chef,Salt,Puppet 等环境配置管理软件搭配使用,可以实现快速搭建虚拟开发环境。 Kubespray 是利用 Ansible 工具,通过 SSH 协议批量让指定

    2024年02月15日
    浏览(36)
  • 【云原生|探索 Kubernetes 系列 5】简化 Kubernetes 的部署,深入解析其工作流程

    大家好,我是秋意零。 在前面 4 个章节中,我们充分了解了容器技术和 Kubernes 原生时代引擎的架构和设计思想,今天分享的主要内容是,探索 Kubernetes 部署,深入解析其工作流程 👿 简介 🏠 个人主页 : 秋意零 🧑 个人介绍 :在校期间参与众多云计算相关比赛,如:🌟

    2024年02月06日
    浏览(46)
  • 云原生之深入解析Kubernetes CNI插件的选型和应用场景

    在学习容器网络的时候,肯定都听说过 Docker 的 bridge 网络、Vethpair、VxLAN 等术语,从 Docker 到 Kubernetes 后,学习 Flannel、Calico 等主流网络插件,分别代表了 Overlay 和 Underlay 的两种网络传输模式,也是很经典的两款 CNI 网络插件。那么,还有哪些好用的 CNI 插件呢 ? 先来看看 C

    2024年02月15日
    浏览(44)
  • 【探索 Kubernetes|集群搭建篇 系列 5】简化 Kubernetes 的部署,深入解析其工作流程

    大家好,我是秋意零。 在前面 4 个章节中,我们充分了解了容器技术和 Kubernes 原生时代引擎的架构和设计思想,今天分享的主要内容是,探索 Kubernetes 部署,深入解析其工作流程 👿 简介 🏠 个人主页 : 秋意零 🧑 个人介绍 :在校期间参与众多云计算相关比赛,如:🌟

    2024年02月08日
    浏览(67)
  • 云原生之深入解析Kubernetes应用包管理器Helm的保姆级教程和实战

    ① 什么是 Helm? 我们可以将 Helm 看作 Kubernetes 下的 apt-get/yum,Helm 是 kubernetes 的包管理器,Helm 仓库里面只有配置清单文件,而没有镜像,镜像还是由镜像仓库来提供,比如 hub.docker.com、私有仓库。 想了解更多 Helm 的信息,请参考:官方文档。 ② Helm 架构 ③ Helm 安装 可以到

    2024年02月10日
    浏览(50)
  • 云原生之深入解析Thanos在EKS多集群架构上存储多个集群Prometheus

    随着 HiredScore 的产品和客户群越来越大,已经开始向 Kubernetes 过渡并迅速采用它,它是我们重要的障碍之一,也可能是最大的监控基础设施。我们在使用 Prometheus / Grafana 堆栈进行监控方面有一些经验,了解到希望创建一个更好、高可用性和弹性的基础架构,具有可行且具有成

    2024年02月02日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包