【问题标题】:Pods terminated immediately from Jenkins to Kubernetes clusterPod 立即从 Jenkins 终止到 Kubernetes 集群
【发布时间】:2020-11-15 18:02:51
【问题描述】:

我有 jenkins 在 Windows 上作为 127.0.0.1:8080 上的服务运行
和 minikube 在 192.168.99.101 上运行
下面是 Jenkins 工作的管道

podTemplate(
  activeDeadlineSeconds: 240,
  name: 'default',
  inheritFrom: 'default',
  nodeSelector: 'key1=value1,kubernetes.io/hostname=minikube',
  containers: [
  containerTemplate(name: 'maven', image: 'maven:3.3.9-jdk-8-alpine', ttyEnabled: true, command: 'cat' ),
  containerTemplate(name: 'jnlp', image: 'jenkins/jnlp-slave:3.35-2-alpine', args: '${computer.jnlpmac} ${computer.name}')
]) {

node(POD_LABEL) {
    stage('Get a Maven project') {
        git 'https://github.com/<project>.git/'
        container('maven') {
            stage('Build a Maven project') {
                sh 'mvn -B -gs ./settings.xml clean install'
            }
        }
    }
  }
}    

以下是来自 Kubernetes 的日志:

$ kubectl get -a pods --watch
Flag --show-all has been deprecated, will be removed in an upcoming release
NAME                  READY     STATUS    RESTARTS   AGE
default-7r0n8-b2sxx   0/2       Pending   0          0s
default-7r0n8-b2sxx   0/2       Pending   0         0s
default-7r0n8-b2sxx   0/2       ContainerCreating   0         0s
default-7r0n8-b2sxx   2/2       Running   0         0s
default-7r0n8-b2sxx   1/2       Error     0         1s
default-7r0n8-18cv6   0/2       Pending   0         0s
default-7r0n8-18cv6   0/2       Pending   0         0s
default-7r0n8-18cv6   0/2       ContainerCreating   0         0s
default-7r0n8-18cv6   2/2       Running   0         0s
default-7r0n8-18cv6   1/2       Error     0         2s
default-7r0n8-0kz80   0/2       Pending   0         0s
default-7r0n8-0kz80   0/2       Pending   0         0s
default-7r0n8-0kz80   0/2       ContainerCreating   0         0s
default-7r0n8-0kz80   2/2       Running   0         0s
default-7r0n8-0kz80   1/2       Error     0         1s  

以下是 jenkins 作业的控制台输出

Pod 每次都会被杀死并重新创建。

请问谁能帮忙解决这个问题?
任何帮助将不胜感激。

pod 日志

【问题讨论】:

  • Jenkins版本和k8s插件版本是什么?
  • jenkins = 2.235.2, k8s 插件 = 1.26.4
  • 什么 baout k8s 插件?
  • 也让我知道,如果管道中需要一些其他字段..
  • kubernetes-version = v1.10.0

标签: windows minikube kubernetes-jenkins-plugin


【解决方案1】:

从昨天开始我也遇到了同样的问题。导航到配置云 --> kubernetes --> Pod 模板。将 Pod 保留设置为“始终”。 Pod 将保持错误状态。您可以使用命令 kubectl logs --all-containers 获取 pod 日志并查看错误原因。就我而言,Jenkins URL 和 Jenkins Tunnel 设置不正确。

参考https://www.youtube.com/watch?v=DCkzdsffeh0

它提供了 jenkins 和 kubernetes 插件配置的详细信息

【讨论】:

  • 你设置的环境和我的一样吗?在 minikube 集群之外运行 Jenkins 作为 Windows 服务
  • 不,我在 GKE 中设置了 jenkins。代理 pod 中的 jnlp 容器无法连接到 Jenkis,因此正在创建新的代理 pod。我相信它与詹金斯网址有关。就我而言,在我提供了正确的 Jenkins URL 之后,它对我有用。对于 jenkins 作为窗口服务,检查将 Jenkins URL 设置为 http://:8080 是否有效。
  • 请尝试以下操作: 1. 对于从 jenkins 创建的代理 pod,键入 kubectl exec -it > -- bash。 2. 在 pod bash 中,curl http://>。 (例如 http://>)。有效的 curl 命令是正确的 Jenkins url。代理 pod 将能够连接回 jenkins。抱歉,我找不到时间来设置 minikube 并检查确切的 url。也可以尝试在 curl 命令中使用 http://:8080。如果你成功了,请告诉我
  • pod 被立即创建并杀死,同样的事情一次又一次地重复,如上所示。
  • 问题是入站 docker-agent 正在尝试 ping jenkins master 127.0.0.1:8080,但这是不可能的,因为容器与主机应用程序是隔离的。
猜你喜欢
  • 2020-11-17
  • 1970-01-01
  • 2020-06-16
  • 1970-01-01
  • 2020-06-10
  • 2017-07-09
  • 1970-01-01
  • 2019-02-24
  • 2023-04-03
相关资源
最近更新 更多