jenkins - Kubernetes 上 Jenkins 从属设备的连接已断开

标签 jenkins kubernetes google-cloud-platform google-kubernetes-engine

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

Failed to count the # of live instances on Kubernetes

为了解决这个问题,我将 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)

最佳答案

通过将从属容器名称更改为 jnlp 而不是默认值(参见图片),解决了最后一个错误。谷歌文档显示该名称应该是默认名称,但似乎通过这些更新,这不是让该系统正常工作的正确方法。

看起来更新后的 kubernetes-plugin 创建了两个容器(一个包含您指定的镜像的容器,另一个包含默认的 jnlp 镜像)。如果您的图像名称不是 jnlp,那么该插件将在从属 Pod 中运行两个容器...这似乎导致了连接问题。

change kubernetes-plugin slave pod name to jnlp

关于jenkins - Kubernetes 上 Jenkins 从属设备的连接已断开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42124958/

相关文章:

mysql - 将实时数据库复制到开发服务器

docker - 如何在minikube中将数据库连接到后端?

kubernetes - 如何排查 GKE 上频繁重置 Kubernetes 节点的问题?

unit-testing - 如何使用 Ivy 构建和单元测试?

user-interface - Jenkins 升级 - 升级后缺少侧面板

kubernetes - kublet并非以云提供商 “openstack”开头

firebase - 在GCP组织下调用Firebase可调用HTTP函数时如何避免 "401 Unauthorized"?

google-cloud-platform - 为什么 Google Cloud Storage 总是回答 cors 错误 : No 'Access-Control-Allow-Origin' header is present on the requested resource

google-api - Google Developers Console API 页面未加载

git - Jenkins 在获取 git 存储库时产生致命的 EOF