网上找了很多 jenkins 使用 k8s 插件的例子,模仿着来但一直成功不了,可能是因为私有云的问题,所以特地写下来作为记录。划重点 私有云 你需要注意的点: 1.网络问题: 因为私有云和公司性质,所以你的机器和云集群不一定开通了网络访问关系,切记,去将要开的 ip,端口 统统的都开放了。 如果日志里提示是什么 connection time out 一定首先排查网络。 1.1.在 jenkins 中指定 agent 端口(你要保证这个端口也是开通了网络关系的),这样在 slave 响应 master 的时候才可以响应到。 2.在 jenkins 配置页面中完成基本的 k8s 插件的配置。在创建容器的时候,container template 名称要写成 jnlp,然后指定 jnlp 的镜像,切记运行的命令这一栏什么都不要写。你仔细看他问号有一个解释,写了之后就会覆盖容器原来的命令。你的 slave 节点就不会执行链接 master 的操作,然后你的 jenkins 日志就会一直等待 slave 去回应。(如果回应一直超时,请检查 jenkins agent 设置是否指定了开放的端口,然后该端口是否开通了网络关系。) ,命令参数:${computer.jnlpmac}${computer.name} 具体为什么这么写,我目前也不知道,只知道必须这么写。 3.然后新建 job 在 job 中选择 Restrict where this project can be run 在 label expression 时候填写你之前在配置 k8s 插件里的那个 label.之后就可以使用了。
1
CivAx 2019-09-10 17:20:16 +08:00
同时 slave 的 bashrc 文件要注意是否存在 master 无法支持的命令,否则连接也会报错
|
2
wangking 2019-09-10 17:48:33 +08:00
1,你这排版我一个字都不想看。
2,阿里云有最佳实践,照着做就能行 |
3
guyeu 2019-09-11 10:26:00 +08:00
jenkins x 了解一下
|
4
anubu 2019-09-12 17:18:09 +08:00
使用了一段时间,有个问题一直没有解决。在执行一个 job 前需要在 kubernetes 集群中拉起一个 pod 作为 agent,这里需要随机的等待一段时间,最长有 3 分钟。官方文档中有提到这个问题,按照文档中的步骤修改了 Jenkins 启动时的环境变量,但并没有效果。
|