V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MonkeyNull
V2EX  ›  DevOps

在私有云上使用 jenkins&k8s 插件实现 docker 作为 jenkins slave 节点的试水

  •  
  •   MonkeyNull · 2019-09-10 16:36:53 +08:00 · 4347 次点击
    这是一个创建于 1662 天前的主题,其中的信息可能已经有所发展或是发生改变。

    网上找了很多 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.之后就可以使用了。

    4 条回复    2019-09-12 17:18:09 +08:00
    CivAx
        1
    CivAx  
       2019-09-10 17:20:16 +08:00
    同时 slave 的 bashrc 文件要注意是否存在 master 无法支持的命令,否则连接也会报错
    wangking
        2
    wangking  
       2019-09-10 17:48:33 +08:00
    1,你这排版我一个字都不想看。
    2,阿里云有最佳实践,照着做就能行
    guyeu
        3
    guyeu  
       2019-09-11 10:26:00 +08:00
    jenkins x 了解一下
    anubu
        4
    anubu  
       2019-09-12 17:18:09 +08:00
    使用了一段时间,有个问题一直没有解决。在执行一个 job 前需要在 kubernetes 集群中拉起一个 pod 作为 agent,这里需要随机的等待一段时间,最长有 3 分钟。官方文档中有提到这个问题,按照文档中的步骤修改了 Jenkins 启动时的环境变量,但并没有效果。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2834 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 14:53 · PVG 22:53 · LAX 07:53 · JFK 10:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.