一、测试验证¶
1.8.5.1 GitLab 创建 Java 项目¶
1、在浏览器上输入http://gitlab.zhang-qing.com/,默认的管理员用户root,密码S6n5Y7b81wRrJnKv。点击【项目】-【新建项目】

2、点击【创建空白项目】

3、定义项目名称为【java_kubernetes】,项目URL为http://gitlab.zhang-qing.com/root/java_kubernetes,可见性级别为【公开】,项目配置取消勾选【使用自述文件初始化仓库】,点击【新建项目】

1.8.5.2 GitLab 添加 SSH 密钥¶
1、打开git界面进行Git 全局设置
git config --global user.name "Administrator"
git config --global user.email "1234567@qq.com"
2、点击【放大镜】,搜索内容添写【SSH】,点击【SSH密钥】

3、打开git界面生成密钥文件
#文件位置C:\Users\用户名\.ssh
[root@master01 4]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/zq/.ssh/id_rsa): #第一次回车
/c/Users/zq/.ssh/id_rsa already exists.
Enter passphrase (empty for no passphrase): #第二次回车
Enter same passphrase again: #第三次回车
Your identification has been saved in /c/Users/zq/.ssh/id_rsa
Your public key has been saved in /c/Users/zq/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:1dor+C0iXszHx8qjAaznMx/UsAvv2Q07wRvrS5FkeEk zq@DESKTOP-PB38F06
4、查看公钥文件,并将其内容复制到Gitlab中
[root@master01 4]# cat /root/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC67CjA9F5rwEd/qLsiqIK2kVs88Z5PB2dARqEe74AsBMe6i7HAN9bqKBeAaRDKiz7NTLsrtQOtZzm266Lr1v7M1omrw3wcmDU2ee/Dpiah4sNaf44EgX/HwTsYjWG7XY/s37r6Gm4LqOREcN79Ced4b2+prWRTLj97SuVwDY3zGT4izAl8ECXKzKVHMCJf5hzYt+NmPX+gsFchZO5gsNYbG/kzdkGFhKyfeLzJNo8HTF2AicflG5Gw7Qx3eh46rn5eJ5lhQwfZT/ddww8WbZ4VMhgGxdHcs1gZQQDFMZ+E6XfGy1FLJNIlDZH2SpUPQNrCHVk6maky5fb0BKWvKRVz root@master01

5、创建一个新仓库
[root@master01 4]# git clone http://gitlab.zhang-qing.com/root/java_kubernetes.git
[root@master01 4]# cd java_kubernetes
[root@master01 java_kubernetes]# git init
[root@master01 java_kubernetes]# git remote add origin http://gitlab.zhang-qing.com/root/java_kubernetes.git
[root@master01 java_kubernetes]# touch README.md
[root@master01 java_kubernetes]# git add .
[root@master01 java_kubernetes]# git commit -m "first"
[root@master01 java_kubernetes]# git branch -M main
[root@master01 java_kubernetes]# git push -uf origin main
Username for 'http://gitlab.zhang-qing.com': root
Password for 'http://root@gitlab.zhang-qing.com': S6n5Y7b81wRrJnKv
1.8.5.3 Jenkins 添加流水线¶
1、打开浏览器输入http://jenkins.zhang-qing.com/,输入账号root和密码123456登录(这是我设置的账号和密码,实际需要根据你自己设计的账号和密码来定)
2、点击【新建任务】后,填写任务名test11,选择流水线后,点击【确定】

3、复制以下脚本内容后,点击【保存】

def git_address = "http://gitlab.zhang-qing.com/root/java_kubernetes"
def git_auth = "Gitlab-username"
//创建一个Pod的模板,label为jenkins-slave
podTemplate(label: 'jenkins-slave', cloud: 'study-kubernetes', containers: [
containerTemplate(
name: 'jnlp',
image: "harbor.zhang-qing.com/library/jenkins-slave-maven:v1"
)
]
)
{
//引用jenkins-slave的pod模块来构建Jenkins-Slave的pod
node("jenkins-slave"){
stage('拉取代码'){
checkout([$class: 'GitSCM', branches: [[name: '*/main']], extensions: [], userRemoteConfigs: [[credentialsId: "${git_auth}", url: "${git_address}"]]])
}
}
}
4、点击【立即构建】

5、点击【Console Output】可以查看详细内容信息

出现SUCCESS字样代表成功

1.8.6 总结¶
下面是基于Master-Slave模式下Jenkins的运行优势总结:
- 负载均衡:Master-Slave模式让Jenkins可以在多台机器中分布任务,从而提高 Jenkins处理任务的能力。
- 故障容错:Master-Slave模式在Jenkins系统出现故障时能够提供更好的支持。
- 扩展性:使用Master-Slave模式可以帮助Jenkins系统轻松扩展。
- 分布式构建:在Master-Slave模式下,Jenkins可以在多个Slave节点运行不同的任务,从而实现分布式构建。
- 安全性:Master-Slave模式可以提高Jenkins系统的安全性。
总而言之,使用Master-Slave模式可以提高Jenkins系统的可用性、可扩展性和安全性, 同时也可以提高任务的处理效率,简化构建过程,节省时间和成本。
关于master版本和slave版本不一致的解决方案:
1、降级jenkins为初始版本,并确认版本为8;
2、升级slave-jdk为11版本(推荐);
[root@master01 ~]# cd /root/4/javadockerfile/
[root@master01 javadockerfile]# vim Dockerfile
FROM jenkins/jnlp-slave:4.13.3-1-jdk11
MAINTAINER ZHDYA
# 切换到 root 账户进行操作
USER root
# 安装 maven
COPY apache-maven-3.3.9-bin.tar.gz .
RUN tar -zxf apache-maven-3.3.9-bin.tar.gz && \
mv apache-maven-3.3.9 /usr/local && \
rm -f apache-maven-3.3.9-bin.tar.gz && \
ln -s /usr/local/apache-maven-3.3.9/bin/mvn /usr/bin/mvn && \
ln -s /usr/local/apache-maven-3.3.9 /usr/local/apache-maven && \
mkdir -p /usr/local/apache-maven/repo
COPY settings.xml /usr/local/apache-maven/conf/settings.xml
USER jenkins