Kubernetes中的自动缩放窗格取决于连接用户的数量

时间:2017-04-10 18:03:29

标签: java kubernetes fabric8

为了使用Kubernetes练习缩放,我创建了以下场景:

游戏:

  • 我有一个用Java编写的游戏,有2个玩家,一个大师(选择一个低于100的数字)和一个猜测者(试图猜测这个数字)。
  • 一旦猜测者正确猜到了号码,或者其中一个玩家断开连接,服务器实例就会终止。
  • 每个服务器实例最多只允许2个连接(master,guesser)。

Kubernetes:

  • 每当服务器达到最大连接数时,我希望Kubernetes自动启动另一个服务器实例,并为连接的新用户使用该新服务器实例。

我的想法是使用Java服务器实例中的Kubernetes-Client,并从每个服务器实例更新Kubernetes集群。在这种形式中,我将采用分散的方式来管理集群。

您对此有何看法?有没有更好的方法来解决这个问题?我可以更新pod上的元数据并使用某种形式的自动缩放吗?

1 个答案:

答案 0 :(得分:0)

您可能希望使用kubernetes的群集自动缩放器功能。请参阅docs

您使用固定用户号作为自定义指标的方法可能会有效,但您最好使用通用指标,例如节点上的CPU消耗。为此,您可以定义允许容器使用的最大消耗量。自动定标器需要此信息才能知道它是否可以在节点上安排其他pod。

请注意,要考虑两个可伸缩性层。 pod和节点。自动缩放器将采用您定义的指标,并在需要时安排其他窗格。您的节点将具有有限的容量容量,因此,现在,根据您使用的底层基础结构,您还需要扩展工作节点的数量。例如,如果您在AWS上运行,则需要一个Autoscale组。设置此功能的最佳方法是让AWS Autoscale组根据排队的计划容器进行扩展。因此,只要队列中有无法安排的pod,您的Autoscale组就会添加另一个节点。这是一个解释它的great article