您可以通过ACK控制台的应用中心功能部署应用。本文介绍应用中心的作用、核心概念、核心组件等。

背景信息

使用编排模板中的工具部署应用完毕后,应用资源比较分散,您无法从一个统一的视角查看应用所有的Kubernetes资源。在Kubernetes平台中,一个应用可能包含多个Kubernetes子资源。例如一个Wordpress应用,会包含Deployment、Service、Ingress、ServiceAccount、Roles等资源。在应用部署完毕后,没有一个统一的视角展现整体应用的拓扑结构,同时对于持续部署等场景无法做到统一的版本管理与回滚。

使用场景

应用中心架构图

ACK应用中心的使用场景如下:

  • 多集群低成本容灾,日常迭代版本一键同发。
  • 国内站、国际站多地域部署业务,版本同发。
  • 同套应用,线上线下混合云发布。
  • 应用维度查看和管理工作负载。
  • 同一套编排,多环境发布,大幅降低出错率。

应用中心能够给应用一个统一的入口视图,帮助您全局地了解应用的部署形态。应用中心能够帮助您提供一个应用层级的视角,您能够在应用级别观察所有Kubernetes子资源的部署状态与变化,同时以Git、Helm Chart作为载体,将应用以版本化的方式部署到Kubernetes集群中,且可以在不同版本之间实现回滚与发布。

核心概念

概念 描述
应用 应用编排模板定义的一组Kubernetes资源集合。
目标状态 应用程序的期望状态由Git或者Chart等存储库中的文件表示。
当前状态 该应用程序的实时状态,例如部署的所有Pod状态等。
部署状态 实时状态是否与目标状态匹配。 部署的应用程序是否与Git或者Helm Chart所定义的相同。
部署 使应用程序移至其目标状态的过程。 例如,通过kubectl apply将应用部署到Kubernetes集群。
刷新 将Git中的最新代码与实时状态进行比较。
健康状态 应用程序的运行状况是否正常运行。

核心组件

应用中心的所有组件都是部署在客户集群appcenter命名空间内,主要有四个核心部分,如下表所示。

组件名称 描述
application-controller 负责应用的版本记录、回溯,指定版本回滚等功能。
redis 负责缓存应用数据资源,记录一些用户应用缓存数据信息。
repo-server 负责拉取远程仓库应用部署模板信息,例如Git或者Helm Chart。
server 暴露一个grpc server,负责与外部通信。