记忆角落

  • {{ item.name }}
  • Jenkins-K8s动态部署Slave过程踩过坑
  • 问题1:mvn 找不到 JAVA_HOME
  • 出现的错误
  • 具体过程
  • 解决
  • 问题2:自定义镜像启动假死情况
  • 出现问题及过程
  • 解决
  • 首页
  • 关于
  • 归档
  • 邻居
  • 捐赠

Jenkins-K8s动态部署Slave过程踩过坑

  • 郭良俊只狗
  • 2023-02-23
  • 2

Jenkins-K8s动态部署Slave过程踩过坑

最近基于K8S集群部署jenkins,想着都已经上K8S了,为啥不基于Kubernetes实现动态Agent构建机制呢?部署过程的文档后面有空再补吧~

于是乎,在部署过程中,遇到一个大坑吧,就记录一下。

问题1:mvn 找不到 JAVA_HOME

出现的错误

image-20230223161154287

[Pipeline] sh
+ mvn -v
The JAVA_HOME environment variable is not defined correctly,
this environment variable is needed to run this program

具体过程

因为动态部署jenkins-Slave,官方镜像是 jenkins/inbound-agent(以前是 jenkinsci/jnlp-slave and jenkins/jnlp-slave)

但是问题是官方镜像里面并没有一些必要的环境(maven/kubectl/),为了方便使用,就自定义一个新的镜像,问题点就开始了~新的镜像 docker run测试 maven环境/java环境是可用的,但是流水线启动跑,就报错。这个找了我一个晚上+一个上午(哭死!!!!!!)

image-20230223161021261

image-20230223161030529

解决

  1. 查找镜像dockerfile哪里不规范 -->没问题
  2. 查找流水线是否有问题 --> 也是莫得问题
  3. 进入pod容器,查看env --> 发现问题,JAVA_HOME环境变量的路径不对!

image-20230223161757613

看到是环境变量不对导致的,那就进一步检查是不是设置jenkins-slave的Pod Templates设置问题(未设置),排除了自定义镜像的问题;剩下基本上就是Jenkins-master全局环境设置导致问题了?查看,确实!删除环境变量。重新跑,问题解决!影响问题是jenkins的全局环境变量导致的

image-20230223162240517

image-20230223162332125

问题2:自定义镜像启动假死情况

出现问题及过程

情况就是Jenkins流水线起了Pod之后,一直假死,未执行任何步骤问题,检查是不是设置jenkins-slave的Pod Templates设置问题,查看运行的命令和参数是否覆盖了启动参数!因为镜像启动是ENTRYPOINT ["jenkins-slave"]

image-20230223162954951

解决

如果容器名称为:jnlp,则会覆盖jenkins官方自带容器,因此记得设置运行命令和命令参数为空即可解决

image-20230223163557756

image-20230223163125988

© 2012 - 2023 记忆角落 网站统计
Theme by Wing
粤ICP备14056850号-1 又拍云CDN赞助