当您的账号下有多个集群分布在不同的地域,且不同集群环境的参数配置也不相同,您可以使用应用中心的多集群发布功能将一个应用同时发布到多个集群里。本文主要介绍如何将一个应用分别部署到2个不同地域的Kubernetes集群,且为应用配置不同的镜像地址。

前提条件

已创建ACK集群,且该集群具有访问外网的能力。具体操作,请参见创建Kubernetes托管版集群

步骤一:安装应用中心

在主集群中部署应用中心控制器。本示例中,用名称为ack-hangzhou的集群作为部署应用中心控制器的主集群,名称为ack-beijing的集群作为外部集群添加到应用中心中进行统一管理。

  1. 登录容器服务管理控制台
  2. 在控制台左侧导航栏中,选择多集群 > 应用中心(旧版)
  3. 应用中心页面的安装控制器步骤,选择ack-hangzhou集群安装应用中心控制器后,单击开始安装
  4. 添加集群步骤,找到需要添加的目标集群ack-beijing,单击添加,将该集群添加到应用中心统一管理。
  5. 单击开始使用进入应用中心。

步骤二:创建应用

本示例中,将演示如何将demo-multicluster应用分别部署到ack-hangzhouack-beijing 2个不同地域的Kubernetes集群,且为应用配置不同的镜像地址。

  1. 应用中心页面右上角单击+创建应用,使用以下参数配置信息创建Helm Chart类型应用。
    • 通用
      • 应用名称: demo-multicluster。
      • 部署策略:手动。
    • 镜像源
      • 仓库类型:GIT。
      • 仓库网址:https://github.com/AliyunContainerService/appcenter-samples.git。
      • 版本:master。
      • 路径:examples/demo-multicluster。
    • 目标集群
      • 集群:ack-hangzhou,命名空间:default。
      • 集群:ack-beijing,命名空间:default。
    • Helm配置:默认使用values.yaml。
  2. 配置好参数信息后,单击创建
  3. 应用创建后,您可以在应用中心页面看到demo-cluster-0demo-cluster-1 2个应用,它们归属于同一个应用组demo-multicluster

步骤三:根据地域为应用配置不同参数

将应用demo-cluster-0部署到集群ack-hangzhou。使用values-hangzhou.yaml文件进行参数配置,其中应用使用的docker imageregistry-vpc.cn-hangzhou.aliyuncs.com/acs/rollouts-demo:blu

  1. 应用中心页面的demo-cluster-0区域单击。
  2. 单击应用详情,在弹出的面板中单击参数页签,然后再单击EDITR1-ch
  3. 修改VALUES FILES,选择values-hangzhou.yaml,单击SAVE

将应用demo-cluster-1部署到集群ack-beijing。使用values-beijing.yaml文件进行参数配置,其中应用使用的docker imageregistry-vpc.cn-beijing.aliyuncs.com/acs/rollouts-demo:green

  1. 应用中心页面的demo-cluster-1区域单击。
  2. 单击应用详情,在弹出的面板中单击参数页签,然后再单击EDIT
  3. 修改VALUES FILES,选择values-beijing.yaml,单击SAVE

步骤四:一键部署应用

  1. 应用中心页面的右上角单击部署所有应用
  2. 勾选应用组:DEMO-MULTICLUSTER,单击部署
  3. 弹出Complete对话框,说明应用部署完毕。

查看应用拓扑视图和状态

  • 您可以在应用中心页面查看所有已部署的应用状态。
  • 您可以在应用中心页面单击目标应用区域,进入目标应用页面查看目标应用拓扑视图和状态。demo-multicluster-1应用详情页面如下所示。R-2

访问应用

本示例以Nginx Ingress的方式暴露demo-multicluster服务。

  • 通过域名方式访问ack-hangzhou集群中的应用。s-3
  • 通过域名方式访问ack-beijing集群中的应用。s-4