什么原因导致豆荚慢慢变成kubernetes?

Kyl*_*bel 7 kubernetes

我的集群上的某些pod几乎在所有方面都非常慢.启动时间,网络,i/o.

我已经最小化了这些容器中的应用程序代码,它似乎没有任何效果,这些基本上是运行带有运行状况检查端点的简单webapi的最小容器.

我想知道有人可以帮我找出错误或调试这个问题.

当我说各个方面都很慢时,我指的是一些事情

  1. 启动速度很慢.我实际上必须将准备探测初始延迟改为接近5分钟.

  2. 在运行任何命令的容器内部都很慢.apt-get update即使容器已运行数小时,运行时间也接近5分钟.

  3. 到RDS数据库的任何连接就会超时,至少在第一个10分钟的吊舱运行,之后它击中或错过,有时正常的速度,有时候我们就会开始变得连接超时再次主要,如果吊舱没有被使用( /请求一段时间).

在具有相同基本图像的几乎相同的容器上,容器将在不到几秒的时间内启动,并且运行apt-get update将需要3秒钟.我不能为我的生活看到豆荚之间有什么不同,导致一些'好豆荚',而另一些则是'坏豆荚'.

在本地运行任何这些图像,它们将立即开始(不到一秒左右).

我的环境

集群(AWS)

  • 1 c4.large master
  • 3个c4.xlarge节点
  • 每个节点大约10-20个pod
  • 使用'标准'设置配置kops(我没有做过任何棘手的事)

我检查/试过的东西

  • 太多的豆荚

    我的第一个想法可能是我运行了太多豆荚.我为此启动了全新的节点(c4.xlarge),并且这个pod是集群中唯一运行的pod,问题仍然存在.

  • 节点资源

    检查每个节点级别度量标准我没有什么看起来不寻常(也尝试了几个全新的高功率节点)

  • 部署/ Pod度量标准

    我很高兴能够展示出任何人都可以在这里想到的任何指标,没有什么能看出常规.我有Prometheus运行,并已查看我可以考虑检查的每个指标.我看不出"好"的运行吊舱和"糟糕的"吊舱之间的区别.

  • 集群本身

    我实际上有2个集群,都配置了kops,这在两个集群上都可以看到(虽然并不总是相同的应用程序,这很奇怪).

任何帮助在这里表示赞赏

TJ *_*man 6

发生这种情况的原因可能是资源限制的配置过于受限,或者由于缺少配置资源请求,这允许在没有运行工作负载的必要要求的节点上配置 pod。

您可以通过为部署到 Kubernetes 的每个应用程序定义适当的资源请求来解决此问题。简而言之,您可以控制对CPU 时间、内存字节和 Linux Hugepages份额的限制和请求。