ACK One GitOps:让全球化游戏服务持续交付更简单

简介: ACK One GitOps 致力于提供开箱即用的多集群 GitOps 持续交付能力,简化游戏等服务的多集群/多地域统一部署,让您更加专注于业务开发。

【阅读原文】戳:ACK One GitOps:让全球化游戏服务持续交付更简单

传统软件交付,耗时且易出错;而在现代软件交付领域,Argo CD 作为一款基于 GitOps 的 Kubernetes 原生的持续交付工具,声明式等特点,让其更加契合云原生时代。使用 Argo CD 持续部署应用,可降低部署复杂性、实现快速回滚、简化审计、减少服务中断。这样的持续交付能力和效果,对于全球化的游戏服务的统一部署,正是所需的。

 

 

ACK One GitOps

 

 

image.png

 

分布式云容器平台 ACK One [1]是阿里云面向混合云、多集群、分布式计算、容灾等场景推出的企业级分布式云容器平台,提供多集群统一管理能力。通过 ACK One 注册集群 [2]将您的其他公共云厂商和IDC K8s集群接入到阿里云容器服务ACK控制台,并由舰队对这些注册集群以及云上的ACK、ACK Edge集群进行多集群统一的应用分发、流量管理、可观测运维管理、安全管理等。

 

ACK One GitOps [3]提供了面向多云、多集群、混合云的多集群应用 GitOps 持续交付能力。通过全托管开源的 Argo CD 项目,集成 ACK One 的多集群、阿里云的 RAM SSO 等能力,为您提供开箱即用的 Argo CD 能力,和完整、安全的多集群应用 GitOps CD 体验,快速、一致、安全地实现混合云、多集群下的应用持续部署。

 

image.png image.png image.png

 

ACK One GitOps 优势如下:

  • 开箱即用、免运维。
  • 简化多集群应用部署。

a. 支持控制台管理 ApplicationSet、原生 Argo CD UI 体验、阿里云 RAM SSO Argo CD UI。

b. 关联集群自动创建 Argo CD cluster secret。

c. 支持使用客户自定义域名访问 Argo CD UI。

  • 提升高可用性:高可用 ArgoCD,支持 5000+ 应用。
  • 基于阿里云 RAM 的多租权限管理。
  • 完整的可观测性能力。

a. Argo CD 的监控和告警配置,可以查看 ArgoCD 的 metrics 和 Application Controller 等资源使用,及时了解情况。

b. 支持 Argo CD 日志采集和控制台查看:提升可审计能力,便于应用状态异常定位;且避免 kubectl 误操作导致 pod 重启,影响应用状态和应用部署。

  • 支持阿里云 Codeup(webhook)。一站式 GitOps 体验。


 

 

ACK One GitOps 在游戏行业的应用

 

 

在当今全球一体化经济环境下,数字娱乐产业正日益成为文化和商业交流的有力代表。在此背景下大量游戏厂商尝试游戏出海并取得了令人瞩目的成绩,许多游戏以全球同服架构吸引着世界各地广泛的玩家群体。

 

近年来,有越来越多的游戏行业客户选择 ACK One GitOps(Argo CD)来作为多集群 CD 系统。其主要原因在于:传统的 CI/CD 工具,在多集群多环境部署较为麻烦;且 Argo CD UI 可更好地展示应用及资源的状态,快速回滚等。ACK One GitOps 也尽可能为客户提供更好的体验,更简单的操作。

 

在游戏行业,ACK One GitOps 通常有 2 种使用场景:

 

  • 一种是通用的场景,多团队协作的多集群多地域应用持续部署(如 dev、staging、production 环境);
  • 另一种是,与 OpenKruiseGame 结合使用,来实现游戏服务部署/开服。

 

对于场景 2,为了游戏用户更好的体验,ACK One GitOps 不仅默认支持OpenKruiseGame 资源的权限,还实现和内置了 GameServerSet 的 Health Check,简化用户体验的同时,让用户掌握准确的游戏服务状态,让游戏服状态一目了然。

 

 

多团队协作的多集群应用持续部署

 

image.png

 

用户可基于阿里云 RAM 账号 SSO 后,进行应用的多租户权限管理,也支持配置自定义的 OIDC。聚焦于个人负责的应用。

 

通过 GitOps 将应用持续部署到多个环境,实现开发、生产环境隔离的情况下,还能统一管理,并在部署到生产环境时,可以结合 Argo Rollouts 来实现灰度/蓝绿发布。

  • IDC 集群可以通过注册集群 [4]关联到 ACK One Fleet。

 

 

与 OpenKruiseGame 实现游戏服务多地域一致性交付

 

 

OpenKruiseGame [5](OKG)是一个面向多云的开源游戏服 Kubernetes 工作负载,是 CNCF 工作负载开源项目 OpenKruise 在游戏领域的子项目,让游戏服的云原生化变得更加简单、快速、稳定。OpenKruiseGame(OKG)是简化游戏服云原生化的自定义 Kubernetes 工作负载,相比 Kubernetes 内置的无状态(Deployment)、有状态(StatefulSet)等工作负载而言,OpenKruiseGame(OKG)提供了热更新、原地升级、定向管理等常用的游戏服管理功能,是完全面向游戏服场景而设计的 Kubernetes 工作负载。

 

GameServer 是定向管理运维动作的抽象,主要用于更新顺序控制、游戏服状态控制、游戏服网络变更等定向运维管理动作。GameServerSet 是对一组 GameServer 的抽象,主要用于副本数目管理、游戏服发布等生命周期控制,与原生的 Deployment 和 StatefulSet 工作负载相比,GameServerSet 具备游戏语意,更贴近游戏场景,使得对游戏服务器的运维管理更加方便和高效。

 

image.png

 

  • 在每个 ACK 或 IDC 集群中安装 OpenKruiseGame。
  • 使用 application/applicaitonset 通过 ACK One GitOps 发布 GameServerSet 到每个集群,来实现 PvE 和 PvP 类型游戏的发布。

 

详细内容可参见:

《ACK One x OpenKruiseGame 全球游戏服多地域一致性交付最佳实践》

 

ACK One GitOps 为多地域游戏服务提供一致性持续交付能力的同时,也尽可能简化用户体验:

 

  • 实现和内置了 GameServerSet 的 Health Check,开箱即用,简化用户体验的同时,让用户掌握准确的游戏服务状态,让游戏服状态一目了然。
  • 提供 ApplicationSet UI,快速管理多地域游戏服务部署。
  • 安全管理 [6]的前提下,预置 OpenKruiseGame 资源的权限,无需用户手动添加。

 

 

ACK One GitOps 支持 GameServer(Set)的 Health Check

 

默认情况下,Argo CD 无法理解 GameServerSet (GSS) 和 GameServer (GS) 这类自定义资源的内部状态。而 GameServerSet 是一个 WorkLoad 型资源,这意味着,即使 GSS 所管理的 Pod 未能成功运行,ArgoCD 界面上的应用状态可能依然显示为 Healthy,这会掩盖潜在的问题,误导用户。

 

所以,ACK One GitOps 基于 Argo CD 的Custom Health Check [7]机制,扩展了 OpenKruiseGame 的 GameServerSet 和 GameServer 的 Health Check,与其管理的真实 Pod 运行情况关联了起来,帮助用户或者运维人员掌握游戏服务的准确的健康状态。并内置到产品中,开箱即用。

 

原生 Argo CD 无法准确反映 GameServerSet 状态

 

  • 在支持之前,当游戏服 Pod 没有就绪时,GameServerSet 便已经显示为 Healthy,因此整个应用资源的健康状态已经被显示为 Healthy。这样的状态并不准确。

 

image.png

 

ACK One GitOps 可查看 GameServerSet 准确状态

 

  • 游戏服 Pod 没有就绪,GameServerSet 和整个应用资源的健康状态会被显示为 Progressing:

 

image.png

 

  • 当 Pod 就绪后,GameServerSet 和整体应用的健康状态才会被转为 Healthy:

 

image.png

 

 

总结

 

 

ACK One GitOps [1]致力于为您提供简单、快速、安全的多集群 GitOps 持续交付能力,让您更加专注于业务开发。欢迎加入 ACK One 客户交流钉钉与我们一同交流。(钉钉群号:35688562

 

相关链接:

 

[1] 分布式云容器平台 ACK One

https://help.aliyun.com/zh/ack/distributed-cloud-container-platform-for-kubernetes/product-overview/ack-one-overview

 

[2] ACK One 注册集群

https://help.aliyun.com/zh/ack/distributed-cloud-container-platform-for-kubernetes/user-guide/registered-clusters/

 

[3] ACK One GitOps

https://help.aliyun.com/zh/ack/distributed-cloud-container-platform-for-kubernetes/user-guide/gitops/

 

[4] 注册集群

https://help.aliyun.com/zh/ack/distributed-cloud-container-platform-for-kubernetes/user-guide/overview-9

 

[5] OpenKruiseGame

https://openkruise.io/zh/kruisegame/introduction

 

[6] 安全管理

https://help.aliyun.com/zh/ack/distributed-cloud-container-platform-for-kubernetes/user-guide/custom-gitops-operations-associated-with-the-cluster-s-rbac-permissions

 

[7] Custom Health Check

https://argo-cd.readthedocs.io/en/latest/operator-manual/health/#custom-health-checks



我们是阿里巴巴云计算和大数据技术幕后的核心技术输出者。

欢迎关注 “阿里云基础设施”同名微信微博知乎

获取关于我们的更多信息~

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
3月前
|
运维 监控 Cloud Native
智联招聘 × 阿里云 ACK One:云端弹性算力颠覆传统 IDC 架构,打造春招技术新范式
在 2025 年春季招聘季的激战中,智联招聘凭借阿里云 ACK One 注册集群与弹性 ACS 算力的深度融合,成功突破传统 IDC 机房的算力瓶颈,以云上弹性架构支撑千万级用户的高并发访问,实现招聘服务效率与稳定性的双重跃升。文章介绍了 ACK One+ACS 的弹性架构如何解决了春招的燃眉之急,让智联招聘的技术团队能够聚焦创新业务开发,欢迎关注。
131 10
|
3月前
|
运维 Kubernetes Cloud Native
智联招聘 × 阿里云 ACK One:云端弹性算力颠覆传统 IDC 架构,打造春招技术新范式
在 2025 年春季招聘季的激战中,智联招聘凭借阿里云 ACK One 注册集群与弹性 ACS 算力的深度融合,成功突破传统 IDC 机房的算力瓶颈,以云上弹性架构支撑千万级用户的高并发访问,实现招聘服务效率与稳定性的双重跃升。
|
4月前
|
资源调度 Kubernetes 调度
从单集群到多集群的快速无损转型:ACK One 多集群应用分发
本文介绍如何利用阿里云的分布式云容器平台ACK One的多集群应用分发功能,结合云效CD能力,快速将单集群CD系统升级为多集群CD系统。通过增加分发策略(PropagationPolicy)和差异化策略(OverridePolicy),并修改单集群kubeconfig为舰队kubeconfig,可实现无损改造。该方案具备多地域多集群智能资源调度、重调度及故障迁移等能力,帮助用户提升业务效率与可靠性。
|
4月前
|
资源调度 Kubernetes 调度
从单集群到多集群的快速无损转型:ACK One 多集群应用分发
ACK One 的多集群应用分发,可以最小成本地结合您已有的单集群 CD 系统,无需对原先应用资源 YAML 进行修改,即可快速构建成多集群的 CD 系统,并同时获得强大的多集群资源调度和分发的能力。
131 9
|
5月前
|
人工智能 Serverless 调度
突破地域限制,实现算力无限供给 —阿里云ACK One注册集群开启多地域Serverless算力调度
本文介绍了阿里云ACK One注册集群多地域Serverless算力调度解决方案,解决传统数据中心在AI时代面临的算力不足问题。方案通过分钟级接入、100%兼容Kubernetes操作及云上Serverless弹性,实现跨地域弹性算力供给,支持高并发请求与模型快速迭代。文中详细描述了快速接入步骤、指定地域调度及动态调度方法,并提供了相关代码示例。该方案助力企业实现AI推理服务的规模化部署,提升商业落地效率。
|
6月前
|
存储 Kubernetes 监控
K8s集群实战:使用kubeadm和kuboard部署Kubernetes集群
总之,使用kubeadm和kuboard部署K8s集群就像回归童年一样,简单又有趣。不要忘记,技术是为人服务的,用K8s集群操控云端资源,我们不过是想在复杂的世界找寻简单。尽管部署过程可能遇到困难,但朝着简化复杂的目标,我们就能找到意义和乐趣。希望你也能利用这些工具,找到你的乐趣,满足你的需求。
538 33
|
6月前
|
Kubernetes 开发者 Docker
集群部署:使用Rancher部署Kubernetes集群。
以上就是使用 Rancher 部署 Kubernetes 集群的流程。使用 Rancher 和 Kubernetes,开发者可以受益于灵活性和可扩展性,允许他们在多种环境中运行多种应用,同时利用自动化工具使工作负载更加高效。
315 19
|
6月前
|
人工智能 分布式计算 调度
打破资源边界、告别资源浪费:ACK One 多集群Spark和AI作业调度
ACK One多集群Spark作业调度,可以帮助您在不影响集群中正在运行的在线业务的前提下,打破资源边界,根据各集群实际剩余资源来进行调度,最大化您多集群中闲置资源的利用率。
|
9月前
|
Prometheus Kubernetes 监控
OpenAI故障复盘 - 阿里云容器服务与可观测产品如何保障大规模K8s集群稳定性
聚焦近日OpenAI的大规模K8s集群故障,介绍阿里云容器服务与可观测团队在大规模K8s场景下我们的建设与沉淀。以及分享对类似故障问题的应对方案:包括在K8s和Prometheus的高可用架构设计方面、事前事后的稳定性保障体系方面。
|
6月前
|
Prometheus Kubernetes 监控
OpenAI故障复盘丨如何保障大规模K8s集群稳定性
OpenAI故障复盘丨如何保障大规模K8s集群稳定性
193 0
OpenAI故障复盘丨如何保障大规模K8s集群稳定性

推荐镜像

更多