文章目录
一、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}" ]]])
}
}
}