Jenkins骚操作第十四章之基于Kubernetes/K8S构建Jenkins持续集成平台(下)

本文介绍了如何在Kubernetes环境中利用NFS搭建Jenkins主节点,并配置NFS共享存储。详细步骤包括NFS服务器安装、Jenkins-master部署、设置国内插件源以及与Kubernetes集群的整合,最后通过Jenkins流水线测试了Slave的创建。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、NFS

1、NFS简介

NFS(Network File System),它最大的功能就是可以通过网络,让不同的机器、不同的操作系统可以共享彼此的文件。我们可以利用NFS共享Jenkins运行的配置文件、Maven的仓库依赖文件等

2、NFS安装

NFS服务器安装在MASTER上 192.168.10.135

2.1、安装NFS服务(所有K8S节点都需要安装)
yum install -y nfs-utils
mkdir -p /opt/nfs/jenkins
vim /etc/exports
/opt/nfs/jenkins *(rw,no_root_squash)
systemctl enable nfs	开机启动
systemctl start nfs	启动
2.2、查看NFS共享目录
showmount -e 192.168.195.200

3、在主节点安装Jenkins-master

创建NFS client provisioner

上传1)上传nfs-client-provisioner构建文件
在这里插入图片描述

vim deployment.yaml,使用之前配置NFS服务器和目录

在这里插入图片描述

构建nfs-client-provisioner的pod资源

cd nfs-client 
kubectl create -f .  //注意:后面有"."

在这里插入图片描述

4、安装Jenkins-master

1、上传Jenkins-master构建文件

在这里插入图片描述

其中有两点注意:

第一、在StatefulSet.yaml文件,声明了利用nfs-client-provisioner进行Jenkins-Master文件存储
在这里插入图片描述

Service发布方法采用NodePort,会随机产生节点访问端口
在这里插入图片描述

2、创建kube-ops的namespace

//把Jenkins-master的pod放到kube-ops下
kubectl create namespace kube-ops
//构建Jenkins-Master的pod资源
cd jenkins-master 
kubectl create -f . //注意 -f 后面有 “.”
//查看pod是否创建成功
kubectl get pods -n kube-ops
//查看信息,并访问
kubectl describe pods -n kube-ops
//查看分配的端口
kubectl get service -n kube-ops

在这里插入图片描述

查看密钥

cd /opt/nfs/jenkins/kube-ops-jenkins-home-jenkins-0-pvc-7bf030d2-f98e-40b2-a852-0d99ab1e3170/secrets
cat initialAdminPassword
919fd67f604c474a90ef2a70c75229d0

5、登陆Jenkins

放入密钥
在这里插入图片描述
在这里插入图片描述

设置插件下载地址

 cd /opt/nfs/jenkins/kube-ops-jenkins-home-jenkins-0-pvc-7bf030d2-f98e-40b2-a852-0d99ab1e3170/

sed -i 's/http:\/\/updates.jenkins- ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json

Manage Plugins点击Advanced,把Update Site改为国内插件下载地址

https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

记得重启

在这里插入图片描述

安装插件

Localization:Chinese 
Git
Pipeline
Extended Choice Parameter

重启Jenkins

6、Jenkins+kubernetes整合

1、安装插件kubernetes插件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

https://kubernetes.default.svc.cluster.local
http://jenkins.kube-ops.svc.cluster.local:8080
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

拖入安装包

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

每个节点加入harbor路径

{
"registry-mirrors":["https://8er2zxqs.mirror.aliyuncs.com"],
"insecure-registries":["192.168.10.131:85"]
}
systemctl restart docker

docker login -u admin -p Harbor12345 192.168.10.131:85

在这里插入图片描述

docker tag jenkins-slave-maven:latest 192.168.10.131:85/library/jenkins-slave-maven:latest

docker push 192.168.10.131:85/library/jenkins-slave-maven:latest

在这里插入图片描述
在这里插入图片描述

7、测试Jenkins-Slave创建

1、创建一个Jenkins流水线项目

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

编写pipeline,从gitlab拉取代码(使用httpURL)

def git_address = "http://192.168.10.129:82/root/tensquare_back.git"
def git_auth = "e5437e82-74e0-44b3-8cf9-7c3b0e3be36d"

//创建一个Pod的模板,label为jenkins-slave
podTemplate(label: 'jenkins-slave', cloud: 'kubernetes', containers: [ 
    containerTemplate(
        name: 'jnlp',
        image: "192.168.10.131:85/library/jenkins-slave-maven:latest"
    )
  ]
)
{
    //引用jenkins-slave的pod模块来构建Jenkins-Slave的pod 
    node("jenkins-slave"){
        stage('拉取代码'){
            checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: "${git_auth}", url:"${git_address}" ]]])
        }
    }
}

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值