Jenkins-K8s动态部署Slave过程踩过坑
本文最后更新于 718 天前,其中的信息可能已经有所发展或是发生改变。

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-slavePod Templates设置问题(未设置),排除了自定义镜像的问题;剩下基本上就是Jenkins-master全局环境设置导致问题了?查看,确实!删除环境变量。重新跑,问题解决!影响问题是jenkins的全局环境变量导致的

image-20230223162240517

image-20230223162332125

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

出现问题及过程

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

image-20230223162954951

解决

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

image-20230223163557756

image-20230223163125988

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇