文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

如何利用VSTS跟Kubernetes整合进行CI/CD

2023-06-19 10:13

关注

这篇文章主要讲解了“如何利用VSTS跟Kubernetes整合进行CI/CD”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何利用VSTS跟Kubernetes整合进行CI/CD”吧!

为什么VSTS要搭配Kubernetes?

通常我们在开发管理软件项目的时候都会碰到一个很头痛的问题,就是开发、测试、生产环境不一致,导致开发人员和测试人员甚至和运维吵架。

因为常见的物理环境甚至云环境中,这些部署环境都是由运维人员提前准备好的。每次更新代码版本,都要很小心的在几个环境之前修改不同的参数配置,一不小心就将生产环境的数据库连接到了测试库,或者日志文件的地址写到了一个不存在的盘符里等等各种异常情况,有了Kubernetes这样微服务编排框架,我们可以通过代码的形式描述服务的架构,描述服务之间的依赖关系,做到了 Infrastructure As Code。这样可以大大减少了开发运维之间在做环境切换时带来的额外成本。

将VSTS的持续集成能力和持续发布能力整合Kubernetes,可以让项目团队更容易发现和改进代码(这时候的Infrastructure也已经是代码了)的问题,真正将精力放在改进用户体验和改进产品品质上。

准备VSTS管理环境

首先我们需要到www.visualstudio.com下申请好的VSTS账号,然后在账号下创建一个用Git作为代码管理的项目

如何利用VSTS跟Kubernetes整合进行CI/CD

创建好项目后我们就可以利用git clone将代码库同步到本地开发服务器上面来,构建开发人员的workspace

准备Docker Registry和Kubernetes环境

准备一个私有的Docker Registry.因为我们需要将Build 好的代码放进一个Docker的Images上面然后推送到一个私有的Registry上。Azure Container Registry无疑是一个非常好的选择,因为等一下我们的代码需要部署到Azure的Kubernetes群集里,Image所在的地方离部署的地方越近,部署速度当然也就越快了。而且Azure Container Registry还支持全球同步,如果你的代码打算全球多站点发布的话,Azure Container Registry服务无疑是最好的选择。创建Azure Docker Registry可以参考官方文档:https://docs.microsoft.com/zh-cn/azure/container-registry/ 

准备Kubernetes群集,Azure上支持提供了AKS服务,让我们可以快速搭建出来Kubernetes的群集环境,减少了运维人员管理群集的压力,搭建方法参考官方文档:https://docs.microsoft.com/zh-cn/azure/aks/kubernetes-walkthrough-portal 

  搭建的过程中注意几个地方

准备好Service Principle服务主体APP

准备好linux ssh登录的Key

安装好群集后通过 Azure CLI 2.0命令:az aks install-cli 这样我们就可以自动在你的linux上装上Kubernetes的kubectl命令行工具了.

要管理Kubernetes的话,需要运行下面的命令,在本地生成K8S的管理配置信息

az aks get-credentials --resource-group=myResourceGroup --name=myK8sCluster

获取到的配置内容会放在/home/<youraccount>/.kube/config文件里面,这文件里面的内容非常重要,等一下VSTS需要这个信息来跟K8S群集进行链接的。

我们可以通过kubectl get nodes命令看看群集的状况

如何利用VSTS跟Kubernetes整合进行CI/CD

开始配置VSTS的自动化构建和自动化发布

我们再VSTS的项目站点里找到Build and Release的菜单项,点击New的按钮

如何利用VSTS跟Kubernetes整合进行CI/CD

选择NodeJS with Gulp的模板

如何利用VSTS跟Kubernetes整合进行CI/CD

创建好后,我们先裁剪掉暂时不需要的Task,然后添加上Docker build Image和push Image的Task

如何利用VSTS跟Kubernetes整合进行CI/CD--->如何利用VSTS跟Kubernetes整合进行CI/CD

配置Build an image Task:

在这里我们可以将一开始准备好的Azure Container Registry环境用上了

如何利用VSTS跟Kubernetes整合进行CI/CD

配置Push an image Task,Image Name使用BuildId作为镜像的Tag,这样后面部署到Kubernetes的时候就可以指定这个Tag对Image进行更新了。

如何利用VSTS跟Kubernetes整合进行CI/CD

Build的定义不算太复杂,定义完之后我们就可以直接触发一次Build来检验一下配置是否成功了。

下图就是Build成功之后的日志,我图中我们可以看到Docker push命令将image push到了我们之前建立的Azure注册Repository里面了

如何利用VSTS跟Kubernetes整合进行CI/CD

自动化构建成功之后,我们可以做自动化的部署了,

创建一个新的发布定义

如何利用VSTS跟Kubernetes整合进行CI/CD

在Environment里点击一下蓝色字体部分,编辑部署任务

如何利用VSTS跟Kubernetes整合进行CI/CD

在配置部署任务时,选择Deploy to Kubernetes的任务类型,并且在Manage这个蓝色链接这里配置Kubernetes的链接信息。

在Kubernetes的命令里使用set命令,通过设置image的更新地址来通知Kubernetes更新部署版本。

命令的格式是:kubectl set image deployment/<deploymentname> <imagename>=<image url>

在VSTS里面,只需要argument里面把后面的部分填上就好

如何利用VSTS跟Kubernetes整合进行CI/CD

配置Kubernetes的 Service Endpoints信息:

如何利用VSTS跟Kubernetes整合进行CI/CD

配置好部署任务后,我们可以尝试一下手动将前面成功的Build部署到Kubernetes环境中

如何利用VSTS跟Kubernetes整合进行CI/CD如何利用VSTS跟Kubernetes整合进行CI/CD

至此我们已经可以成功将一份代码部署到了Kubernetes里面去了

如何利用VSTS跟Kubernetes整合进行CI/CD

部署成功后,可以通过kubectl get pods -w命令监控一下Kubernetes对容器进行更新替换的过程,从下图中可以看到Kubernetes创建了一个新的pod,然后将旧版本的pod进行了Terminate.

如何利用VSTS跟Kubernetes整合进行CI/CD

如果我们需要将Release跟Build自动链接起来,可以通过编辑Release定义,选择图上的闪电按钮,将Continuous deployment trigger的按钮设置为Enabled即可。

如何利用VSTS跟Kubernetes整合进行CI/CD如何利用VSTS跟Kubernetes整合进行CI/CD

感谢各位的阅读,以上就是“如何利用VSTS跟Kubernetes整合进行CI/CD”的内容了,经过本文的学习后,相信大家对如何利用VSTS跟Kubernetes整合进行CI/CD这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯