为Kubernetes资源请求/限制提供什么?

时间:2018-05-15 06:11:39

标签: kubernetes

我见过articles recommending应该实现资源请求/限制。但是,我没有找到关于要填写的数字的讨论。

例如,考虑一个容器在空闲时使用零CPU,在正常用户请求下使用80%,在遇到一些罕见请求时使用200%CPU:

  • 如果我把最大的2000m作为CPU请求,那么核心将在大部分时间处于空闲状态
  • 另一方面,如果我请求800米并且几个pod同时达到其CPU限制,则上下文切换开销将会启动

还有像

这样的案例
  • 大部分时间闲置的内部工具,然后在活动使用时跳至200%
  • 具有不同高峰时间的应用。例如,人们在工作时间使用的SaaS和人们离开工作后开始加载的聊天机器人。如果他们可以分享未使用的容量,那就太好了。

理想情况下vertical pod autoscaler可能会自动解决这些问题,但今天它仍处于alpha状态。

1 个答案:

答案 0 :(得分:1)

我一直在做的是使用telegraf收集资源使用情况,并在限制设置为1 CPU且内存请求的两倍时使用第95个百分点。

Screenshot

此方法的问题是

  • 在启动期间使用多核的应用程序,然后在其整个生命周期内使用多核将需要更长的时间才能启动。我观察到2分钟的春季启动时间为5分钟
  • 很少使用的应用程序将保留较少的资源,因此在调用时必须依赖于爆发容量。如果人气大增,这可能会成为一个问题。