1.前言
该公司决定采用GitLab +Jenkins来构建CI/CD环境,以缩短新功能开发上线周期,及时满足客户的需求,实现DevOps的部分流程,来减轻部署运维的负担,实现可视化容器生命周期管理、应用发布和版本迭代更新,需要完成GitLab + Jenkins + Kubernetes的CI/CD环境部署。CI/CD应用系统架构如下:
2.环境准备
2.1 虚拟机下载
当然你也可以用自己的。。下载链接如下
百度网盘-链接不存在 提取码:b2m1
2.2 安装基础环境
- 看这篇文章→容器云平台搭建
2.3 基础环境检查
[root@master ~] kubectl get cs
NAME STATUS MESSAGE ERROR
controller-manager Healthy ok
scheduler Healthy ok
etcd-0 Healthy {"health":"true"}
[root@master ~] kubectl get nodes
NAME STATUS ROLES AGE VERSION
master Ready master 37m v1.18.1
3.部署Jenkins环境
3.1导入Jenkins容器
- 把离线包jenkins_offline.tar上传至master节点/root目录下,解压文件:
-
tar -zxf jenkins_offline.tar -C /opt/
- 导入镜像
-
cd /opt/ docker load -i jenkins.tar
3.2启动Jenkins容器
docker run -d -p 8080:8080 -u root --name jenkins \
-v /home/jenkins_home:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
-v $(which docker):/usr/bin/docker \
-v /usr/bin/kubectl:/usr/local/bin/kubectl \
-v /root/.kube:/root/.kube \
jenkins/jenkins:2.262-centos
- 查看密码
-
docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword
- 通过浏览器访问
http://IP:8080
访问Jenkins,如图所示 - 跳过插件安装
- 设置Jenkins用户:
chinaskill
密码:000000
- 安装插件
-
cp -rf /opt/plugins/* /home/jenkins_home/plugins/
- 重启Jenkins容器
-
docker restart jenkins
刷新网页进入登录界面
4.部署Gitlab环境
4.1启动Gitlab容器
docker run -d -h gitlab -p 1022:22 -p 81:80 -p 443:443 --restart always --name gitlab \
-v /srv/gitlab/config:/etc/gitlab \
-v /srv/gitlab/gitlab/logs:/var/log/gitlab \
-v /srv/gitlab/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:12.9.2-ce.0
- 查看Gitlab容器启动状态 !>Gitlab启动会稍微慢一点具体看状态
-
docker ps | grep gitlab
正在启动的状态 !>注意STATUS的状态
启动成功的状态 !>注意STATUS的状态
-
通过浏览器访问
http://IP:81
访问Gitlab,并设置root密码:00000000
-
登录Gitlab用户:
root
密码:00000000
-
4.2在Gitlab创建项目
- 点击"Create a project",创建项目
ChinaskillProject
,可见等级选择"Public" -
4.3PUSH项目到Gitlab
-
yum install -y git && cd /opt/ChinaskillProject/ git remote remove origin git remote add origin http://IP:81/root/chinaskillproject.git git add . git commit -m "Initial commit" git push -u origin master
-
5.配置Jenkins连接Gitlab
5.1设置允许Webhook和服务对本地网络的请求
- Admin Area → Setting → Network → Outbound requests
- 把Allow requests to the local network from web hooks and services勾上后保存更改
-
5.2创建Gitlab API Token
- 点击右上角用户头像图标,选择"Settings"
- 点击左侧导航栏的"Access Tokens"添加Token
- 点击"Create personal access token"生成Token
- 复制Token,后面配置Jenkins时会用到
-
5.3设置Jenkins连接Gitlab