目录
操作环境
整个流程大部分通过容器化的部署来实现,通过Docker分别创建Jenkins、Gitlab容器,配置Jenkins连接maven,在Gitlab容器里面,编写Jenkinsfile流水线脚本,当代码提交到 Gitlab 代码仓库之后,可以通过 Jenkins 自动识别到代码的变化,将代码同步到kubernetes集群中,以缩短新功能开发上线周期,及时满足客户的需求,实现DevOps的部分流程,来减轻部署运维的负担,实现可视化容器生命周期管理、应用发布和版本迭代更新。
节点角色 |
主机名 |
VCPUS |
内存 |
硬盘 |
Master、Harbor、CICD |
master |
16 |
64G |
500G |
Worker Node |
node |
8 |
32G |
500G |
程序 |
IP地址 |
用途 |
k8s 集群 |
192.168.200.10:30000 |
K8s 集群的 Master 节点 |
Harbor |
192.168.200.10:80 |
本地镜像仓库 |
Jenkins |
192.168.200.10:8080 |
以 docker 方式运行的 jenkins |
GitLab |
192.168.200.10:81 |
以 docker 方式运行的 gitlab |
一、 Jenkins安装
1.1、安装Jenkins
在master节点上编写docker-compose.yaml文件编排部署Jenkins服务
[root@master jenkins]# cat docker-compose.yaml
version: '3.1'
services:
jenkins:
image: 'jenkins/jenkins:2.262-centos'
volumes:
- /home/jenkins_home:/var/jenkins_home
- /var/run/docker.sock:/var/run/docker.sock
- /usr/bin/docker:/usr/bin/docker
- /usr/bin/kubectl:/usr/bin/kubectl
- /root/.kube:/root/.kube
ports:
- "8080:8080"
expose:
- "8080"
- "50000"
privileged: true
user: root #用root身份生成容器
restart: always #容器重启策略为always
container_name: jenkins
Jenkins 的web访问验证:http://IP:8080
使用命令docker-composc ps 查看 Jcnkins 容器是否正常启动
Jenkins状态
进入 Jenkins 容器查看容器版本是否正确
[root@master jenkins]# docker exec -it jenkins bash
[root@6e70688698be /]# cat /etc/issue
\S
Kernel \r on an \m
1.2、Jenkins初始化
浏览器访问:http://192.168.200.10:8080 ,可以看到 jenkins 正在启动 中的提示,等待启动完成,进入解锁 jenkins 页面,可执行如下命令找到管理员密码
[root@master ~]# docker exec -it jenkins cat /var/jenkins_home/secrets/initialAdminPassword
4a122b28d97b4ebd9ff604d9422c68c3
访问Jenkins的web界面