上一节《Jenkins X--(6)虚拟机里搭建Minikube环境》,我们已经完成了基于minikube的K8s环境的搭建,如果只是学习K8s这个环境就够了。这一节,我们要在这个K8s集群上,搭建一套云原生时代CICD的开源框架:Jenkins X。
jenkins-x-versions:v1.0.118 https://github.com/jenkins-x/jenkins-x-versions
jx:2.0.844 https://github.com/jenkins-x/jx
jenkins-x-platform:2.0.1413 https://github.com/jenkins-x/jenkins-x-platform
jenkins-x-versions是一个包含与jenkins-x及其相关程序一起使用的packages和helm charts的一致的版本集合。jenkins-x-versions v1.0.118 对应的jx版本是2.0.844,jenkins-x-platform的版本是2.0.1413。
首先安装jx
首先在本机上安装一个命令行工具jx,用于安装和使用Jenkins X。
jx可以安装在MacOs,Linux和Window上。可以参考:https://github.com/jenkins-x/jx/releases
这里执行一下命令安装2.0.844版本的jx:
curl -L https://github.com/jenkins-x/jx/releases/download/v2.0.844/jx-linux-amd64.tar.gz | tar xzv
验证jx是否安装成功,输入:jx,显示jx的命令清单。
[root@learncloudnative ~]# jx
安装Jenkins-X到当前K8s集群
准备工作
jx在安装jenkinsX到K8s集群时,需要从github上clone相关的代码库,比如:预览环境和生产环境的模板代码库。也需要提供一个Git Server以及相关的账号、Token来上传相应的代码库。因此,验证git是否安装,并设置git config。
安装Git
centos里自带的git的版本有点低,可通过下面方法使用源码安装高版本git
# yum -y groupinstall Development tools
设置Git Server Token
Git Server的token提前准备好,我这里是用的github,可以在个人设置Setting---Personal access tokens里添加新的token。权限包括:delete_repo, read:org, read:user, repo, user:email, write:repo_hook
下载JenkinsX的镜像
jenkinsX的镜像需要从国外网站上下载,jx并没有提供像minikube里指定镜像地址的参数,这里只能依靠之前写的《Jenkins X--(4)不用翻墙也能下载国外的镜像》,先提前把镜像准备好。各位幸运的是,这些镜像我都已经准备好了,可以在hub.docker.com里搜索,账号:xinglongjian下一般都有,如果没有,那就是在其他的账号里已经有了,我就没重复上传。如果都没有,可以安装文章里提供的方法,自行上传。
下载镜像
转成tag镜像
docker pull xinglongjian/jenkinsx:0.0.80
gcr.io/jenkinsxio/jenkinsx:0.0.80
docker pull xinglongjian/builder-jx:2.0.842-199
gcr.io/jenkinsxio/builder-jx:2.0.842-199
docker pull xinglongjian/jx:2.0.645
gcr.io/jenkinsxio/jx:2.0.645
docker pull xinglongjian/builder-maven:2.0.842-199
gcr.io/jenkinsxio/builder-maven:2.0.842-199
docker pull xinglongjian/nexus:0.1.7
gcr.io/jenkinsxio/nexus:0.1.7
docker pull xinglongjian/heapster:v1.5.2
k8s.gcr.io/heapster:v1.5.2
docker pull xinglongjian/addon-resizer:1.7
k8s.gcr.io/addon-resizer:1.7
docker pull xinglongjian/chartmuseum:v0.7.1
chartmuseum/chartmuseum:v0.7.1
docker pull xinglongjian/exposecontroller:2.3.111
gcr.io/jenkinsxio/exposecontroller:2.3.111
docker pull xinglongjian/nginx-ingress-controller:0.25.1
quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.25.1
docker pull registry:2.6.2
执行安装
jx install --versions-ref='v1.0.118'
执行过程如下:执行过程中会设置git config,以及连接github的账号和token,jx install根据指定的版本下载相应的代码库和镜像,同时会给自己的代码库中创建好环境代码库(test,stage,production)。
[root@learncloudnative ~]# jx install --versions-ref='v1.0.118'
jenkins X安装时默认,在k8s集群中安装一个名为jx的命名空间。同时也会为每个环境创建一个命名空间,如下表:
[root@learncloudnative ~]# kubectl get ns
以界面启动,在终端输入:jx console,可以在浏览器中打开jenkins X的控制台。
[root@learncloudnative ~]# jx console
在浏览器中打开这个地址,使用上面的管理员密码登录。
登录后,就进入到Jenkins的主界面了,同时有我们上面自动创建的两个环境(staging和production)流水线。
查看environment-healerwheat-production流水线的执行状态和执行日志。
这样,Jenkins X的环境就搭建好了,Jenkins X是云原生时代的CICD实现,以DevOps最佳实践和原则为指导,真正能够做到自动化,高效。
本文分享自微信公众号 - DevOps探索者(devopsagile)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。