当前位置: 首页 > news >正文

jenkins部署slave动态节点

1.制作slave镜像
1.下载agent.jar,访问自己的jenkins加上jnlpJars/agent.jar 下载jar包
http://jenkins.lapis.com/jnlpJars/agent.jar
2.然后把jar包放在slave节点要使用的镜像的/usr/share/jenkins/路径下
Dockerfile

ARG version=3192.v713e3b_039fb_e-6
ARG JAVA_MAJOR_VERSION=17
FROM harbor.laisontech.com/lapis/jenkins-2.432:s1
ARG user=jenkins
USER root
COPY agent.jar /usr/share/jenkins/agent.jar
RUN chmod +x  /usr/share/jenkins/agent.jar
COPY jenkins-agent /usr/local/bin/jenkins-agent
RUN chmod +x /usr/local/bin/jenkins-agent &&\ln -s /usr/local/bin/jenkins-agent /usr/local/bin/jenkins-slave
USER ${user}
ENTRYPOINT ["/usr/local/bin/jenkins-agent"]

3.制作上传镜像

docker build -t harbor.laisontech.com/lapis/jenkins-slave:1 ./
docker push harbor.laisontech.com/lapis/jenkins-slave:1

2.配置集群
1.进入jenkins的系统管理页面
在这里插入图片描述

2.进入节点管理
在这里插入图片描述

3.选择clouds,创建新的cloud
在这里插入图片描述

4.选择K8S,输入集群名创建集群
在这里插入图片描述

5.填写K8S地址,证书,命名空间,然后点击测试连接看是否会出现K8S版本号,出现说明连接正常。如果jenkins是部署在K8S集群内,则不需要证书和地址。
在这里插入图片描述

6.配置jenkins地址和jenkins通道,jenkins通道的默认端口是50000
在这里插入图片描述

3.配置pod模板
1.选择pod templates
在这里插入图片描述

2.选择添加pod模板
在这里插入图片描述

3.配置pod模板
在这里插入图片描述

4.配置挂载卷
在这里插入图片描述
在这里插入图片描述

5.配置pod寿命
在这里插入图片描述

4.配置使用root启动pod
1.一定要配置使用root启动pod,不然可能导致没有权限或权限错误
在K8S中创建一个sa和secert一般使用jenkins的sa就行

apiVersion: v1
kind: ServiceAccount
metadata:name: nfs-client-provisioner# replace with namespace where provisioner is deployednamespace: es        #根据实际环境设定namespace,下面类同
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:name: nfs-client-provisioner-runner
rules:- apiGroups: [""]resources: ["persistentvolumes"]verbs: ["get", "list", "watch", "create", "delete"]- apiGroups: [""]resources: ["persistentvolumeclaims"]verbs: ["get", "list", "watch", "update"]- apiGroups: ["storage.k8s.io"]resources: ["storageclasses"]verbs: ["get", "list", "watch"]- apiGroups: [""]resources: ["events"]verbs: ["watch", "create", "update", "patch"]- apiGroups: [""]resources: ["services"]verbs: ["get"]- apiGroups: ["extensions"]resources: ["podsecuritypolicies"]resourceNames: ["nfs-provisioner"]verbs: ["use"]- apiGroups: [""]resources: ["endpoints"]verbs: ["get", "list", "watch", "create", "update", "patch"]
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:name: run-nfs-client-provisioner
subjects:- kind: ServiceAccountname: nfs-client-provisioner# replace with namespace where provisioner is deployednamespace: es
roleRef:kind: ClusterRolename: nfs-client-provisioner-runnerapiGroup: rbac.authorization.k8s.io
---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:name: leader-locking-nfs-client-provisioner# replace with namespace where provisioner is deployednamespace: es
rules:- apiGroups: [""]resources: ["endpoints"]verbs: ["get", "list", "watch", "create", "update", "patch"]
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:name: leader-locking-nfs-client-provisioner
subjects:- kind: ServiceAccountname: nfs-client-provisioner# replace with namespace where provisioner is deployednamespace: es
roleRef:kind: Rolename: leader-locking-nfs-client-provisionerapiGroup: rbac.authorization.k8s.io
kubectl apply -f sa.yaml

2.配置容器模板的Service Account
在这里插入图片描述

5.配置job使用slave节点
1.进入job配置找到
在这里插入图片描述

相关文章:

  • Metasploit工具使用详解(中)笔记
  • STM32 ADC工作原理与配置详解
  • 《棒球百科》NCAA棒球体系·棒球1号位
  • 使用LangChain与多模态模型实现图像中的文字和表格提取(PDF可转图片)
  • Vue 项目中 Sass 与 Less 的对比
  • docker 网络-用户定义网络
  • Vue内置指令与自定义指令
  • 深入理解SQLMesh中的Lookback、Forward-Only和Auto-Restatement特性
  • IBM DB2和MYSQL在安全性、稳定性等方面的差异
  • linux中基础IO(上)
  • 【halcon】像素维度:插值算法对图片的影响
  • linux打印项目文件夹结构的命令
  • 【机器学习基础】机器学习入门核心算法:朴素贝叶斯(Naive Bayes)
  • [CARLA系列--03]如何打包生成CARLA 0.9.15的非编辑版(地图的加载与卸载)
  • Docker-compose 编排lnmp(dockerfile) 完成Wordpress
  • 【AI学习笔记】Coze平台实现生成小红书热门多图笔记
  • 【Pandas】pandas DataFrame drop
  • 九、【前后端联调篇】Vue3 + Axios 异步通信实战
  • 探索C++标准模板库(STL):String接口实践+底层的模拟实现(中篇)
  • GitHub 趋势日报 (2025年05月27日)
  • 企业网站建设立项报告/中国十大企业管理培训机构
  • 如何查看vs中建设好的网站/原创软文
  • 阿里云网站建设套餐/网页设计师
  • 做定制商品的网站/佛山网站定制
  • 网站定制设计服务需要使用的技术/站长工具的网址
  • 珠海设计公司排名/seo关键词排名优化如何