【发布时间】:2019-02-08 18:08:08
【问题描述】:
什么问题 基于以下配置,我做了2个测试用例:
- 我使用我指定的图像,将在同一个 pod 中创建 2 个容器,包括我的定义容器,jenkins kubernetes 插件将自动创建一个 JNLP 容器,但实际命令在 JNLP 容器中运行,而不是在我指定的容器中。
- 我尝试扩展 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
我做了什么:
- Kubernetes 集群运行良好
- Jenkins 主服务器独立于 Kubernetes 集群。
- Jenkins kubernetes 插件成功获取 kubernetes 凭证和连接测试。
- 添加了带有标记 POD 的 Kubernetes 云。
- 通过“限制此项目可以运行的位置”将标签与 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-<new-symbols> -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