热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

k8s如何设置java启动参数_k8s下的jenkins如何设置maven

scikitlearntensorflow实用教材71.1元包邮(需用券)去购买关于k8s环境的jenkins集群k8s下搭建了jenkins集群后,执行任务时会新

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



推荐阅读
  • 本文介绍了 Go 语言中的高性能、可扩展、轻量级 Web 框架 Echo。Echo 框架简单易用,仅需几行代码即可启动一个高性能 HTTP 服务。 ... [详细]
  • Linux CentOS 7 安装PostgreSQL 9.5.17 (源码编译)
    近日需要将PostgreSQL数据库从Windows中迁移到Linux中,LinuxCentOS7安装PostgreSQL9.5.17安装过程特此记录。安装环境&#x ... [详细]
  • 利用Jenkins与SonarQube集成实现高效代码质量检测与优化
    本文探讨了通过在 Jenkins 多分支流水线中集成 SonarQube,实现高效且自动化的代码质量检测与优化方法。该方案不仅提高了开发团队的代码审查效率,还确保了软件项目的持续高质量交付。 ... [详细]
  • centos 7.0 lnmp成功安装过程(很乱)
    下载nginx[rootlocalhostsrc]#wgethttp:nginx.orgdownloadnginx-1.7.9.tar.gz--2015-01-2412:55:2 ... [详细]
  • 本文介绍了如何在 Spring Boot 项目中使用 spring-boot-starter-quartz 组件实现定时任务,并将 cron 表达式存储在数据库中,以便动态调整任务执行频率。 ... [详细]
  • 为什么多数程序员难以成为架构师?
    探讨80%的程序员为何难以晋升为架构师,涉及技术深度、经验积累和综合能力等方面。本文将详细解析Tomcat的配置和服务组件,帮助读者理解其内部机制。 ... [详细]
  • 本文详细介绍了Java代码分层的基本概念和常见分层模式,特别是MVC模式。同时探讨了不同项目需求下的分层策略,帮助读者更好地理解和应用Java分层思想。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 大家好,我是李白。本文将分享一个从零开始的全栈项目,涵盖了设计、前端、后端和服务端的全面学习过程。通过这个项目,我希望能够帮助初学者更好地理解和掌握全栈开发的技术栈。 ... [详细]
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
  • 为了在Hadoop 2.7.2中实现对Snappy压缩和解压功能的原生支持,本文详细介绍了如何重新编译Hadoop源代码,并优化其Native编译过程。通过这一优化,可以显著提升数据处理的效率和性能。此外,还探讨了编译过程中可能遇到的问题及其解决方案,为用户提供了一套完整的操作指南。 ... [详细]
  • 在 CentOS 7 系统中安装 Scrapy 时遇到了一些挑战。尽管 Scrapy 在 Ubuntu 上安装简便,但在 CentOS 7 上需要额外的配置和步骤。本文总结了常见问题及其解决方案,帮助用户顺利安装并使用 Scrapy 进行网络爬虫开发。 ... [详细]
  • Netty框架中运用Protobuf实现高效通信协议
    在Netty框架中,通过引入Protobuf来实现高效的通信协议。为了使用Protobuf,需要先准备好环境,包括下载并安装Protobuf的代码生成器`protoc`以及相应的源码包。具体资源可从官方下载页面获取,确保版本兼容性以充分发挥其性能优势。此外,配置好开发环境后,可以通过定义`.proto`文件来自动生成Java类,从而简化数据序列化和反序列化的操作,提高通信效率。 ... [详细]
  • 深入解析Spring Boot启动过程中Netty异步架构的工作原理与应用
    深入解析Spring Boot启动过程中Netty异步架构的工作原理与应用 ... [详细]
  • 在Windows 10环境中通过单个Tomcat实例部署两个Web应用项目
    在Windows 10环境下,本文详细介绍了如何通过单一Tomcat实例部署两个Web应用项目。首先,准备所需的两个WAR包,分别为jprss.war和jenkins.war。接着,文章逐步讲解了具体的配置和操作步骤,确保两个项目能够顺利运行。最后,验证了两个应用项目的成功部署和正常运行。 ... [详细]
author-avatar
暧gx祢生
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有