当前位置: 首页 > 知识库问答 >
问题:

Kubernetes Jenkins插件-奴隶总是离线

陆光济
2023-03-14

我试图使用Jenkins/Kubernetes插件来协调docker奴隶与Jenkins。

我正在使用这个插件:https://github.com/jenkinsci/kubernetes-plugin

我的问题是所有的从机都离线了,所以作业无法执行:

我已经用minikube在我的本地盒子上和我们的ops组托管的K8集群上尝试了这一点。我试过Jenkins1.9和Jenkins2。我总是得到同样的结果。截图来自Jenkins1.642.4,K8 v1.2.0

这是我的配置...请注意,当我单击“测试连接”时,我获得了成功。还要注意,我不需要任何凭据(这是我看到的与文档示例的唯一区别)。

Jenkins日志一遍又一遍地显示了以下内容:

    Waiting for slave to connect (11/100): docker-6b55f1b7fafce
Jul 20, 2016 5:01:06 PM INFO org.csanchez.jenkins.plugins.kubernetes.KubernetesCloud$ProvisioningCallback call
Waiting for slave to connect (12/100): docker-6b55f1b7fafce
Jul 20, 2016 5:01:07 PM INFO org.csanchez.jenkins.plugins.kubernetes.KubernetesCloud$ProvisioningCallback call
Waiting for slave to connect (13/100): docker-6b55f1b7fafce
Jul 20, 2016 5:01:08 PM INFO org.csanchez.jenkins.plugins.kubernetes.KubernetesCloud$ProvisioningCallback call

当我运行Kubectl get events时,我会看到以下内容:

24s         24s        1         docker-6b3c2ff27dad3   Pod                                Normal    Scheduled           {default-scheduler }      Successfully assigned docker-6b3c2ff27dad3 to 96.xxx.xx.159
24s         23s        2         docker-6b3c2ff27dad3   Pod                                Warning   MissingClusterDNS   {kubelet 96.xxx.xx.159}   kubelet does not have ClusterDNS IP configured and cannot create Pod using "ClusterFirst" policy. Falling back to DNSDefault policy.
23s         23s        1         docker-6b3c2ff27dad3   Pod       spec.containers{slave}   Normal    Pulled              {kubelet 96.xxx.xx.159}   Container image "jenkinsci/jnlp-slave" already present on machine
23s         23s        1         docker-6b3c2ff27dad3   Pod       spec.containers{slave}   Normal    Created             {kubelet 96.xxx.xx.159}   Created container with docker id 82fcf1bd0328
23s         23s        1         docker-6b3c2ff27dad3   Pod       spec.containers{slave}   Normal    Started             {kubelet 96.xxx.xx.159}   Started container with docker id 82fcf1bd0328
 ➜  docker git:(master) ✗ kubectl get pods --namespace default -o wide
NAME                   READY     STATUS    RESTARTS   AGE       NODE
docker-6bb647254a2a4   1/1       Running   0          1m        96.x.x.159

➜  docker git:(master) ✗ kubectl log docker-6bafbac10b392

    Jul 20, 2016 6:45:10 PM hudson.remoting.jnlp.Main$CuiListener status
INFO: Connecting to 96.x.x.159:50000 (retrying:10)
java.net.ConnectException: Connection refused
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)

共有1个答案

丁星火
2023-03-14

在Kubernetes中运行jenkins时,服务名称可以由jenkins主服务器和从服务器解析。

最好的配置方法是使用内部DNS并将jenkins url设置为:

http://jenkins:8080

(假设您调用了服务jenkins,并且服务上的端口是8080)

不需要隧道。

这种方法的好处是,无需重新配置,它将在jenkins的重新启动中幸存下来。

第二个好处是您不必将Jenkins暴露给外部世界,从而限制了安全风险。

 类似资料:
  • 我想和Kubernetes一起经营jenkins。我能够成功地使用jenkins kubernetes插件连接到kubernetes。现在,我正在运行一个管道示例,但是在运行过程中,我总是得到一个错误,上面写着: 它就挂在那里。如果我使用检查pods,我会看到pod正在运行,然后状态更改为completed,然后它就消失了。然后另一个名字相似的豆荚,开始和结束,循环继续。这些豆荚的最后一种状态如下

  • 编辑 当队列中有多个作业时,有时会有多个执行器变为live。在读取死亡容器的日志后,所有容器都死亡,因为它们无法连接到containerIP:8080/tcpslaveAgentListener/。

  • 问题 我已经将Csanchez的jenkins-kubernetes插件(版本0.12)部署到本地的Minikube/Kubernetes环境中。在Jenkins UI中配置pod模板和容器模板时,pod会自动生成并处理简单的作业。然而,当POD模板和容器模板在管道脚本中定义时,Jenkins Master拒绝连接,称POD已经连接到Master。 环境 minikube版本:V0.20.0 Ku

  • 我想知道以下情况是否可能,请帮助我:- 情景1:- 我把我的本地系统作为Jenkins主系统,每次我需要一个从系统来运行自动化测试脚本时,docker容器就会作为Jenkins从系统旋转起来,我的脚本就会在从系统上执行,执行完成后容器就会被销毁。 我可以旋转多个容器作为Jenkins从本地系统作为Jenkins主。 谢谢

  • 我们的模板配置可以在这里看到 Kubernetes吊舱Termplate配置 然后我们创建一个简单的任务来测试插件,看看是否会创建从程序,然后运行几个简单的bash命令。 然后我们在Jenkins“Build Now”中开始工作,然后看到在我们的K8s集群中创建的豆荚 但是请注意,在构建历史记录下,我们可以看到以下消息 (挂起-标签“自动缩放”的所有节点脱机) null

  • 背景信息:我有一个Kubernetes集群,有3个linux节点和1个windows节点。从詹金斯大师到特工的一切都在一个由库伯奈斯控制的容器或吊舱里。 我试图将Windows代理(在容器中)连接到Linux主服务器(也在容器中),但在使用hudson.remoting.jnlp将从服务器连接到主服务器时遇到了问题。 以下是该命令的错误: 我尝试匹配master和slave的Java版本,使用最新