资讯专栏INFORMATION COLUMN

基于 Rancher 的企业 CI/CD 环境搭建

starsfun / 1430人阅读

摘要:持续集成,持续交付当然也有叫通常会采用一些软件如等来辅助我们。这时可以通过仓库自带的来触发。这里的最好是可以支持,关于,大家可以理解为类似的功能。关于如何取出服务地址并自动添加记录的原理,可以参考我之前的一篇文章文中第三部分有详细描述。

CI(Continuous Integration)持续集成,CD(Continuous Delivery) 持续交付(当然也有叫 Continuous Deployment)通常会采用一些软件如Jenkins、Drone、Travis、Gocd等来辅助我们。它们能够与Git SVN等代码管理仓库集成,帮助我们实现一些自动化任务。

CI/CD软件很多,再加上代码仓库不同,外加上业务流程的复杂度和不同开发语言的特性,会产生千变万化的组合。可以说CI/CD本身就是一个很大的话题,正所谓一千个人眼中就有一千个哈姆雷特,所以我们这次分享主要还是关注在与Rancher结合方面。

下面我们就以jenkins为例,看Rancher如何与其集成。

首先我们可以想到,对于一个CI/CD环境,Rancher可以提供什么?

快速部署jenkins

环境隔离/用户管理

基于Rancher compose进行应用编排

提供外部访问入口

Rancher的Catalog中提供了jenkins部署的样板:

左侧是jenkins-ci server,右侧是swam-plugin,这两个可以组成一个master/slave模式的集群。

尝试性的部署后,可以看到类似这样的效果:

选用jenkins-swarm-plugin组成slave节点, 这样我们可以在jenkins跑任务时能够和docker进行更好的集成 。

构建完毕后,可以在jenkins中看到集群状况:

那么使用jenkins来做CI是一种怎样的表现模式呢? 我们来通过一张图来看下:

开发人员 push commit后,代码仓库收到提交信息。这时可以通过仓库自带的hook来触发jenkins build。也可以通过jenkins的自poll来获取最新代码。然后jenkins就自动执行你所设定的各种任务脚本。

插播一句,关于触发jenkins build 的几种方式:

Post commit hook (git原生hook)

Webhook (github/gitlab都支持,需要hook的server端接收请求

Jenkins有相应的plugin)

Build periodically / Poll SCM

CI的过程根据业务的复杂程度,各有不同,一般情况下分为这几步:

运行测试用例—编译lib—制作docker镜像并push到仓库—ranchercompose 部署服务。

通常我们可以把 rancher-compose 的file直接写在代码project中,这样jenkins可以直接读取到,并执行rancher-compose执行部署服务。

在执行rancher-compose时,可以考虑下面两种策略:

每次根据jenkins的来创建新的stack

Rancher-compose --force-upgrade --pull 拉取最新镜像并强制升级

在rancher-compose 执行完毕后,通常交付一个对外访问的ip:port,但是这个访问地址一般来说不是固定的,所以我们的业务服务部署完毕后,自动绑定dns,是一个非常好的体验。

sync-service 可以将app-service的服务地址在dns中添加A记录,这样我们只需记住dns,就可以直接看到CD后的业务服务。这里的dns-server 最好是可以支持SRV Record,关于SRV Record,大家可以理解为类似AWS Route53的功能。

关于如何取出服务地址并自动添加DNS记录的原理,可以参考我之前的一篇文章:http://blog.neunn.com/wordpre... 文中第三部分有详细描述。

Q & A

Q:你刚才提到「在执行rancher-compose时,可以考虑下面两种策略:每次根据jenkins的来创建新的stack」。这种方式可以用DNS么?如果用的话,转发到哪个stack上?

A:默认情况下 ..,你也可以特殊制定一个dns前缀.

Q:jenkins里只能有一个ENV-*?

A:可以在env下部署多个jenkins,但是考虑企业内部不同部门不同业务要进行隔离,所以建议每个env一套jenkins。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/27972.html

相关文章

  • Rancher Pipeline发布:开源、极简、强大CI/CD

    摘要:来自硅谷的企业级容器管理平台提供商今日正式发布与企业级容器管理平台集成的,极简的操作体验,强大的功能整合,完全开源,助力在企业的真正落地使用。 来自硅谷的企业级容器管理平台提供商Rancher Labs今日正式发布与Rancher企业级容器管理平台集成的Rancher Pipeline,极简的操作体验,强大的功能整合,完全开源,助力CI/CD在企业的真正落地使用。 云计算技术的广泛采用...

    lewif 评论0 收藏0
  • 超长干货:基于DockerDevOps CI/CD实践——来自iHealth分享

    摘要:在猫屎氤氲的雾气里角仰望天花板,手机微信提醒这次构建成功或失败,并附带污言秽语。这时他可以开始往工位走,坐下时,微信又会提醒本次部署到成功或失败。与企业微信的集成在决定使用之前,需要知道的是,是一个高度依赖社区的项目。 前言 相信我,一切事情的发生都是赶鸭子上架,没有例外。人类所有伟大的变革都是迫不得已,可又是那么顺其自然。比如容器(docker)技术的诞生,比如箭在弦上的创业,比如野...

    Dongjie_Liu 评论0 收藏0
  • 使用Rancher和DroneCI建立超高速Docker CI/CD流水线

    摘要:本文作者为的架构师,他分享了使用和建立超高速流水线的经验。月日,北京海航万豪酒店,容器技术大会即将举行。 Higher Education(highereducation.com)是一个连接学生与高校的入学申请平台,通过引入高意图和高质量的潜在学生,以及明确、有效的操作,为网站合作的大学吸引学生入学。每年Higher Education为其大学合作伙伴招收超过15000名在线学生入学申...

    dreamtecher 评论0 收藏0
  • Rancher upgrade webhook之CI/CD

    摘要:应用镜像示例应用基于官方镜像,修改了页面信息应用镜像推送应用镜像到指定的远程镜像仓库创建通过创建,,命令行如下验证服务打开浏览器,访问服务,确认应用的内容。验证更新打开浏览器,访问服务,验证服务升级内容是否正常。 概述 结合大家CI/CD的应用场景,本篇Blog旨在介绍如何通过Rancher的webhook微服务来实现CI/CD的联动。 流程介绍 本次实践的主要流程如下: CI/CD...

    sf_wangchong 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<