首页 文章

jenkins kubernetes插件 - 等待代理连接(1/100)

提问于
浏览
0

What the problem 基于以下配置,我做了2个测试用例:

  • 我使用我的指定图像,有2个容器将在同一个pod中创建,包含我的define容器,jenkins kubernetes插件会自动创建一个JNLP容器,但实际命令在JNLP容器中运行,而不是在我指定的容器中 .

  • 我尝试扩展jnlp-slave图像(从办公地点获取),容器名称是"jnlp"在kubenetes插件页面中(图像由office docker文件构建“https://hub.docker.com/r/jenkins/jnlp-slave/~/dockerfile/ "), I first let the base jenkins/slave images works well, then try to extend it as I need. but when I try use default one, it always prompted "等待代理连接(1/100)", it seems wait for JNLP client to connect, I enter the dynamic image which create by jenkins kubernetes plugin, I found there is not any process relation to " ENTRYPOINT ["jenkins-slave"]“,我检查了jenkins日志,它提示下面的信息 . 对于任何类型的提示都会很高兴 .


Created Pod: kube-com-mini-fqt9p in namespace kube-system
Waiting for Pod to be scheduled (0/100): kube-com-mini-fqt9p
Container is waiting kube-com-mini-fqt9p [jnlp]: ContainerStateWaiting(message=null, reason=ContainerCreating, additionalProperties={})
Waiting for Pod to be scheduled (1/100): kube-com-mini-fqt9p
Waiting for agent to connect (1/100): kube-com-mini-fqt9p
Waiting for agent to connect (2/100): kube-com-mini-fqt9p
Waiting for agent to connect (3/100): kube-com-mini-fqt9p
Waiting for agent to connect (4/100): kube-com-mini-fqt9p
Waiting for agent to connect (5/100): kube-com-mini-fqt9p
Waiting for agent to connect (6/100): kube-com-mini-fqt9p
Waiting for agent to connect (7/100): kube-com-mini-fqt9p
Waiting for agent to connect (8/100): kube-com-mini-fqt9p
Waiting for agent to connect (9/100): kube-com-mini-fqt9p
Waiting for agent to connect (10/100): kube-com-mini-fqt9p
Waiting for agent to connect (11/100): kube-com-mini-fqt9p
Waiting for agent to connect (12/100): kube-com-mini-fqt9p
Waiting for agent to connect (13/100): kube-com-mini-fqt9p
Waiting for agent to connect (14/100): kube-com-mini-fqt9p

================================================== ============ ENV:

$ kubectl version
Client Version: version.Info{Major:"1", Minor:"11", GitVersion:"v1.11.2", GitCommit:"bb9ffb1654d4a729bb4cec18ff088eacc153c239", GitTreeState:"clean", BuildDate:"2018-08-07T23:17:28Z", GoVersion:"go1.10.3", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"11", GitVersion:"v1.11.2", GitCommit:"bb9ffb1654d4a729bb4cec18ff088eacc153c239", GitTreeState:"clean", BuildDate:"2018-08-07T23:08:19Z", GoVersion:"go1.10.3", Compiler:"gc", Platform:"linux/amd64"}

Jenkins Version :Jenkins ver. 2.138

Jenkins kubernetes Plugin : 1.12.3

What I have done:

  • Kubernetes集群运行良好

  • Jenkins主服务器与Kubernetes集群独立 .

  • Jenkins kubernetes plugi成功获得kubernetes凭证和连接测试 .

  • 添加了标记为POD的kubernetes Cloud .

  • 通过"Restrict where this project can be run"将标签与Jenkins的任务相结合


FROM jenkins/slave:3.23-1-alpine
MAINTAINER Oleg Nenashev <o.v.nenashev@gmail.com>
LABEL Description="This is a base image, which allows connecting Jenkins agents via JNLP protocols" Vendor="Jenkins project" Version="3.23"

COPY jenkins-slave /usr/local/bin/jenkins-slave

ENTRYPOINT ["jenkins-slave"]

how to triger the job:

Jenkins通过curl命令触发作业(不在管道中),jenkins kubernetes插件可以使用我定义的图像触发作业 .

1 回答

  • 0

    通过以下操作解决了问题:

    • 在kubernetes插件中将容器名称重命名为jnlp .

    • 在图像中正确配置JNLP ENTRYPOINT来自特定图像
      (COPY jenkins-slave / usr / local / bin / jenkins-slave ENTRYPOINT ["jenkins-slave"])

    • 让“命令运行”和参数传递给命令为空 .

相关问题