GitLab + Jenkins + Kubernetes
- 1 要求:
- 2 安装Jenkins环境
- 3 安装Gitlab环境
- 4 连接Jenkins和Gitlab
- 5 配置Jenkins连接maven
- 6 配置CI/CD
1 要求:
该公司决定采用GitLab +Jenkins来构建CICD环境,以缩短新功能开发上线周期,及时满足客户的需求,实现DevOps的部分流程,来减轻部署运维的负担,实现可视化容器生命周期管理、应用发布和版本迭代更新,请完成GitLab + Jenkins + Kubernetes的CICD环境部署(构建持续集成所需要的所有软件包在软件包Jenkins_offline.tar中)。CICD应用系统架构如下:
2 安装Jenkins环境
在master节点上使用镜像jenkins/jenkins:2.262-centos部署Jenkins服务,具体要求如下:
(1)容器名称:jenkins;
(2)端口映射:8080:8080;
(3)使用root身份生成容器;
(4)离线安装Jenkins插件;
(5)设置Jenkins用户:chinaskill;密码:000000;
(6)在授权策略中配置“任何用户可以做任何事(没有任何限制)”。
Harbor仓库有jenkins镜像,可以直接运行
[root@master ChinaskillProject]# docker run -itd -p 8080:8080 --name jenkins2 jenkins/jenkins:2.262-centos
36405e29646cc0db7e9f3dd455fb9e693c7db11d81a5e33a7d6194202e1b46bb
[root@master ChinaskillProject]# docker exec -it jenkins2 cat /var/jenkins_home/secrets/initialAdminPassword
aad41e8595624f0bb7f00415d7e61cb1
3 安装Gitlab环境
在master节点上使用镜像gitlab/gitlab-ce:12.9.2-ce.0部署Gitlab服务,具体要求如下:
(1)容器名称:mygitlab;
(2)端口映射:1022:22、81:80、443:443;
(3)容器重启策略:always;
(4)设置root用户及密码;
(5)使用root用户登录Gitlab,密码:00000000;
(6)新建项目ChinaskillProject,将/opt/ChinaskillProject中的代码上传到ChinaskillProject项目中。
[root@master ChinaskillProject]# docker run -itd --name mygitlab --hostname 192.168.200.3 -p 1022:22 -p 81:80 -p 443:443 --restart always -u root gitlab/gitlab-ce:12.9.2-ce.0
导入本地项目
[root@master ChinaskillProject]# git config --global user.name "Administrator"
[root@master ChinaskillProject]# git config --global user.email "admin@example.com"
[root@master ChinaskillPr服务器托管网oject]# git init
Reinitialized existing Git repository in /opt/ChinaskillProject/.git/
git remote add origin http://192.168.200.3:81/root/chinaskillproject.git
[root@master ChinaskillProject]# git add .
[root@master ChinaskillProject]# git commit -m "Initial commit"
# On branch master
nothing to commit, working directory clean
[root@master ChinaskillProject]# git push -u origin master
Username for 'http://192.168.200.3:81': root
Password for 'http://root@192.168.200.3:81':
Counting objects: 3194, d服务器托管网one.
Delta compression using up to 8 threads.
Compressing objects: 100% (1430/1430), done.
Writing objects: 100% (3194/3194), 1.40 MiB | 2.61 MiB/s, done.
Total 3194 (delta 1235), reused 3009 (delta 1207)
remote: Resolving deltas: 100% (1235/1235), done.
To http://192.168.200.3:81/root/chinaskillproject.git
* [new branch] master -> master
Branch master set up to track remote branch master from origin.
4 连接Jenkins和Gitlab
配置Jenkins连接Gitlab,具体要求如下:
(1)设置Outbound requests;
(2)生成“Access Tokens”并命名为jenkins;
(3)设置Jenkins取消对'/project' end-point进行身份验证;
(4)测试Jenkins与Gitlab的连通性。
5 配置Jenkins连接maven
配置Jenkins连接maven,具体要求如下:
(1)采用docker in docker的方式在Jenkins内安装maven;
(2)在Jenkins中配置maven信息。
...
6 配置CI/CD
配置CI/CD,具体要求如下:
(1)新建一个流水线任务ChinaskillProject;
(2)编写流水线脚本,构建ChinaskillProject项目中的gateway和config服务,将构建后的镜像自动上传到Harbor仓库的chinaskillproject项目,并自动发布gateway和config服务到Kubernetes集群的springcloud命名空间下;
(3)配置Webhook;
(4)在Harbor中新建公开项目chinaskillproject。
...
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
DQL基本查询——INSERT INTO SELECT语句 概述: 将一张表的数据导入到另一张表中,可以使用INSERTINTO SELECT语句 格式 insert into 表1(字段1一,字段1二,..)select 字段2一,字段2二 ,…from…