当您的账号下有多个集群分布在不同的地域,您可以使用应用中心的多集群发布功能将一个应用同时发布到多个集群里。本文介绍如何使用编排模板将一个应用一键部署到2个不同地域的Kubernetes集群。
操作步骤
- 登录容器服务管理控制台。
- 在控制台左侧导航栏中,选择。
- 在应用中心页面单击创建应用。
- 在应用来源配置向导页面配置参数。
- 在安装应用发布组件区域选择集群,然后单击开始安装。
- 在应用来源区域单击YAML模板。
- 单击下一步。
- 在应用配置配置向导页面中设置参数。
- 设置应用名称和应用描述。
- 设置模板,您可以选择已有模板或者新建模板, 本文以新建模板为例。
- 单击新建模板页签,然后单击右上角的通过YAML添加。
- 将以下内容复制到文本框中,然后单击确定。
本文以Red版本的demo应用为例。
apiVersion: apps/v1
kind: Deployment
metadata:
name: demo
labels:
app: demo
spec:
minReadySeconds: 5
revisionHistoryLimit: 5
progressDeadlineSeconds: 60
strategy:
rollingUpdate:
maxUnavailable: 1
type: RollingUpdate
selector:
matchLabels:
app: demo
template:
metadata:
annotations:
prometheus.io/scrape: "true"
prometheus.io/port: "9797"
labels:
app: demo
spec:
containers:
- name: demo
image: registry.cn-hangzhou.aliyuncs.com/acs/rollouts-demo:red
imagePullPolicy: IfNotPresent
ports:
- name: http
containerPort: 8080
protocol: TCP
readinessProbe:
tcpSocket:
port: 8080
initialDelaySeconds: 5
timeoutSeconds: 5
resources:
limits:
cpu: 2000m
memory: 512Mi
requests:
cpu: 100m
memory: 64Mi
---
apiVersion: v1
kind: Service
metadata:
name: demo-svc
spec:
selector:
app: demo
ports:
- protocol: TCP
port: 80
targetPort: 8080
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: demo
labels:
app: demo
spec:
rules:
- host: app.demo.example.com
http:
paths:
- backend:
serviceName: demo-svc
servicePort: 80
- 单击下一步。
- 在发布配置配置向导页面中设置参数。
- 在发布配置区域选择发布方式,可选全量发布和灰度发布。
第一次发布应用时只能选择全量发布,后续对应用进行更新迭代时,可以选择全量发布或灰度发布。
- 在可选集群区域单击集群左侧的添加,选择2个不同地域的集群。在目标集群区域可以看到选择的集群,然后选择应用要发布的命名空间。
说明 在可选集群区域显示当前账号下所有地域的集群。
- 单击开始发布。
- 在发布确认对话框单击确定。
- 在发布日志配置向导页面中单击完成。
结果验证
- 获取应用的端点。
- 登录容器服务管理控制台。
- 在控制台左侧导航栏中,单击集群。
- 在集群列表页面中,单击目标集群名称或者目标集群右侧操作列下的详情。
- 在集群管理页左侧导航栏中,选择。
- 在路由页面查看demo的端点。
- 在hosts文件输入以下内容。
<端点> app.demo.example.com
- 在浏览器中访问app.demo.example.com 。
浏览器显示以下页面,说明应用部署成功。
- 在hosts文件删除步骤1绑定的地址,重复步骤2至步骤3,访问另一个集群部署的应用,显示以下页面,说明应用部署成功。