使用 Azure Kubernetes 服务 (AKS) 实现同步多人游戏

时间:2021-07-15 | 标签: | 作者:Q8 | 来源:Microsoft Azure网络

小提示:您能找到这篇{使用 Azure Kubernetes 服务 (AKS) 实现同步多人游戏}绝对不是偶然,我们能帮您找到潜在客户,解决您的困扰。如果您对本页介绍的使用 Azure Kubernetes 服务 (AKS) 实现同步多人游戏内容感兴趣,有相关需求意向欢迎拨打我们的服务热线,或留言咨询,我们将第一时间联系您!

< ">您可以选择使用托管Azure Kubernetes服务(AKS),在Azure上使用Kubernetes协调程序管理容器化专用游戏服务器。

< ">本文将描述GitHub上的此示例中使用的体系结构。请注意,此参考体系结构中的代码只是一个指南示例,在精准营销的使用方法用于生产环境之前,可能还有需要优化的地方。

< ">体系结构关系图

< ">相关服务



< ">Azure流量管理器-可根据延迟情况将玩家连接到最合适的区域。

< ">Azure Kubernetes服务-可简化Kubern品牌营销策略方案etes的部署和操作。

< ">Azure容器注册表-允许为所有类型的容器部署存储映像。

< ">体系结构注意事项

< ">自定义资源定义(CRD)

< ">在此参考体系结构中,通过使用自定义资源定义(CRD)对象扩展了Kubernetes。这些对象将用于表示专用游戏服务器实体。

< ">具体来说,有2个核心实体,分别由2个不同的CRD表示:

< ">DedicatedGameServer:表示多人游戏服务器本身。每个DedicatedGameServer都有一个单独对应的子Pod,它将使用游戏服务器可执行文件运行容器映像。

< ">DedicatedGameServerCollection:表示将运行相同Pod模板的相关DedicatedGameServers集合,并且可以在集合内进行缩放(即添加或删除更多服务器实例)。

< ">属于同一DedicatedGameServerCollection成员的DedicatedGameServer在执行环境方面有很多相似之处,例如,都可以启动相同的多人游戏地图或相同类型的游戏。因此,您可以在游戏中针对“夺旗”模式创建一个集合,针对“征服”模式创建另一个集合。或者,针对地图“X”上的玩家创建一个集合,针对地图“Y”上的玩家创建另一个集合。

< ">组件

< ">此参考体系结构包含两个主要组件,它们都是作为单实例Kubernetes部署创建的:

< ">API服务器组件

< ">这是我们项目的API服务器(与Kubernetes API服务器无关)。它包含两个子组件:

< ">API服务器子组件

< ">它提供可由游戏服务器或外部安排系统(如大厅服务或Matchmaker)调用的REST API。

< ">Webhook子组件

< ">一个Kubernetes准入Webhook,可验证和修改关于我们对Kubernetes API服务器的CRD的请求。

< ">控制器

< ">Kubernetes控制器是表现为主动协调进程的对象。简而言之,这意味着控制器会监控某个(或某组)对象,查看对象是否达到理想状态以及其实际状态。它会主动比较这两种状态,并尽全力使实际状态接近理想状态。

< ">此项目包含一组控制器,每个控制器都会执行协调特定对象集的任务。所有控制器都基于官方Kuber推广平台的软文netes示例控制器和此处的相应文档构建而成。此项目中的控制器是为了协调我们的自定义资源定义(CRD)对象,即DedicatedGameServerCollections和DedicatedGameServers。

< ">DedicatedGameServerCollectionController

< ">它负责处理DedicatedGameServerCollection的DedicatedGameServer对象。

< ">DedicatedGameServerController

< ">它负责处理DedicatedGameServer对象的Pod。



< ">DGSActivePlayersAutoScalerController

< ">您可以选择是否启动它(通过控制器上的命令行参数),它负责每个选择加入Pod自动缩放机制的DedicatedGameServerCollection上的Pod自动缩放。

< ">这些组件是它们自己的命名空间的一部分(示例中名为dgs-system),与DedicatedGameServers的命名空间分离。在大型群集场景中,每个DedicatedGameServerCollections列表可以有一个命名空间。

< ">公共IP

< ">游戏客户端应该能够直接连接到专用游戏服务器,因此所有节点都应该有一个公共IP。Azure Kubernetes服务默认不提供公共IP,但您可以使用此GitHub项目来启用它。



< ">部署模板

< ">按照这些说明创建Azure Kubernetes群集。

< ">安全注意事项

< ">所有API方法都通过访问代码进行保护,显示为字符串形式,并保存在名为apiaccesscode的Kubernetes密钥中。这是在项目安装过程中创建的,应传递到所有方法调用代码GET参数中。默认情况下,唯一不要求身份验证的方法是/running方法。但是,可以在API服务器进程命令行参数中更改方法。

< ">优化注意事项

< ">对于较小的群集,您可以使用适用于所有节点的单个Pod(包含API服务器子组件、Webhook子组件和控制器的Pod)来实现简化。按照设计,在Kubernetes群集中,每个Pod可以与所有其他节点中的其他Pod对话。

< ">其他资源和示例

< ">官方Kubernetes文档

< ">定价

< ">如果您没有Azure订阅,可以创建免费帐户,开始使用12个月的免费服务。除非您超出这些服务的使用限制,否则无需为Azure免费帐户中包含的这些免费服务付费。了解如何通过Azure门户或使用情况文件查看服务使用情况。

< ">您需要承担运行这些参考体系结构时所使用的Azure服务的费用。总金额将因使用情况而异。请参阅参考体系结构中使用的每项服务的定价网页:

< ">Azure流量管理器

< ">Azure Kubernetes服务

< ">Azure容器注册表

< ">您还可以使用Azure定价计算器,以配置和估算您计划使用的Azure服务的成本。

使用 Azure Kubernetes 服务 (AKS) 实现同步多人游戏

上一篇:Google Play 下架原因之广告
下一篇:使用 Azure Service Fabric 实现同步多人游戏


版权声明:以上主题为“使用 Azure Kubernetes 服务 (AKS) 实现同步多人游戏"的内容可能是本站网友自行发布,或者来至于网络。如有侵权欢迎联系我们客服QQ处理,谢谢。
相关内容
推荐内容
扫码咨询
    使用 Azure Kubernetes 服务 (AKS) 实现同步多人游戏
    打开微信扫码或长按识别二维码

小提示:您应该对本页介绍的“使用 Azure Kubernetes 服务 (AKS) 实现同步多人游戏”相关内容感兴趣,若您有相关需求欢迎拨打我们的服务热线或留言咨询,我们尽快与您联系沟通使用 Azure Kubernetes 服务 (AKS) 实现同步多人游戏的相关事宜。

关键词:使用,Azure,Kubernetes,服务

关于 | 业务 | 案例 | 免责 | 隐私
客服邮箱:sales@1330.com.cn
电话:400-021-1330 | 客服QQ:865612759
沪ICP备12034177号 | 沪公网安备31010702002418号