此教程所使用的所有文件,均可在 https://github.com/xuejipeng/jenkins-k8s 找到

一、制作jenkins-slave镜像

因为官方的 jnlp 文件只是基础镜像,值提供了 jnlp 连接 jenkins-master 的功能,因为不同的构建任务需要用到的环境不一,需要根据不同的环境构建不同的jnlp镜像,下面是我的 Dockerfile ,大家可以跟我不同的需求做些修改

cat Dockerfile

FROM  centos
#定义jnlp的版本
ARG VERSION=3.16
ARG AGENT_WORKDIR=/root/agent
#获取jnlp
RUN curl --create-dirs -sSLo /usr/share/jenkins/slave.jar https://repo.jenkins-ci.org/public/org/jenkins-ci/main/remoting/${VERSION}/remoting-${VERSION}.jar \&& chmod 755 /usr/share/jenkins \&& chmod 644 /usr/share/jenkins/slave.jar
#安装软件
RUN yum -y install git  libtool-ltdl java-1.8.0-openjdk
RUN rm -rf /var/cache/yum/x86_64/7/*ENV AGENT_WORKDIR=${AGENT_WORKDIR}COPY node /usr/local/
COPY kubectl /usr/bin/kubectl
#提前从官网镜像中将命令拷贝出来
COPY jenkins-slave /usr/local/bin/jenkins-slave
#将自己的 .kube 文件拷贝到镜像中
COPY .kube /root/.kube
#定制hosts文件,因为centos的hosts放置在只读层,需要修改系统读取hosts的位置到/tmp/hosts文件
COPY hosts /tmp/hosts
RUN mkdir -p -- /lib-override && cp /usr/lib64/libnss_files.so.2 /lib-override
RUN sed -i 's:/etc/hosts:/tmp/hosts:g' /lib-override/libnss_files.so.2
ENV LD_LIBRARY_PATH /lib-override RUN mkdir /root/.jenkins && mkdir -p ${AGENT_WORKDIR}
ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/node/bin
RUN npm install -g yarn
WORKDIR /root
ENTRYPOINT ["jenkins-slave"]

制作镜像
docker build -t jenkins-slave:1.0 .
如果没有提前下载centos镜像,构建时间可能较长。

二、配置jenkins-master

  1. 打开 jenkins UI 界面依次点击
    系统管理 –> 系统设置 –> 新增一个云(在界面最下方) –> Kubernetes
    配置如下:



    配置完成后点击保存

2.新建一个 pipline 任务

三、编写 pipline

这里由于各项目使用到的环境不同,这里只是简单做了个模板,大家可以在此模板的基础上修改为适合自己的 pipline,将此 pipline 放置到代码的根路径下

四、开始构建

返回到项目点击立即构建,可以看到 jenkins-slave 正在创建

查看构建日志,docker、kubectl命令可正常调用

至此,构建完成。

jenkins k8s 动态增减 jenkins-salve (2) 实现 slave 节点动态构建相关推荐

  1. Jenkins+k8s部署Jenkins slave

    一.构建镜像 下载基础镜像,这里使用openvz的包,下载centos7的镜像 1.1 下载镜像后导入到本地 JENKINS VERSION为: 2.222.4 ------------------- ...

  2. 【Kubernetes 企业项目实战】06、基于 Jenkins+K8s 构建 DevOps 自动化运维管理平台(上)

    目录 一.k8s 助力 DevOps 在企业落地实践 1.1 传统方式部署项目为什么发布慢,效率低? 1.2 上线一个功能,有多少时间被浪费了? 1.3 如何解决发布慢,效率低的问题呢? 1.4 什么 ...

  3. 【K8S】基于Docker+K8S+GitLab/SVN+Jenkins+Harbor搭建持续集成交付环境(环境搭建篇)

    写在前面 最近在 K8S 1.18.2 版本的集群上搭建DevOps环境,期间遇到了各种坑.目前,搭建环境的过程中出现的各种坑均已被填平,特此记录,并分享给大家! 服务器规划 IP 主机名 节点 操作 ...

  4. k8s部署jar包_学习K8S之路.6--- 在K8S中部署Jenkins,并使用Jenkins打包jar包

    一:部署jenkins jenkins官网:https://jenkins.io/download/ jenkins镜像:https://hub.docker.com/r/jenkins/jenkin ...

  5. Jenkins X基本概念:Jenkins K8S helm Draft gitops

    概念 Jenkins X是基于Kubernetes的持续集成.持续部署平台.也是Jenkins的子项目.Jenkins X旨在使程序员在研发过程中能够轻松遵循DevOps原理和最佳实践. 介绍 Jen ...

  6. Jenkins 设置镜像_在k8s上安装Jenkins及常见问题

    持续集成和部署是DevOps的重要组成部分,Jenkins是一款非常流行的持续集成和部署工具,最近试验了一下Jenkins,发现它是我一段时间以来用过的工具中最复杂的.一个可能的原因是它需要与各种其它 ...

  7. 在k8s上安装Jenkins及常见问题

    持续集成和部署是DevOps的重要组成部分,Jenkins是一款非常流行的持续集成和部署工具,最近试验了一下Jenkins,发现它是我一段时间以来用过的工具中最复杂的.一个可能的原因是它需要与各种其它 ...

  8. 【Go】K8s 管理系统项目[Jenkins Pipeline K8s环境–应用部署]

    K8s 管理系统项目[Jenkins Pipeline K8s环境–应用部署] 1. k8s-plantform-api-Pipeline 考虑到实际工作中前后端可能是不同的同学完成,一般Api部分完 ...

  9. k8s 主从架构jenkins报错处理

    报错如下 Still waiting to schedule task 'jnlp-slave-p6ch6' is offline 这个原因是jenkins slave节点(临时产生,发布完毕会销毁) ...

  10. 两种常见挂载Jenkins slave节点的方法

    1.挂载slave节点的方法 在Jenkins的Master上,进入Mange node页面,可以管理node节点,例如新加.删除等操作. 其中, Name是节点名字: Description是节点描 ...

最新文章

  1. 程序员因重复记录日志撑爆ELK被辞退!
  2. 调查:中国CIO在亚太拥最大战略影响力
  3. 面试:Java反射到底慢在哪?
  4. VMware vSphere Client WIN10安装问题
  5. python34怎么安装_简明Python3教程 4.安装
  6. mysql到oracle数据迁移,mysql数据迁移到oracle
  7. Redis的Java客户端Jedis的八种调用方式(事务、管道、分布式)介绍
  8. linux集群时间同步搭建
  9. Go语言之进阶篇 netcat工具的使用
  10. kr中的逆波兰表示法计算器
  11. ansys workbench汉化教程_【软件下载】——“冰点文库”使用教程及配套安装包(无广告插件)...
  12. Vue-01 —创建一个Vue实例
  13. 男人,得有足够征服女人的本钱
  14. 电脑和ubuntu开发板用网线连接的方法
  15. Installing Kubernetes Using ‘kubeadm’
  16. 腾讯实习结束总结+感悟
  17. 广西工业职业技术学院计算机宿舍,广西工业职业技术学院2021年宿舍条件
  18. windows无法打开“应用商店”
  19. mysql 别名排序没效果_除了会排序,你对ORDER BY的用法可能一无所知!
  20. Springboot与手机的互动

热门文章

  1. 行业分析| 物流对讲
  2. 工业大数据白皮书(2019版)
  3. CMOS MIPI EOT 学习 基于Zynq高速串行CMOS接口的设计与实现
  4. Fe3O4 NPs@MIL-53|NH2-MIL-53(Sc)|NH2-MIL-53(Al)|NH2-MIL-125负载银钴合金纳米材料|氨基化mof材料
  5. Seaborn(三)调色板palette
  6. 华为畅享7鸿蒙,华为畅享7开箱图赏:做工配置表现不俗
  7. 第七章---8253和8255芯片
  8. ubuntu 安装chrome并禁止提示更新
  9. Pixracer V1.0编译固件
  10. Hulu在Content Embedding的探索与实践