Jenkins+gitlab+k8s构建CICD
文章目录
要完成这篇文章,请先完成—> kubeadm安装k8s v1.23 高可用环境
主机规划,和前面文件相比多了数据库机器
IP地址 | 主机名 | 备注 |
---|---|---|
192.168.10.64 | k8s-master01 | 测试最少2核6G(必须最少要2核) |
192.168.10.65 | k8s-master02 | 测试最少2核6G(必须最少要2核) |
192.168.10.66 | k8s-master03 | 测试最少2核6G(必须最少要2核) |
192.168.10.67 | k8s-node01 | 测试最少2核6G(必须最少要2核) |
192.168.10.68 | k8s-node02 | 测试最少2核6G(必须最少要2核) |
192.168.10.69 | k8s-mysql(redis、mysql) | 测试最少2核4G(必须最少要2核) |
192.168.10.225 | 高可用虚拟IP(VIP) | 与集群网段一样,不通才可以使用。 |
背景环境:企业级Jenkins如何进行持续集成,持续部署?如何将传统服务容器化,k8s化,一次构建,处处运行呢?让我们的服务不再依赖底层环境。
环境:已有一套k8s集群并在每个节点已经安装好了docker环境。
一、centos 搭建Jenkins环境
1.1 安装Jenkins
1.安装java环境
#1.安装依赖环境
#配置java1.8环境
#1.1.创建soft、instal
mkdir -p /export/soft #(此目录用来存放安装包)
mkdir -p /export/install
#上传jdk-8u212-linux-x64.tar.gz至soft并解压至install目录
[root@k8s-node01 ~]# tar -zxvf /export/soft/jdk-8u212-linux-x64.tar.gz -C /export/install/
#1.2.配置环境变量
#1.2.1 编辑文件
vim /etc/profile.d/java.sh
#1.2.2 将内容复制到文件中
export JAVA_HOME=/export/install/jdk1.8.0_212/
export PATH=$PATH:$JAVA_HOME/bin
#1.2.3生效环境变量
source /etc/profile
#1.2.4 检查是否配置完成
输入 jps
#2.配置maven环境apache-maven-3.6.2
1、首先下载zip文件
下载地址: http://maven.apache.org/download.cgi.
[root@k8s-node01 soft]# ls
apache-maven-3.6.3-bin.tar.gz jdk-8u212-linux-x64.tar.gz
[root@k8s-node01 soft]# tar xf apache-maven-3.6.3-bin.tar.gz
[root@k8s-node01 soft]# mv apache-maven-3.6.3 /usr/local/apache-maven
[root@k8s-node01 soft]# vi /etc/profile
# 最后一行添加
export MAVEN_HOME=/usr/local/apache-maven
export PATH=$MAVEN_HOME/bin:$PATH
# 生效环境变量
[root@k8s-node01 soft]# source /etc/profile
#3.配置nodejs环境
[root@k8s-node01 soft]# wget https://nodejs.org/dist/v12.18.1/node-v12.18.1-linux-x64.tar.xz
[root@k8s-node01 soft]# tar xf node-v12.18.1-linux-x64.tar.xz
[root@k8s-node01 soft]# mv node-v12.18.1-linux-x64 /usr/local/node
[root@k8s-node01 soft]# vi /etc/profile
......最后加......
export PATH=$PATH:/usr/local/node/bin
#使环境变量失效
[root@k8s-node01 ~]# source /etc/profile
[root@k8s-node01 ~]# cd /usr/local/node/bin
#查看版本(当前位置生效)
[root@k8s-node01 bin]# ./node -v
v12.18.1
#配软连接:
相当于全局变量,在任何文件夹都能查看版本信息
ln -s /usr/local/node/bin/node /usr/local/bin/
ln -s /usr/local/node/bin/npm /usr/local/bin/
#测试全局是否生效
[root@k8s-node01 bin]# cd
[root@k8s-node01 ~]# node -v
v12.18.1
安装包下载地址:http://mirrors.jenkins-ci.org/war/2.323/
[root@k8s-node01 ~]# wget http://mirrors.jenkins-ci.org/war/2.323/jenkins.war -P /opt/
[root@k8s-node01 ~]# cd /opt/
[root@k8s-node01 opt]# nohup java -jar jenkins.war --httpPort=8000 &
访问IP:8000并输入账号:admin 密码: 点击安装推荐的插件,有点慢,耐心等待即可
[root@k8s-node01 opt]# cat /root/.jenkins/secrets/initialAdminPassword
25e2ab8a5ad946e7b27e11ed9ff8990d
1.2 搭建gitlab环境
#gitlab的安装(192.168.10.69)新准备一台机器,内存最少给6G(我给的6G)
下载地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el8/
#1.下载gitlab的rpm安装包
[root@k8s-gitlab ~]# wget --content-disposition https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/7/gitlab-ce-14.2.7-ce.0.el7.x86_64.rpm/download.rpm
[root@k8s-gitlab ~]# yum localinstall gitlab-ce-14.2.7-ce.0.el7.x86_64.rpm -y
#2.配置域名访问
[root@k8s-gitlab ~]# vim /etc/gitlab/gitlab.rb
external_url 'http://gitlab.test.com'
#3.关闭不用的服务(减小内存负载)
#关闭或不关闭不重要,取决于你的内存---->取消注释
[root@k8s-gitlab ~]# vim /etc/gitlab/gitlab.rb
......
1385 prometheus['enable'] = false
1474 node_exporter['enable'] = false
1493 redis_exporter['enable'] = false
1511 postgres_exporter['enable'] = false
1560 grafana['enable'] = false
#第一次初始化时间较长,后期修改配置文件也需要初始化
[root@k8s-gitlab ~]# gitlab-ctl reconfigure
#查看状态
[root@k8s-gitlab ~]# gitlab-ctl status
#开启
[root@k8s-gitlab ~]# gitlab-ctl start
[root@k8s-gitlab ~]# gitlab-ctl stop
[root@k8s-gitlab ~]# gitlab-ctl restart
#查看gitlab日志
[root@k8s-gitlab ~]# gitlab-ctl tail -f
#停止某一项服务,比如说nginx
[root@k8s-gitlab ~]# gitlab-ctl stop nginx
#4.访问gitlab服务并修改密码
#将gitlab.test.com加入本地host文件,192.168.10.69
#打开windows文件:C:\Windows\System32\drivers\etc\hosts
192.168.10.69 gitlab.test.com
#账号默认为 root 自己设置的:admin@123
#密码:14版本以后密码在这个文件中
[root@k8s-gitlab ~]# cat /etc/gitlab/initial_root_password
Password: RYO824lMZiTWa4SgxmZ5oHmmQP85Jlxm2xFiFdLaZgo=
1.3 gitlab服务器配置git免密登录
#1.将gitlab服务器的公钥放在gitlab
[root@k8s-gitlab ~]# ssh-keygen #一路回车
[root@k8s-gitlab ~]# cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDpnglG6tvWzRbsaYuln1ShM8KCmMCOS8GGehyPqXckfPtD3umcOn7VjojweV14teHf9cA7QV4o8+dUHEe3qi3Zam2V2A3v499Uj67tlU9V0HxpbjNnZxJ7IhYv03hZbjNgstjdZIl1mNHET8hDqj9W0wfiwfwxCmv7gqD2JHohSVBdFcjypNB8m1 root@gitlab
1.4 Jenkins集成gitlab