应用中心最佳实践之 —— 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

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
机器学习/深度学习 数据采集 网络安全
使用Python实现深度学习模型:智能网络安全威胁检测
使用Python实现深度学习模型:智能网络安全威胁检测
653 6
|
机器学习/深度学习 供应链 TensorFlow
使用Python实现深度学习模型:智能物流与供应链管理
【8月更文挑战第1天】 使用Python实现深度学习模型:智能物流与供应链管理
519 2
使用Python实现深度学习模型:智能物流与供应链管理
|
人工智能 安全 区块链
区块链与人工智能的融合道路:揭秘未来科技新风口
在科技创新的浪潮中,区块链与人工智能正交汇融合,如双星辉映,激发无限潜能。区块链以去中心化、不可篡改的特性革新数据安全与信任;AI则以强大算法引领工业革命。两者融合,为AI提供安全数据基础,使数据可追溯、不可篡改,同时利用AI提升区块链效率与自动化水平,加速交易验证,最终在金融、医疗等领域催生创新应用,深刻影响社会进步与民众生活,成为未来技术发展的核心动力。
893 1
|
负载均衡 安全 Java
Java中的服务治理与API网关实现
Java中的服务治理与API网关实现
|
SQL 存储 数据挖掘
探索数据库技术的奥秘:核心原理、应用场景与实践技巧
一、引言 数据库技术作为现代信息系统中不可或缺的一部分,扮演着存储、管理和检索数据的重要角色
|
监控 JavaScript 前端开发
Postman 如何定时 自动化运行Collections?
大家好,我是阿萨。上一期的[Postman 提供的Javascript 对象有哪些?]我们学习了Postman 提供的javascript 对象 方便我们写脚本用的。 作为一个API 测试工具,自动化运行是必须的,而且要能做到定时,周期的运行自动化脚本。
1895 0
Postman 如何定时 自动化运行Collections?
|
Unix API 网络架构
python操作excel示例(xlwings库)有实战例子(生成温度表)
python操作excel示例(xlwings库)有实战例子(生成温度表)
430 0
|
Web App开发 测试技术
软件测试/测试开发|selenium NoSuchDriverException问题解决
软件测试/测试开发|selenium NoSuchDriverException问题解决
|
SQL 消息中间件 关系型数据库
基于Flume+Kafka+Hbase+Flink+FineBI的实时综合案例(四)实时计算需求及技术方案
基于Flume+Kafka+Hbase+Flink+FineBI的实时综合案例(四)实时计算需求及技术方案
404 0