GKE上的水平自动缩放导轨 – 特定Web服务器的select和与传统部署的不同之处

以下是关于使用heroku进行扩展的一个很好的写法(它适用于传统的部署)。

鉴于我们希望集装箱化的应用程序是单一的过程,我们如何得到:

  • 慢客户端保护
  • 反应保护慢

在Kubernetes / GKE环境中,充分利用水平吊舱自动缩放的优势?

假设我的部署看起来很像( credit @ nithinmallya4 ):

概观

我还没有selectWeb服务器,默认情况下, rackup正在服务WEBrick 。 我正在考虑把这个改成multithreading的Puma。

我担心的是autoscaler是基于CPU工作的,而不是基于consumed by a current http/s request的思想,所以它可能不会起作用。

  1. 我是否正确理解autoscaler?
  2. 什么是理想的扩大/缩小体系结构?

我们目前的想法:

  • nginx在一个荚边车模式(用gzip deflater )在一个Ingress后面。

  • (与rails-api相同的image ),假设它会更好地利用cpu并触发自动调整

  • HPA的自定义指标(仍然需要用1.8进行研究)

HPA基于CPU利用率。 您可以启用GKE上的群集自动调整(Beta版本中的currenlty),以根据工作负载调整Kubernetes群集的大小。 有关更多详细信息,请查看github上的Cluster autoscaler FAQ 。