Jenkins+gitlab+harbor+k8s构建CICD

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

#1.将jenkins服务器的公钥放到gitlub上面(jenkins部署在k8s-node01机器中了)
[root@k8s-node-1 ~]# ssh-keygen 
[root@k8s-node01 ~]# cat ~/.ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQAB
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值