基于Kubernetes构建持续集成
  3uJwYr9WYGcA 2023年12月04日 25 0



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应用系统架构如下:

基于Kubernetes构建持续集成_Jenkins

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

基于Kubernetes构建持续集成_jenkins_02


基于Kubernetes构建持续集成_ci/cd_03


基于Kubernetes构建持续集成_Jenkins_04


基于Kubernetes构建持续集成_ci/cd_05

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

导入本地项目

基于Kubernetes构建持续集成_Jenkins_06

[root@master ChinaskillProject]# git config --global user.name "Administrator"
[root@master ChinaskillProject]# git config --global user.email "admin@example.com"
[root@master ChinaskillProject]# 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, done.
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.

基于Kubernetes构建持续集成_Jenkins_07

4 连接Jenkins和Gitlab

配置Jenkins连接Gitlab,具体要求如下:
(1)设置Outbound requests;
(2)生成“Access Tokens”并命名为jenkins;
(3)设置Jenkins取消对'/project' end-point进行身份验证;
(4)测试Jenkins与Gitlab的连通性。

基于Kubernetes构建持续集成_gitlab_08


基于Kubernetes构建持续集成_jenkins_09


基于Kubernetes构建持续集成_jenkins_10


基于Kubernetes构建持续集成_gitlab_11


基于Kubernetes构建持续集成_ci/cd_12

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。
...


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月04日 0

暂无评论

推荐阅读
3uJwYr9WYGcA