会网站开发没学历,上上海网站设计建设,北京网站建设方案品牌公司,如何查看网站的死链接文章目录 安装和配置NFSNFS简介NFS安装 在Kubernetes安装Jenkins-Master创建NFS client provisioner安装Jenkins-Master Jenkins与Kubernetes整合实现Jenkins与Kubernetes整合构建Jenkins-Slave自定义镜像 JenkinsKubernetesDocker完成微服务持续集成拉取代码#xff0c;构建镜… 文章目录 安装和配置NFSNFS简介NFS安装 在Kubernetes安装Jenkins-Master创建NFS client provisioner安装Jenkins-Master Jenkins与Kubernetes整合实现Jenkins与Kubernetes整合构建Jenkins-Slave自定义镜像 JenkinsKubernetesDocker完成微服务持续集成拉取代码构建镜像 安装和配置NFS
NFS简介
NFSNetwork File System它最大的功能就是可以通过网络让不同的机器、不同的操作系统可以共享彼此的文件。我们可以利用NFS共享Jenkins运行的配置文件、Maven的仓库依赖文件等
NFS安装
我们把NFS服务器安装在192.168.56.111机器上
1安装NFS服务在所有K8S的节点都需要安装
yum install -y nfs-utils2创建共享目录
mkdir -p /opt/nfs/jenkins
vi /etc/exports
/opt/nfs/jenkins *(rw,no_root_squash) *代表对所有IP都开放此目录rw是读写3启动服务
systemctl enable nfs 开机启动
systemctl start nfs 启动4查看NFS共享目录
showmount -e 192.168.56.111在Kubernetes安装Jenkins-Master
创建NFS client provisioner
nfs-client-provisioner 是一个Kubernetes的简易NFS的外部provisioner本身不提供NFS需要现有的NFS服务器提供存储。
1上传nfs-client-provisioner构建文件 其中注意修改deployment.yaml使用之前配置NFS服务器和目录
2构建nfs-client-provisioner的pod资源
cd nfs-client
kubectl create -f .安装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-ops3构建Jenkins-Master的pod资源
cd jenkins-master
kubectl create -f .4查看pod是否创建成功
kubectl get pods -n kube-ops5查看信息并访问
查看Pod运行在那个Node上
kubectl describe pods -n kube-ops查看分配的端口 kubectl get service -n kube-ops先安装基本的插件
Localization:ChineseGitPipelineExtended Choice Parameter Jenkins与Kubernetes整合
实现Jenkins与Kubernetes整合 Kubernetes 地址 https://kubernetes.default.svc.cluster.local/Kubernetes 命名空间 kube-ops
测试连接成功
Jenkins 地址 http://jenkins.kube-ops.svc.cluster.local:8080/
构建Jenkins-Slave自定义镜像
Jenkins-Master在构建Job的时候Kubernetes会创建Jenkins-Slave的Pod来完成Job的构建。我们选择运行Jenkins-Slave的镜像为官方推荐镜像jenkins/inbound-agent:4.13.3-1
pipeline 文件内容如下
def git_address https://gitee.com/qfxcoffee/shield.git
def git_auth gitee//创建一个Pod的模板label为jenkins-slave
podTemplate(label: jenkins-slave, cloud: my-kube, containers: [containerTemplate(name: jnlp,image: jenkins/inbound-agent:4.13.3-1)]
)
{//引用jenkins-slave的pod模块来构建Jenkins-Slave的podnode(jenkins-slave){// 第一步stage(拉取代码){checkout([$class: GitSCM, branches: [[name: master]], userRemoteConfigs: [[credentialsId: ${git_auth}, url: ${git_address}]]])}}
}podTemplate 就是k8s的pod模板label 是模板名字cloud 是云名字 在全局配置里的Cloud里自己填写的containerTemplate 指定在pod里运行的容器
JenkinsKubernetesDocker完成微服务持续集成
拉取代码构建镜像
1创建NFS共享目录
让所有Jenkins-Slave构建指向NFS的Maven的共享仓库目录
mkdir -p /opt/nfs/maven
vi /etc/exports 添加内容
/opt/nfs/jenkins *(rw,no_root_squash)
/opt/nfs/maven *(rw,no_root_squash)
systemctl restart nfs 重启NFS
showmount -e 192.168.56.111jenkins/inbound-agent:4.13.3-1镜像里面并没有Maven环境为了方便使用我们需要自定义一个新的镜像
docker build -t jenkins-slave-maven:latest .2创建项目编写构建Pipeline
chmod -R 777 /opt/nfs/maven
chmod 777 /var/run/docker.sock
chown .1000 /var/run/docker.sock
chown .1000 /usr/bin/docker
groupadd -g 1000 jenkins useradd -u 1000 -g jenkins -m jenkins
vim /etc/sudoers编写流水线脚本