scikitlearn tensorflow实用教材

71.1元

包邮

(需用券)

去购买 >

5ba567ca3302f5d321cf47349da47d69.png

关于k8s环境的jenkins集群

k8s下搭建了jenkins集群后,执行任务时会新建pod,任务完成后pod被销毁,架构如下图所示:

64e6328d847697b5d42476b0ec6e3810.png在k8s搭建jenkins集群的步骤请参照《》

关于jenkins构建maven

作为java开发者,用jenkins构建maven工程是常见的编译构建方式,当jenkins部署到kubernetes之上后,要做一些设置才能顺利编译构建;

实战简介

本次实战是在k8s的jenkins环境编译构建spring-cloud-alibaba这个开源的maven工程,涉及到的环境信息如下:

kubernetes:1.15

jenkins:2.190.2

maven:3.6.3

spring-cloud-alibaba:2.1.1.RELEASE

设置maven

如果您已经参考《》一文在kubernetes部署了jenkins,接下来要做的就是设置maven插件:

在设置页面进入"Global Tool Configuration",如下图:

98ac53d24c1b40f57e2be96ab25bc557.png

新建一个Maven配置,如下图,名为mvn-3.6.3,版本选择3.6.3

59b548ed8e029a178c213d435a66ef29.png

点击底部的Save按钮保存配置,这样,在pipeline任务中就能跳过名称"mvn-3.6.3"使用此maven工具了;

关于maven的settings.xml

局域网内的nexus私有仓库是经常用到的,作用如下:

缓存中央仓库的jar,这样局域网内的开发者在运行maven工程时,所需jar是从nexus下载的,而不必去中央仓库下载,可节省下载时间;

自己做的二方库发布到nexus私有仓库,给局域网内的其他人使用;

通常是通过配置maven的settings.xml来访问nexus私有仓库的,因此,jenkins在构建maven项目时也要用到配置好的settings.xml文件,才能访问nexus私有仓库;

如果您想了解更多nexus的细节,请参考文章《》

设置maven的settings.xml

这是本文的重点,思路如下:

把settings.xml做成configmap;

挂载到执行任务的pod中;

执行jenkins的pipeline脚本中,执行mvn命令时指定使用挂载的settings.xml文件:

接下来是实现上述思路的操作:

准备好settings.xml文件,里面已配置好nexus私有仓库的信息,主要是server节点和mirror节点,参考下图:

503d37f38f4ea35b3d42c35b52aadab3.png

将settings.xml上传到kubernetes环境,执行以下命令创建名为settings.xml的configmap:

kubectl create configmap settings.xml \

--from-file=settings.xml \

-n helm-jenkins

上述命令有以下两点需要注意:

a. from-file参数表示此configmap的内容来源,是当前目录下名为settings.xml的文件;

b. 此configmap的namespace名为helm-jenkins,这是jenkins所在的namespace;

在Configure System页面,找到Pod Templates的配置,增加一个Config Map Volume,如下图:

40fbb08d1b4918180fe77eefa30dcf5f.png

Config Map名称填写settings.xml,挂载路径是/home/jenkins/settings,如下图:

8d5e9c8cc08f821c88ff361bce9fa655.png

点击底部的Save按钮保存设置;

经过了以上设置,执行pipeline任务时,pod的/home/jenkins/settings目录下就会有settings.xml文件,您只需指定使用此文件即可,mvn命令的-s参数就是用来指定settings.xml文件的,下图是一段pipeline脚本,可作为参考:

458a1462330598850b782346f2e1f306.png

设置pod内存和CPU

执行任务的pod的内存如果太小,可能会导致maven或者gradle编译时报OutOfMemory错误,因此需要设置pod内存:

在Configure System页面,找到Pod Templates的配置,点击下图红框中的Advanced...按钮:

af6df197c9013c6f59256978bd8fb441.png

如下图红框所示,按照实际需求对CPU和内存进行调整,我这里设置了1G的内存:

fd04e9503cb58d0a0d3db648dae528df.png

点击底部的Save按钮保存设置;

输出构建结果

mavne工程编译构建成功后,想要得到构建结果可以有多种途径,这里提供一种参考:通过数据卷的方式将构建结果保存到到宿主机

在Configure System页面,找到Pod Templates的配置,如下图,添加卷选择Host Path Volume:

5302c7449936b372c45636bf8e103570.png

如下所示,主机路径填写/usr/local/jenkins_output,挂载路径填写/home/jenkins/jenkins_output,这样就把pod的文件夹映射到宿主机上了

注意:确保宿主机的/home/jenkins/jenkins_output有写权限

经过以上设置,jenkins环境现在可以顺利构建maven项目了,下一篇文章,会挑选一个热门开源项目来实战编译构建。

欢迎关注我的公众号:程序员欣宸

https://github.com/zq2599/blog_demos

java 11官方入门(第8版)教材

79.84元

包邮

(需用券)

去购买 >

f0f3f55624fb396b1764d42d6df88864.png

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐