【问题标题】:jenkins kubernetes plugin - Waiting for agent to connect (1/100)jenkins kubernetes 插件 - 等待代理连接 (1/100)
【发布时间】:2019-02-08 18:08:08
【问题描述】:

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

  1. 我使用我指定的图像,将在同一个 pod 中创建 2 个容器,包括我的定义容器,jenkins kubernetes 插件将自动创建一个 JNLP 容器,但实际命令在 JNLP 容器中运行,而不是在我指定的容器中。
  2. 我尝试扩展 jnlp-slave 镜像(从 office 站点获取),容器名称为 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 <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"]

如何触发工作:

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

【问题讨论】:

  • 您好,您是否为 pod 内的 jnlp 和其他容器提供了足够的资源(CPU 和内存)?
  • 您能分享 Pod kube-com-mini-fqt9p 或在此过程中创建的任何新日志吗? kubectl logs kube-com-mini-&lt;new-symbols&gt; -n kube-system
  • 执行“kubectl logs kube-com-mini-bg5p4 -n kube-system”后没有任何输出,jenkins master会尝试执行100次,然后创建一个新的pod kube -com-mini-,一次又一次。例如运行此命令“kubectl get po --all-namespaces|grep kube-com-mini”并获取“kube-system kube-com-mini-ccxcm 1/1 Running 0 1m”

标签: jenkins kubernetes jenkins-plugins


【解决方案1】:

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

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

  2. 在您的图像中正确配置 JNLP ENTRYPOINT 来自特定图像
    (复制詹金斯奴隶/usr/local/bin/詹金斯奴隶 入口点 ["jenkins-slave"])

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

【讨论】:

    猜你喜欢
    • 2020-02-27
    • 1970-01-01
    • 1970-01-01
    • 2018-12-06
    • 1970-01-01
    • 1970-01-01
    • 2019-08-05
    • 2019-05-21
    • 1970-01-01
    相关资源
    最近更新 更多