Kubernetes插件容器无法连接回Jenkins

时间:2016-12-20 23:54:41

标签: jenkins docker kubernetes jnlp

我在AWS的同一网络中运行了Jenkins和Kubernetes集群。詹金斯拥有它自己的实例。

我已按如下方式配置Kubernetes插件: enter image description here

使用推荐的JNLP泊坞窗图像。 Jenkins JNLP端口配置为静态5000

现在,当我开始工作时,它向我显示节点处于脱机状态。当我点击离线节点时,我得到了这个:

enter image description here

这让我去了k8集群。运行docker ps表示没有容器在运行。但是:

enter image description here

从那里我去找到什么docker容器运行以及之后记录的日志:

enter image description here

我用: https://github.com/jenkinsci/docker-jnlp-slave为图片

https://github.com/jenkinsci/kubernetes-plugin

Jenkins版本:2.27

k8:hyperkube:v1.4.3_coreos.0

Jenkins确实启动了容器,我猜它运行并且错误输出,因为在容器运行期间没有提供有效的参数?我需要它是一个放手的过程,我不必登录我的容器(Java客户端)。我该如何实现这一目标?

更新

基于这个答案:kubernetes slaves cannot register to jenkins master

如果我登录容器并运行Jenkins在无法连接的主机下显示的命令:

java -jar /usr/share/jenkins/slave.jar -jnlpUrl https://test.myhost.com/computer/jenkinsminions-10f0b7d49054ac/slave-agent.jnlp -secret 62637e83008f50eb94483ad609e9a2719d313fa56e640e4beca9eebeaf0b1af2

容器通过JNLP2连接并运行作业。

我试图按照建议添加参数,但没有运气。容器仍然无法自动连接:enter image description here

1 个答案:

答案 0 :(得分:1)

容器日志中是否有Root目录不可写消息?

[...]
Exception in thread "main" java.lang.RuntimeException: Root directory not writable
    at hudson.remoting.FileSystemJarCache.<init>(FileSystemJarCache.java:44)
    at hudson.remoting.Engine.<init>(Engine.java:139)
    at hudson.remoting.jnlp.Main.createEngine(Main.java:164)
    at hudson.remoting.jnlp.Main.main(Main.java:148)
    at hudson.remoting.jnlp.Main._main(Main.java:144)
    at hudson.remoting.jnlp.Main.main(Main.java:110)

在这种情况下,您可能遇到与this类似的问题。

PS:如果您看不到日志,请尝试删除&#34;分配假设&#34;选项