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

简介: 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

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
存储 大数据 数据安全/隐私保护
Python中的长整型
Python中的长整型
535 0
|
11月前
|
人工智能 Cloud Native 安全
《2025年度企业用云十大趋势》发布,AI云全面支撑大模型落地
《2025年度企业用云十大趋势》发布,AI云全面支撑大模型落地
|
网络协议 网络虚拟化
|
算法 JavaScript 开发者
通过UIActivityViewController分享多图片及如何把分享时微信图标放置到第一位
通过UIActivityViewController分享多图片及如何把分享时微信图标放置到第一位
325 0
|
数据采集 分布式计算 DataWorks
DataWorks产品使用合集之要删除 DataWorks 中表的分区如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
303 0
|
存储 C语言
C语言 关于输入输出与结束符“\0”
C语言 关于输入输出与结束符“\0”
1087 1
|
弹性计算 缓存 中间件
亲宝宝:使用AHAS故障演练实现具备韧性的系统架构
通过引入成熟、稳定的阿里云混沌工程解决方案,亲宝宝的系统架构在面对复杂业务下频繁迭代时,系统依然具备面对失败的容错能力,业务表现得更稳定、健壮、弹性。
5535 90
亲宝宝:使用AHAS故障演练实现具备韧性的系统架构
|
JSON 移动开发 Java
《钉钉应用开发者速成手册》之“如何调用钉钉API——服务端API”
为了满足客户需求,钉钉目前主要提供了身份验证、通讯录管理、消息通知、智能办公四大类的服务端API接口给开发者使用。
3551 0
《钉钉应用开发者速成手册》之“如何调用钉钉API——服务端API”
|
安全
实人认证和活体人脸验证可以用于哪些场景?有什么场景特点?
实人认证和活体人脸验证可以用于哪些场景?有什么场景特点?
715 0