应用中心最佳实践之 -- Git数据源发布实战

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器镜像服务 ACR,镜像仓库100个 不限时长
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: 适用场景• 希望使用应用中心• 有自己git仓库(包括github,bitbucket,自己搭建的gitlab)• 部署模板托管在git

应用中心最佳实践之 -- Git数据源发布实战

适用场景

  • 希望使用应用中心
  • 有自己git仓库(包括github,bitbucket,自己搭建的gitlab)
  • 部署模板托管在git

前置资源准备

应用中心手动部署托管在Git上的Kubernetes 模板

这里我们使用此模板作为样例,本模板包含一个Ingress+Service+Deployment,对外通过Ingress提供服务。部署模板的全量链接在此https://github.com/xianlubird/argocd-example-apps/blob/master/ingress-demo/deploy.yaml

创建应用

创建应用的所有参数如下所示,这里的部署策略选择手动。
Git仓库地址需要输入https或者git协议的地址,结尾需要以.git结尾,与git clone 命令需要的地址相同。这里的Git版本就是指branch或者tag,路径指的是存放部署模板的文件夹名称,这里要求部署模板必须存放在文件夹内。
目标集群默认的In-Cluster 指的就是部署应用中心控制器的本集群,指的为本集群的ApiServer 地址,因为是本集群内部连接,所以使用的是内部Service 名称。命名空间就是希望这个应用安装到哪个命名空间,这里要求必须指定一个存在的命名空间内。
image.png


image.png


部署应用

创建应用完毕后,我们就可以看到应用的全量拓扑结构,如下图所示:
image.png

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


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

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

更新应用

下面我们来演示一下如何更新应用,首先我们在github上更新一下应用模板,将镜像的tag由blue改为green,如这个commit 为例 https://github.com/xianlubird/argocd-example-apps/commit/dbc1296d20b2a92f0fc4826af2448b452d4a40ca。更新完毕后,我们回到应用中心页面,点击刷新按钮,可以看到如下的图片:
image.png

这里的OutOfSync就是表明,部署模板已经发生了变化,但是Kubernetes集群内的资源和git上托管的模板不一致,如果想查看具体的版本差异,可以点击版本差异按钮,查看具体的不同点。
image.png

这里就有详细的对比,展示当前git上的变更与Kubernetes集群内实际应用资源之间的关系。下面我们就可以部署这个更新。
image.png

可以看到部署模板里面,应用中心识别了只有Deployment 发生了变化,我们点击部署就可以完成应用的更新。更新完毕后,可以看到镜像已经变成了我们指定的green
image.png

回滚应用

首先我们查看一下当前发布版本的历史记录,通过点击历史版本就可以看到。
image.png

这里会根据git commit和git 提交信息来描述每个版本的具体情况,我们可以选取任何一个版本进行回滚,比如这里我们选取第一个版本进行回滚。


image.png



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


image.png


应用中心自动部署托管在Git上的Kubernetes模板

前面我们介绍了手动的部署应用,每次更新完毕git后,手动的触发应用的更新。下面我们来介绍另一种方式,可以自动化的更新应用。

创建自动更新的应用

创建应用与前面的手动更新的应用区别不大,主要就是更新方式的选择,只需要部署策略选择为自动就可以了,其他参数和前面的手动更新应用是一致的。
这里的修整资源和自我修复我们可以不选择,具体的介绍如下。
image.png

创建完毕和上面的应用是相同的,下面我们来看一下更新的操作。

自动更新应用

首先我们还是需要去git上更新一下应用,这里我们将green更新为blue,如这个commit 一致 https://github.com/xianlubird/argocd-example-apps/commit/bfaa85784835281e7e30e4d0e88ab7cd9ff5c4b2。更新完毕后,稍等一会,大约1min,刷新一下应用就会发现,应用已经被自动更新,新的镜像为blue,同时发布记录也已经生成,一切都是自动的,不需要用户手动介入任何事情,只要把模板提交上去,就可以完成自动化的发布,同时发布记录也会记录在册。


image.png


image.png

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
3月前
|
测试技术 持续交付 开发工具
《Git 简易速速上手小册》第6章:Git 在持续集成/持续部署(CI/CD)中的应用(2024 最新版)
《Git 简易速速上手小册》第6章:Git 在持续集成/持续部署(CI/CD)中的应用(2024 最新版)
85 2
|
3天前
|
jenkins 测试技术 开发工具
协同开发的艺术:Git 在团队项目中的高效应用
【8月更文第16天】在现代软件开发中,团队成员之间的高效协作是至关重要的。Git 作为一种分布式版本控制系统,为开发者提供了强大的工具来管理代码的变化和协作。本文将介绍如何利用 Git 来优化团队的工作流程,并提供实际操作的代码示例。
12 1
|
3天前
|
开发工具 git
Git 高手之路:高级特性与实战技巧揭秘
【8月更文第16天】在日常开发工作中,Git 已成为版本控制不可或缺的工具。本文将介绍 Git 的一些高级特性和实战技巧,帮助你更好地管理项目和团队协作。
8 1
|
2月前
|
前端开发 持续交付 开发工具
详细介绍Git的基本原理、在前端开发中的应用以及如何使用Git来优化团队协作
【6月更文挑战第14天】Git是前端开发中的必备工具,它通过分布式版本控制管理代码历史,支持分支、合并和冲突解决,促进团队协作。在前端开发中,Git用于代码追踪、版本控制、代码审查和持续集成部署,优化团队协作。制定分支策略、编写清晰提交信息、定期合并清理分支以及使用Git钩子和自动化工具能进一步提升效率。理解并善用Git,能有效提升前端项目的质量和开发效率。
43 3
|
1月前
|
数据可视化 程序员 开发工具
小白也能玩转Git:从入门到实战详细教程
小白也能玩转Git:从入门到实战详细教程
|
2月前
|
开发工具 git 开发者
使用Git进行版本控制的最佳实践
【6月更文挑战第3天】使用Git进行版本控制的最佳实践包括:初始化配置Git仓库,设置个人信息和默认编辑器;提交信息要简洁明了,使用有意义的标题和描述;分支管理中,为新功能或修复创建分支,定期合并并保持主分支稳定;进行代码审查以保证质量;使用标签标记里程碑;忽略不必要的文件;定期备份仓库并学会恢复操作;不断学习和实践Git的高级用法。遵循这些实践可提升开发效率和代码质量。
|
2月前
|
中间件 Java 生物认证
Web应用&源码泄漏&开源闭源&指纹识别&GIT&SVN&DS&备份
Web应用&源码泄漏&开源闭源&指纹识别&GIT&SVN&DS&备份
|
3月前
|
前端开发 持续交付 开发工具
【专栏:工具与技巧篇】版本控制与Git在前端开发中的应用
【4月更文挑战第30天】Git是前端开发中的必备工具,它通过分布式版本控制管理代码历史,支持分支、合并、回滚等操作,促进团队协作和冲突解决。在前端项目中,Git用于代码追踪、代码审查、持续集成与部署,提升效率和质量。优化协作包括制定分支策略、编写清晰提交信息、定期合并清理分支及使用Git钩子和自动化工具。掌握Git能有效提升开发效率和代码质量。
56 2
|
3月前
|
开发工具 git 开发者
【专栏】探讨了 Git 中的 `git rebase` 操作,它用于重新应用提交到另一分支,改变历史顺序
【4月更文挑战第29天】本文探讨了 Git 中的 `git rebase` 操作,它用于重新应用提交到另一分支,改变历史顺序。与 `git merge` 不同,rebase 重写提交历史,提供简洁线性的历史记录。文章介绍了 rebase 的基本操作、应用场景,如整理提交历史、解决冲突和整合分支,并强调了使用注意事项,如避免在公共分支上操作。尽管 rebase 可以带来整洁的历史和冲突解决便利,但其潜在的风险和可能导致的历史混乱需谨慎对待。理解并恰当使用 `git rebase` 可以提升开发效率和代码质量。
136 1
|
3月前
|
存储 项目管理 开发工具
Git 版本控制:构建高效协作和开发流程的最佳实践
版本控制是软件开发的核心,促进团队协作与项目管理。通过制定明确的分支命名策略,遵循一致的代码提交规范,如指明提交类型和简短描述,增强了历史记录的可读性,可以清晰地组织和理解项目的结构与进展。
150 0
Git 版本控制:构建高效协作和开发流程的最佳实践