应用中心最佳实践之 —— Template数据源发布实战

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: Template数据源发布实战

适用场景

• 希望使用应用中心
• 由于安全合规等问题无法将应用部署模板托管在git仓库中

前置资源准备

创建Template数据源

容器服务控制台 -> 市场 -> 编排模板
1.png

创建模板appcenter-template-demo,包含deployment、service和ingress 3个资源

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:blue
        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

创建完毕
1.png

创建应用

应用中心 -> 应用 -> 创建应用
1.png

通用

应用名称: appcenter-template-demo
部署策略: 手动
1.png

类型:自定义模板
模板:appcenter-template-demo
1.png

目标集群

集群:in-cluster(https://kubernetes.default.svc)
命名空间:demo-template
1.png

点击 创建
1.png

部署应用

点击应用可以查看应用详情, 下图是示例应用的Kubernetes资源全量拓扑结构
1.png

点击右上角的部署, 默认勾选的要部署资源有deployment、service和ingress资源
1.png
这里的黄色的小标识OutOfSync代表的意思是,当前模板描述的资源和Kubernetes集群内的实际情况不一致,也就是说,目前的应用模板并没有部署到集群中,下面我们点击右上角的部署按钮,将应用部署到集群中。
点击部署完成应用部署

稍等片刻应用就会部署完毕,整个部署过程会实时的展现在用户面前,最终的部署样式如图所示。这里最下方的状态显示为Healthy 和Synced,表示当前模板已经部署到Kubernetes 集群中,且已经符合部署模板的期望状态。
1.png

除了查看整个应用的部署拓扑外,我们还可以查看应用的流量结构,点击右上角的图标就可以观察这个应用的流量拓扑情况。
1.png

更新应用

下面我们来演示一下如何更新应用, 首先需要在编排模板中更新appcenter-template-demo, 本示例中我们把Deployment资源中的image tag从blue改为red,此时您会发现appcenter-template-demo模板有了新的历史版本记录
1.png
此时回到应用中心页面,手动点击 刷新 -> 强制刷新(若部署策略为自动,则应用中心每3分钟自动检查数据源更新)
可以看到应用状态为OutOfSync, 意为当前环境中应用状态与数据源中所声明的状态不一致
1.png

点击 版本差异 可以查看本次变更的详细内容
1.png

再次点击部署,更新集群环境中的应用到最新版本
1.png

可以看到应用已经更新为image tag为red的新版本
1.png

应用回滚

历史版本/回滚 -> 选择需要回滚的历史版本 -> 回滚
1.png

回滚过程中,可以刷新查看具体的情况,回滚完毕后,可以看到镜像已经回到了blue,但是整个应用的状态是OutOfSync,这个是因为和git里面存放的部署模板不一致导致的。
1.png

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
Kubernetes 开发工具 git
应用中心最佳实践之 -- 多集群多参数发布实战
如果一个用户账号下有多个集群的情况,希望将一个应用同时发布到多个集群里面,并且不同集群环境有不同的参数,这里就可以使用应用中心的多集群发布功能。
1677 0
应用中心最佳实践之 -- 多集群多参数发布实战
|
Java Spring
【杭州研发中心-后端二团队】springboot源码解析-监听器详情
简介:Spring的事件驱动模型由三部分组成: 事件: ApplicationEvent ,继承自JDK的 EventObject ,所有事件都要继承它,也就是被观察者 事件发布者: ApplicationEventPublisher 及 ApplicationEventMulticaster 接口,使用这个接口,就可以发布事件了 事件监听者: ApplicationListener ,继承JDK的 EventListener ,所有监听者都继承它,也就是我们所说的观察者,当然我们也可以使用注解 @EventListener ,效果是一样的
|
Java 网络性能优化 开发工具
解锁新姿势 |如何利用配置中心规范构建PaaS服务配置
在上一篇文章中,我们以MQ和ACM为例,讨论了如何借助配置中心对消息进行限流管理的场景。在本文中,我们继续以该场景为例,讲述如何以规范的配置命名格式来进行限流设置。
4156 7
|
6月前
|
消息中间件 Kafka SQL
|
微服务
Apollo配置中心如何实现配置热发布
配置中心在微服务架构体系中是非常重要的基础设施服务,承担着分布式配置集中管理、配置热发布以及审计等重要的职责。本文主要探讨Apollo配置中心的配置热发布特性如何实现。
Apollo配置中心如何实现配置热发布
|
前端开发 JavaScript Java
我的架构之路 — 配置中心(二)— 在已有项目中实际应用
要把配置中心整合进现有的项目,要做的事情还不少 接管spring mvc属性文件 现在的java应用一般都是spring框架的,spring属性文件配置占了绝大多数比例,所以配置中心的,首要任务就是把spring配置文件集中到配置中心来管理。
2464 0
|
测试技术 数据安全/隐私保护 索引
DAO社区治理系统模式开发规则详情 | DAO社区治理系统开发源码示例(Python语言版)
DAO(Data Access Object)社区治理模式是一种去中心化的社区治理模式,它将权力下放到社区中,让社区成员自主决策、自我管理,从而实现社区的自主治理。在DAO社区治理模式中,权力下放到社区中,社区成员可以自由地发表自己的意见和建议,并且能够直接参与到社区的决策过程中。
|
Kubernetes 开发工具 git
应用中心最佳实践之 -- Git数据源发布实战
适用场景 • 希望使用应用中心 • 有自己git仓库(包括github,bitbucket,自己搭建的gitlab) • 部署模板托管在git
1432 0
应用中心最佳实践之 -- Git数据源发布实战

热门文章

最新文章