jenkins中不同的容器云连接方式

前面的文章我向大家展示了docker云里通过SSH连接的节点容器是如何创建的,并展示了配置方法,其实还有另外两种方式。一种是附加容器,一种是通过JNLP链接。这一篇将讲一讲这两个是怎么使用的

image.png

附加容器的方式

根据连接要求,容器里面必须有java,并且启动命令要简单,我们还是用上次做的容器镜像,这个模板配置里面Docker Command直接设置为空。

image.png

Connect method选择Attach Docker Container,EntryPoint Cmd使用默认值,也是${JAVA_EXE}
${JVM_ARGS}
-jar
${FS_DIR}/${JAR_NAME}
-noReconnect
-noKeepAlive
-agentLog
${FS_DIR}/agent.log

这个换行是Jenkins的格式,其他配置根据自身需要填写,我这里除了前面的labels、name和image,其他都没有填。

启动任务可以看到运行正常,说明此类容器启动方式不需要额外给镜像增加什么东西在里面,只需要拿到就就可以启动,毕竟容器宿主机对其有完全控制的权力。

image.png

JNLP方式

这是一种K8s的容器常用的挂载方式,JNLP都是挂载点EntryPoint 的业务。

先在容器设置container setting中配置Command为/bin/bash。

当我们没有这个Jenkins的agent.jar在镜像中的时候,可以参考给出的命令:

sh
-c
wget ${JENKINS_URL}jnlpJars/agent.jar && java -jar agent.jar -jnlpUrl ${JENKINS_URL}computer/${NODE_NAME}/slave-agent.jnlp -secret ${JNLP_SECRET}

上面的几个环境变量都会在创建容器的时候传递过去,所以不用担心找不到变量。
如果将agent.jar放到指定位置了,那么这个可以配置运行后半段

java -jar agent.jar -jnlpUrl ${JENKINS_URL}computer/${NODE_NAME}/slave-agent.jnlp -secret ${JNLP_SECRET}

受机器性能的影响,这个机器从创建到执行成功任务花费的时间很长

image.png

image.png
一开始我还以为配错了,搞了半天,其实只是因为性能太差。所以如果一直在等待的话,那么就自己等一下,不用太着急。
 

注意事项

结合前面文章中建立docker云的SSH连接方式,三种方式优劣各有,SSH的可以远程登录,但配置的时候要额外的服务;附加的方式对容器要求很低,一般都能挂上;JNLP的也需要额外的命令,而且对机器性能要求比前两者高一些。
另外还总结了使用的一些 经验,希望对大家有所帮助

实例数配置

性能差的机器一定要在Instance Capacity填一个比较小的数字,不然整个机器都会卡住的,不要问我为什么知道。

容器里的hosts问题

容器里的/etc/hosts文件会在镜像生产的时候刷新,并不是我们制作的时候的那个,额外的host需要在Extra Hosts进行配置,格式是类似hostname:IP换行hostname:IP

© 版权声明
THE END
喜欢就支持一下吧
点赞0

Warning: mysqli_query(): (HY000/3): Error writing file '/tmp/MYny05tY' (Errcode: 28 - No space left on device) in /www/wwwroot/583.cn/wp-includes/class-wpdb.php on line 2345
admin的头像-五八三
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

图形验证码
取消
昵称代码图片