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

问题描述 投票:0回答:2

有什么问题 基于以下配置,我做了2个测试用例:

  1. 我使用我指定的镜像,在同一个pod中将创建2个容器,包括我的定义容器,jenkins kubernetes插件将自动创建一个JNLP容器,但实际命令在JNLP容器中运行,而不是在我指定的容器中运行。
  2. 我尝试扩展 jnlp-slave 镜像(从办公站点获取),kubenetes 插件页面中的容器名称为“jnlp”(镜像是由 Office docker 文件“https://hub.docker.com/r”构建的) /jenkins/jnlp-slave/~/dockerfile/”),我首先让基本的 jenkins/slave 镜像运行良好,然后尝试根据需要扩展它。 但是当我尝试使用默认的时候,总是提示“等待代理连接(1/100)”,似乎是在等待JNLP客户端连接,我输入jenkins kubernetes插件创建的动态图像,我发现没有与“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

====================================================== ============= 环境:

$ 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

我做了什么:

  1. Kubernetes集群运行良好
  2. Jenkins 主服务器与 Kubernetes 集群独立。
  3. Jenkins kubernetes 插件成功获取 kubernetes 凭证并进行连接测试。
  4. 添加了带有标签 POD 的 Kubernetes 云。
  5. 通过“限制该项目可以运行的位置”将标签与 Jenkins 的任务结合起来

FROM jenkins/slave:3.23-1-alpine
MAINTAINER Oleg Nenashev <[email protected]>
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"]

如何触发作业:

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

jenkins kubernetes jenkins-plugins
2个回答
3
投票

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

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

    jnlp

  2. 在图像中保持 JNLP 正确配置

    ENTRYPOINT

From specific-images
COPY jenkins-slave /usr/local/bin/jenkins-slave
ENTRYPOINT ["jenkins-slave"]
  1. 在 pod 详细信息部分将 要运行的命令和要传递给命令的参数留空。

0
投票
  1. 选中特权模式的复选标记。

  2. 将容器模板中的“要运行的命令”和“要传递给命令的参数”留空。

  3. 容器名称必须是“jnlp”。

© www.soinside.com 2019 - 2024. All rights reserved.