目的
jenkins利用k8s进行构建项目,提升效率
可构建maven、webpack、docker image
前提
已部署k8s环境
已部署jenkins
步骤
- jenkins安装kubernetes插件
Manage Jenkins->Manage Plugins 安装kubernetes Plugin
- 配置kubernetes插件
Manage Jenkins->Configure System->新增一个云
下面逐个参数配置
名称:随便填写
Kubernetes 地址:可到kubernetes master /etc/kubernetes/admin.conf进行获取
Kubernetes 服务证书 key:可到kubernetes master /etc/kubernetes/admin.conf进行获取
禁用 HTTPS 证书检查: 是
凭据: 请看下文
凭据的生成方法:
文件中有三个值 certificate-authority-data 、client-certificate-data 、 client-key-data
解码它们获得证书 ,注意将上面的值替换称自己的一大长传字符串
echo certificate-authority-data | base64 -d > ca.crt
echo client-certificate-data | base64 -d > client.crt
echo client-key-data | base64 -d > client.key
根据这三个文件生成一个PKCS12格式的客户端证书文件
openssl pkcs12 -export -out cert.pfx -inkey client.key -in client.crt -certfile ca.crt
注意生成证书的时候,一定要填写密码,后面会用到
配置完后可点击链接测试,如果提示成功即配置成功
接着添加pod模板
命名空间: 使用的k8s的命名空间
标签列表: 构建任务可指定标签
用法:
Use this node as much as possible
尽可能多地使用这个节点
Only build jobs with label expressions matching this node
仅使用与此节点匹配的标签表达式构建作业
容器列表
名称: jnlp,写其它名称好像会有问题
Docker镜像: 构建使用的镜像,一般来说需要自己制作镜像
Host Path Vloume:
共享宿主机/var/run/docker.sock,这是保证在Docker容器里面运行Docker的关键
共享宿主/home/ake/.m2,这是maven的本地仓库路径,目的是为了下次构建maven项目时加快速度
- 制作自定义的构建镜像
Docekrfile:
ARG user=root
ARG group=root
#官方jenkins-jnlp-slave镜像
FROM jenkins/jnlp-slave
#把用户设置为root
USER root
WORKDIR /root
加入已下载的安装包 maven、node等
RUN mkdir -p /home/ake/app && mkdir -p /home/ake/script
ADD apache-maven-3.5.3.tar.gz /home/ake/app
ADD node-v10.12.0-linux-x64.tar.gz /home/ake/app
ADD jenkins-script.tar.gz /home/ake/script
#docker config.json文件,解决docker推送镜像到仓库需要login的问题
ADD config.json /root/.docker/config.json
#创建node的软连接,是的node命令可用
RUN ln -s /home/ake/app/node-v10.12.0-linux-x64/bin/npm /usr/local/bin/npm
RUN ln -s /home/ake/app/node-v10.12.0-linux-x64/bin/node /usr/local/bin/node
RUN ln -s /home/ake/app/node-v10.12.0-linux-x64/bin/cnpm /usr/local/bin/cnpm
#安装cnpm,使得npm速度
RUN npm install -g cnpm --registry=http://registry.npm.taobao.org
#安装docker
RUN apt-get -y install apt-transport-https ca-certificates curl gnupg2 software-properties-common && curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add - && add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/debian $(lsb_release -cs) stable" && apt-get update && apt-get -y install docker-ce=18.06.1~ce~3-0~debian
#添加环境变量,使得maven命令可用
ENV MAVEN_HOME=/home/ake/app/apache-maven-3.5.3
ENV PATH=${PATH}:${MAVEN_HOME}/bin
-
使构建任务利用k8s进行构建
- 指定限制项目的运行节点
- 默认全部都是有k8s进行构建
jenkins-kuebernetes plugin配置 选择 Use this node as much as possible
Manage Jenkins->Manage Nodes->master->选择Only build jobs with label expressions matching this node
所有评论(0)