一、测试验证

1.8.5.1 GitLab 创建 Java 项目

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

image-20250122200209560

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

image-20250122200440794

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

image-20250122200625445

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密钥】

image-20250122201225394

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

image-20250122202054034

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,选择流水线后,点击【确定】

image-20231121164720360

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

image-20250122202440144

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、点击【立即构建】

image-20231121165022339

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

image-20231121165121496

出现SUCCESS字样代表成功

image-20250122202628882

1.8.6 总结

下面是基于Master-Slave模式下Jenkins的运行优势总结:

  1. 负载均衡:Master-Slave模式让Jenkins可以在多台机器中分布任务,从而提高 Jenkins处理任务的能力。
  2. 故障容错:Master-Slave模式在Jenkins系统出现故障时能够提供更好的支持。
  3. 扩展性:使用Master-Slave模式可以帮助Jenkins系统轻松扩展。
  4. 分布式构建:在Master-Slave模式下,Jenkins可以在多个Slave节点运行不同的任务,从而实现分布式构建。
  5. 安全性: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