您可以通过ACK控制台的应用中心功能部署应用。本文介绍应用中心的作用、核心概念、核心组件等。
应用中心已不再进行功能升级并逐步停止维护,您可以通过onectl自动化迁移,将应用中心的应用快速迁移至ACK One GitOps。具体操作,请参见使用onectl自动化迁移应用至ACK One GitOps。
背景信息
使用编排模板中的工具部署应用完毕后,应用资源比较分散,您无法从一个统一的视角查看应用所有的Kubernetes资源。在Kubernetes平台中,一个应用可能包含多个Kubernetes子资源。例如一个WordPress应用,会包含Deployment、Service、Ingress、ServiceAccount、Roles等资源。在应用部署完毕后,没有一个统一的视角展现整体应用的拓扑结构,同时对于持续部署等场景无法做到统一的版本管理与回滚。
应用中心能够给应用一个统一的入口视图,帮助您全局地了解应用的部署形态。应用中心能够帮助您提供一个应用层级的视角,您能够在应用级别观察所有Kubernetes子资源的部署状态与变化,同时以Git、Helm Chart作为载体,将应用以版本化的方式部署到Kubernetes集群中,且可以在不同版本之间实现回滚与发布。
使用场景
ACK应用中心的使用场景如下:
多集群低成本容灾,日常迭代版本一键同发。
中国内地多地域部署业务,版本同发。
同套应用,线上线下混合云发布。
应用维度查看和管理工作负载。
同一套编排模板,多环境发布,可以大幅降低出错率。
核心概念
概念 | 描述 |
应用 | 应用编排模板定义的一组Kubernetes资源集合。 |
目标状态 | 应用程序的期望状态由Git或者Chart等存储库中的文件表示。 |
当前状态 | 该应用程序的实时状态,例如部署的所有Pod状态等。 |
部署状态 | 实时状态是否与目标状态匹配。部署的应用程序是否与Git或者Helm Chart所定义的相同。 |
部署 | 使应用程序移至其目标状态的过程。例如,通过kubectl apply将应用部署到Kubernetes集群。 |
刷新 | 将Git中的最新代码与实时状态进行比较。 |
健康状态 | 应用程序的运行状况是否正常。 |
核心组件
应用中心的所有组件都是部署在客户集群appcenter命名空间内,主要有四个核心部分,如下表所示。
组件名称 | 描述 |
application-controller | 负责应用的版本记录、回溯,指定版本回滚等功能。 |
redis | 负责缓存应用数据资源,记录一些用户应用缓存数据信息。 |
repo-server | 负责拉取远程仓库应用部署模板信息,例如Git或者Helm Chart。 |
server | 暴露一个GRPC Server,负责与外部通信。 |