kubernetes - Kubernetes / Agones 服务缩减
问题描述
我有一个运行 x 数量的游戏服务器(pod)的部署。我正在使用 Agones 来确保与玩家连接的游戏服务器不会因缩减规模而停止。此外,我使用一个服务(“连接”到所有游戏服务器)作为 Pod 的 LoadBalancer,据我了解,当玩家连接到该服务时,它会随机选择一个游戏服务器。这在放大时效果很好,但在缩小时效果不佳。由于 Agones 会阻止上面有玩家的游戏服务器缩小,因此 Pod 的数量基本上不会减少,因为该服务没有考虑所需副本的数量(实际数量更高,因为上面有玩家的游戏服务器不会被缩小) .
有没有办法阻止 LoadBalancer 服务选择不再需要的游戏服务器(副本)?例如:当前的网络负载只需要 3 个副本,但目前有 5 个,因为有 5 个服务器上有播放器阻止它们关闭。我只想将新负载分布在 3 个所需的副本(游戏服务器)上,让其他 2 个有机会接触到 0 个玩家,因此它最终能够自行关闭。
解决方案
我建议不要使用 LoadBalancer 将玩家分散到您的游戏实例中,而是使用 Agones GameServerAllocation API 让 Agones 为您找到可用的游戏服务器。
如果您允许多个玩家连接到同一个游戏服务器,请查看基于玩家容量分配的集成模式。Agones 会将玩家打包到具有可用容量的游戏服务器上(而不是将它们分散开),这将防止您将极少数玩家分布在所有游戏服务器上,当您使用负载平衡器将玩家分配到游戏时会发生这种情况服务器。
推荐阅读
- javascript - 在重新加载的 iframe 中使用 postMessage 不起作用
- go - 使用供应商目录中的本地依赖项时出现编译错误
- django - 如何在 2 个不同的页面中保持具有相同功能的表单输入
- .net - .NET 什么时候任务被认为是错误的?
- javascript - 如何在递归逻辑中使用 javascript 获得任意数字的幂?
- python-3.x - 如何从 python QMediaPlayer 上的视频中截取屏幕截图
- python - 如何使用 Multiindex 将索引重置为整数值?
- c++ - 为什么 boost zlib 压缩器会抛出奇怪的错误
- wordpress - Gravity Forms 从前一个输入页面获取图像以显示在 HTML 块中
- python - 提交到 github 的 Discord 机器人