【本文内容基于9月份Cloud Ace CTO 江文远分享的线上研讨会内容总结而成。】
摘要
Kubernetes,简称K8s,是Google开发的,目前最为流行的容器编排和管理引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。K8s的特性使得它适用于架构复杂且要求高的服务,也就是游戏架构的搭建。
由于Cloud Ace为谷歌云代理公司,所以我们本次分享的实操是在谷歌开发的Google Kubernetes Engines上运行的,GKE是谷歌基于K8s所开发的Kubernetes管理平台,主要在谷歌云平台上运行。
Kubernetes与微服务架构
随着应用的发展,程序变得越来越复杂,传统一体化架构的服务会造成巨大的不便,比如说:新增功能与测试放在一起,使得程序十分复杂;开发和利用新语言和新框架的效率低;安全性低,所有的模块构建在一个process里,一旦出现bug可能牵一发而动全身。
而微服务 (microservices) 架构正好解决了这样的问题,将每一个具有商业逻辑的服务独立出来,例如不再将所有资料都写入同一个资料库,而是每个单独的服务都有一个最适合自己本身结构的资料库。好处是让每个服务都可以用最适合自己的语言、资料库来开发。在实操时,每一个商业功能/服务都可能是一台 VM 或者一个容器。
微服务架构的出现给了游戏一个新的选择,下图的两个架构就是游戏使用的架构,都是通过不同的功能模块来划分的,按功能模块划分不同的服务,前端通过HAProxy来代理用户请求,后端服务可以根据负载来实现扩缩容。在服务发现模块中,通过registrator来监视容器的启动和停止,根据容器暴露的端口和环境变量自动注册服务,后端存储使用了consul,结合consul-template来发现服务的变化时,可以更新业务配置,并重载。

本文介绍了Kubernetes(K8s)在游戏架构中的应用,包括其与微服务架构的契合点,如自动化部署、弹性伸缩和配置管理。通过Google Kubernetes Engine(GKE)搭建游戏服务器,如OpenArena,演示了如何利用K8s进行服务编排、负载均衡和资源管理。文章还讨论了游戏服务器的自动扩展和缩放策略,如HorizontalPodAutoscaler(HPA)的使用,并提到了cordon指令在节点管理中的作用。
最低0.47元/天 解锁文章
3904

被折叠的 条评论
为什么被折叠?



