1. 实验环境
1.1 k8s环境
1)Kubernetes 集群版本是 1.20.6
2)k8s控制节点:
IP:192.168.140.130
主机名:k8s-master
配置:4C6G
3)k8s工作节点
节点1:
IP:192.168.140.131
主机名:k8s-node1
配置:4C7.5G
节点2:
IP:192.168.140.132
主机名:k8s-node2
配置:4C11G
1.2 GitLab 环境
地址:http://192.168.140.132:8001/
代码仓库地址: http://192.168.140.132:8001/root/jenkins-sample.git
代码下载链接:https://pan.baidu.com/s/1xbW-zUf23tu0YSV-5c1dew?pwd=lmzf
提取码:lmzf
GitLab安装过程参考:Yum一键安装GitLab_yum gitlab-优快云博客
1.3 Harbor环境
IP:192.168.140.132
1.4 Jenkins环境
版本:Jenkins 2.394
对应的jnlp软件下载地址如下:
链接:https://pan.baidu.com/s/1bNYiZCHWT099eOEdhDmJ3Q?pwd=lmzf
提取码:lmzf
备注:docker load -i jenkins-slave-latest.tar.gz 镜像即为jenkins-slave-latest:v1
2. 安装环境
2.1 安装 nfs 服务
1)三个节点分别安装nfs服务,k8s-master作为服务端
[root@k8s-master ~]# yum -y install nfs-utils
[root@k8s-master ~]# systemctl enable nfs --now
[root@k8s-node1 ~]# yum -y install nfs-utils
[root@k8s-node1 ~]# systemctl enable nfs --now
[root@k8s-node2 ~]# yum -y install nfs-utils
[root@k8s-node2 ~]# systemctl enable nfs --now
2)k8s-master上创建共享目录
[root@k8s-master ~]# mkdir /data/v2 -p
[root@k8s-master ~]# vim /etc/export
/data/v2 192.168.140.0/24(rw,no_root_squash)
[root@k8s-master ~]# exportfs -arv
[root@k8s-master ~]# systemctl restart nfs
2.2 在 kubernetes 中部署 jenkins
1)创建名称空间
[root@k8s-master ~]# kubectl create namespace jenkins-k8s
2)创建 pv
[root@k8s-master ~]# kubectl apply -f pv.yaml
# pv.yaml文件
apiVersion: v1
kind: PersistentVolume
metadata:
name: jenkins-k8s-pv
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteMany
nfs:
server: 192.168.140.130
path: /data/v2
3)创建pvc
[root@k8s-master ~]# kubectl apply -f pvc.yaml
# pvc.yaml文件
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: jenkins-k8s-pvc
namespace: jenkins-k8s
spec:
resources:
requests:
storage: 10Gi
accessModes:
- ReadWriteMany
4)查看 pvc 是否创建成功
[root@k8s-master ~]# k