jenkins 归档 ftp路径_打破技术壁垒,k8s集群从0开始搭建四:Jenkins与rancher集成

原创不易,请多多支持!对软件技术感兴趣的童鞋请关注我,后续技术分享更精彩。

容器编排从几年前群雄割据、各方乱战,到如今Google的k8s一统天下。能迅速力挽狂澜,已说明其技术实力。但k8s复杂的架构,不太友好的文档,确实让一些初学者望而却步。近期正好一直在学习k8s的东西,走了一些弯路。整理出来以备参考。

由于内容过多,本文将分多章介绍k8s集群构建过程,并发布demo到k8s集群,简单演示一个完整CI/CD的自动化过程。各章节内容如下:

一、k8s集群环境准备

二、rancher搭建k8s集群环境

三、rancher应用部署

四、Jenkins部署应用到rancher集群

部署资源

centos7.7虚拟机3台,对应ip如下:

- 192.168.0.110- 192.168.0.111- 192.168.0.112

192.168.0.110 : rancher和jenkins部署机器。

192.168.0.111/192.168.0.112:k8s集群node节点。笔者机器资源所限,超过3台虚拟机,个人笔记本电脑将无法工作。使用者可根据具体情况增加虚拟机节点。

Jenkins安装

192.168.0.110 虚拟机安装Jenkins程序

docker run     -u root     --restart=always     -d     -p 8080:8080     -p 50000:50000     -v /data/jenkins_home:/var/jenkins_home     -v /var/run/docker.sock:/var/run/docker.sock     -v /data/repository:/root/.m2/repository     jenkinsci/blueocean

启动完成,浏览器访问http://192.168.0.110:8080 地址。

首次启动,初始密码位于/data/jenkins_home/secrets/initialAdminPassword文件中,设置密码后,更新常用Jenkins插件。

Jenkins安装Redeploy Rancher2.x Workload 插件

Redeploy Rancher2.x Workload插件,可通过Jenkins发布rancher集群中安装的应用服务。

注意该插件只支持redeploy rancher集群中的应用,不能发布新应用。即该插件只支持rancher集群中配置好的应用,插件仅通过api调用rancher中workload完成的配置,触发rancher将应用部署到集群中。新应用需先在rancher中配置workload,然后Jenkins插件方能生效。

插件安装完成后,浏览器http://192.168.0.110:8080/restart ,重启Jenkins使插件立即生效。

Jenkins新建任务,输入app-demo,并选择自定义方式。

f3b08805aeb2402cb30e7f7e006fb86c

设置git仓库,这里为阿里云code仓库。

c2bb938cfdaa4b1fa9c128de877a7727

添加参数化构建配置

cfee3eb4fe104ca184c4a4ea85755171

添加boolean参数buildImage(打包镜像)

137e25a460274640824f45850c13541a

添加string参数appName(应用镜像名称)

7e1ee7588d154fe4a2f9ba8d4b354827

添加string参数version(应用版本号)

5e2045bd2eda4b6ba3414e8922b9503a

添加maven构建

ad423bc88fbe41a09849f789f09de589

添加shell脚本

a16ecf1f0b5c4f088321642fad9f78db
f9d708eb697d41469d4a66bd3b83a9d0

按上图添加以下shell内容,其中shell变量来源于Jenkins上一步参数构建值。

#!/bin/bash# 切换到部署jar包目录,替换为实际项目目录cd ****/***-demoecho "cur dir is: `pwd`"#登录阿里云docker镜像仓库,公开镜像仓库跳过这一步,自行替换账号密码docker login --username=***** registry.cn-shanghai.aliyuncs.com -p=***if [ $buildImage == true ]; thenecho "start to build docker images..."    #构建docker镜像docker build --tag=$appName:$version .    #将镜像推向阿里云注册仓库docker push $appName:$versionfi

添加rancher插件

添加rancher插件前,先要在rancher工具中添加api key。

登录rancher工具界面。点击右上角用户头像 - API&Key 按钮,添加api key。

e9fed8d6ef094ca58e888d7f7e12015b

点击 addKey。

0f04b106bd9c446294eed91d9f8d15bd

填入描述,点击create。

5a81a635f70842ac898ba8c1e62cf499

记住对应信息,右侧按钮复制内容。注意:秘钥信息只有新建时明文显示,关闭后无法查看,请提前做好保存,后续jenkins插件会用到。

4a0b1e74590049a5a9891f02f24a11bc

jenkins 中添加rancher redeploy插件

916fd6e2fadd4cea8daddd1c84ba5257

填入以下输入框内容,点击右侧帮助按钮有相应字段提示。

注:若插件面板有乱码,可参考后面rancher redeploy 乱码解决

0f340a56a66d4d8cb43df177a1360c3a

上图填写内容说明:
点击 添加 ,新增rancher api 认证。

cc9e84f688d244c48f702b578c5ee9a6

按上图,填写相应信息。其中endpoint 和 Bearer Token对应rancher中添加api key是预先生成的值。

点击 添加 完成密钥设置。

fbff620b79294399ae00f3b05894f46e

工作负载地址,可以从rancher界面app-demo应用workload列表页 - 右侧编辑 - view in api 查看。

值为打开浏览器页面url中/project/* 那部分路径。

e254947ba1aa41a2969c88c8f621f380
df22634f746a461a8d397ae0c141d13e

点击保存,完成jenkins任务配置。

rancher redeploy 乱码解决

jenkins版本可能导致rancher redeploy乱码问题。

下载redeploy-rancher2-workload.jar到本地。

https://gitee.com/eagle_daiq/pub/blob/master/redeploy-rancher2-workload.jar

通过ftp上传本地文件到,jenkins所在机器/data/jenkins_home/plugins/redeploy-rancher2-workload/WEB-INF/lib目录,覆盖redeploy-rancher2-workload.jar文件。重启jenkins。

jenkins部署发布

点击jenkins中app-demo任务,开始构建。

53b213a25ed54418b8ca49332268a35f

构建完成,查看rancher app-demo workload列表页,可见最新版本20200503版本部署已被触发。

a969084cda024ef9b2779c55f08088e8

总结

到此,通过jenkins发布app-demo项目的CI/CD自动化集成已全部完成。

本系列文章介绍了rancher搭建k8s集群,并通过一个简单maven app-demo示例,演示jenkins到rancher工具的集成过程。希望对初入k8s集群学习的朋友有所帮助。有任何疑问可留言讨论。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值