我正在尝试使用动态奴隶在Kubernetes上执行jenkins CI / CD,我的jenkins版本是官方图像2.60.2,而kubernetes-plugin是1.0。使用kubernetes添加云后,奴隶无法启动。它显示:
待定 - 詹金斯没有标签mypod
我指的是 Kubernetes Jenkins plugin - slaves always offline 配置jenkins系统。我发现这个问题被描述为一个缺陷,我不知道这是否更新到最新的jenkins图像。这是链接:https://github.com/jenkinsci/kubernetes-plugin/pull/127
下一个错误:
詹金斯没有标签mypod
这可能是因为400d1ed? KubernetesDeclarativeAgentScript.groovy可能需要获得更新。
有谁知道如何解决这个问题?
答案 0 :(得分:1)
关键字是(一如既往):查看日志!您应该在发出
时看到错误kubectl logs $JENKINS_POD_NAME
此外,您可以尝试以下命令。在这里,您的故障奴隶将被列出。查看这些日志:
kubectl get pods -a
您的问题与JNLP通信,slave-> master
有关我的jenkins在容器中运行,我不得不将JNLP端口暴露给集群节点(nodePort)。
apiVersion: v1
kind: Service
metadata:
name: jenkins
labels:
app: jenkins
spec:
ports:
- name: jnlp
port: 40294
targetPort: 40294
- name: http
port: 80
targetPort: 8080
selector:
app: jenkins
tier: jenkins
type: NodePort
同样在jenkins安全性中,查找JNLP并启用所有协议。 我还在玩固定或随机端口。不知道如何从k8s服务中公开随机端口。 k8s不支持端口范围。
但是我能够解雇奴隶并做一些工作!