容器云平台基于GitLab+Jenkins构建CI/CD

365 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

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

ccccc