2017-04-10 38 views
0

的數量爲了練習使用Kubernetes縮放,我創建了以下方案:自動縮放莢Kubernetes取決於連接的用戶


遊戲:

  • 我有一個用Java編寫的遊戲,有兩個玩家,一個主人(選擇一個低於100的數字)和一個猜謎遊戲(試圖猜測這個數字)。
  • 服務器實例終止,一旦猜測者正確猜測了數字,或者其中一個玩家斷開連接。
  • 每個服務器實例只允許最多2個連接(主,猜測)。

Kubernetes:

  • 每當服務器達到其最大連接數,我想Kubernetes自動啓動另一臺服務器實例,並使用新的服務器實例連接新用戶。

我的想法是使用Kubernetes-Client從Java服務器實例,並更新從每個服務器實例的Kubernetes集羣。在這種形式下,我將有一種分散管理集羣的方式。

你對此有何看法?有沒有更好的方法來解決這個問題?我可以舉個例子來更新pod上的元數據,並使用某種形式的自動縮放嗎?

回答

0

您可能想要使用kubernetes的集羣autoscaler功能。請參閱docs

您使用固定用戶數量作爲自定義指標的方法可能會有效,但使用通用指標(例如節點上的CPU消耗)可能會更好。爲此,您需要定義容器允許使用的最大消耗量。 autoscaler需要此信息來了解它是否可以在節點上安排其他Pod。

請注意,有兩層可擴展性需要考慮。豆莢和節點。自動調整程序將採用您定義的度量標準,並在需要時安排附加的窗格。您的節點的Pod容量有限,所以現在,根據您使用的基礎架構,還需要擴展工作節點的數量。例如,如果您在AWS上運行,您需要一個Autoscale組。設置此功能的最佳方法是根據排隊的預定Pod將AWS自動縮放組放大。因此,無論何時在隊列中有無法調度的窗格,您的自動調整組將添加另一個節點。這是一個解釋它的great article