Kubernetes上Jenkins奴隶的连接断开

Ale*_*ias 5 jenkins google-cloud-platform kubernetes google-kubernetes-engine

在Google Container Engine上对Kubernetes 1.5.2进行了更新。然后开始出现以下错误:

Failed to count the # of live instances on Kubernetes
Run Code Online (Sandbox Code Playgroud)

为了解决这个问题,我然后将Jenkins(升级到2.32.2)和Kubernetes插件(升级到0.10)到最新版本。

然后,我开始出现以下错误:

Feb 08, 2017 9:51:52 PM hudson.TcpSlaveAgentListener$ConnectionHandler run
WARNING: Connection #5 failed
java.io.EOFException
    at java.io.DataInputStream.readFully(DataInputStream.java:197)
    at java.io.DataInputStream.readFully(DataInputStream.java:169)
    at hudson.TcpSlaveAgentListener$ConnectionHandler.run(TcpSlaveAgentListener.java:213)

Feb 08, 2017 9:51:57 PM org.csanchez.jenkins.plugins.kubernetes.KubernetesCloud$ProvisioningCallback call
SEVERE: Error in provisioning; slave=KubernetesSlave name: default-6126d6e4fb5, template=org.csanchez.jenkins.plugins.kubernetes.PodTemplate@47404ab7
java.lang.IllegalStateException: Containers are terminated with exit codes: {jnlp=255}
    at org.csanchez.jenkins.plugins.kubernetes.KubernetesCloud$ProvisioningCallback.call(KubernetesCloud.java:600)
    at org.csanchez.jenkins.plugins.kubernetes.KubernetesCloud$ProvisioningCallback.call(KubernetesCloud.java:532)
    at jenkins.util.ContextResettingExecutorService$2.call(ContextResettingExecutorService.java:46)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Run Code Online (Sandbox Code Playgroud)

Ale*_*ias 5

通过将从属容器名称更改为jnlp而不是默认名称,可以解决最后一个错误(参见图像)。Google文档显示该名称应为默认名称,但似乎在进行这些更新后,这并不是使该系统正常工作的正确方法。

看起来更新后的kubernetes-plugin创建了两个容器(一个具有您指定映像的容器,另一个具有默认jnlp映像的容器)。如果您的图片名称不是jnlp,则该插件将在从属容器中运行两个容器……这似乎是造成连接问题的原因。

将kubernetes-plugin从站Pod名称更改为jnlp