【问题标题】:Jenkins not able to create kubernetes PODJenkins 无法创建 kubernetes POD
【发布时间】:2019-12-12 17:01:52
【问题描述】:

我正在运行 jenkins 作业来构建我们的 maven 应用程序并部署到 kubernetes 集群中。为了做到这一点,我创建了 pod 容器模板来部署我的模块。

当我运行构建我的詹金斯工作时,我的构建失败并出现以下错误,

Still waiting to schedule task
‘Jenkins’ doesn’t have label ‘Angular_71-bt2f0’

在我检查 kubernetes master 的同时,我可以看到 pod 正在尝试调度,几秒钟后它又回到了终止状态。

root@poc:/var/run# kubectl get pods
NAME                           READY   STATUS              RESTARTS   AGE
angular-71-bt2f0-ns772-4rmrq   0/3     ContainerCreating   0          1s

root@poc:/var/run# kubectl get pods
NAME                           READY   STATUS        RESTARTS   AGE
angular-71-bt2f0-ns772-4rmrq   2/3     Terminating   0          28s
angular-71-bt2f0-ns772-mcv9z   2/3     Error         0          8s

管道脚本

def label = "worker-${UUID.randomUUID().toString()}"

podTemplate(containers: [
    containerTemplate(name: 'maven', image: 'maven:3.3.9-jdk-8-alpine', ttyEnabled: true, command: 'cat'),
    containerTemplate(name: 'golang', image: 'golang:1.8.0', ttyEnabled: true, command: 'cat')
  ]) {

    node(POD_LABEL) {
        stage('Get a Maven project') {
            git 'https://github.com/jenkinsci/kubernetes-plugin.git'
            container('maven') {
                stage('Build a Maven project') {
                    sh 'mvn -B clean install'
                }
            }
        }
    }
  }

请找到下面的主机配置

root@poc:~# kubectl get svc
NAME         TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)          AGE
kubernetes   ClusterIP   10.96.0.1     <none>        443/TCP          2d

root@poc:~# kubectl get nodes
NAME          STATUS    ROLES    AGE    VERSION
poc-worker2   Ready    worker   6m3s   v1.17.0
poc.com       Ready    master   2d     v1.17.0

root@poc:~# kubectl get svc
NAME         TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)          AGE
kubernetes   ClusterIP   10.96.0.1     <none>        443/TCP          2d

root@poc:~# kubectl cluster-info
Kubernetes master is running at https://10.0.0.4:6443
KubeDNS is running at https://10.0.0.4:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

kubectl 错误日志

kubectl logs angular-71-bt2f0-ns772-4rmrq 

error: a container name must be specified for pod angular-77-l32fr-sfxqk-qhdgf, choose one of: [maven golang jnlp]
Below is the kubectl logs while running jenkins job

root@poc:~# kubectl logs angular103f578nkcrnfx69fk c maven
Error from server (NotFound): pods "angular103f578nkcrnfx69fk" not found

root@poc:~# kubectl logs angular103f578nkcrnfx69fk c golang
Error from server (NotFound): pods "angular103f578nkcrnfx69fk" not found

root@poc:~# kubectl logs angular103f578nkcrnfx69fk c jnlp
Error from server (NotFound): pods "angular103f578nkcrnfx69fk" not found

请有人帮我解决这个问题,我不确定我在哪里做错了。

【问题讨论】:

  • 您好,您能分享其中一个故障 pod 的日志输出吗?你可以通过运行得到这个,例如,kubectl logs angular-71-bt2f0-ns772-4rmrq
  • 错误:必须为 pod angular-77-l32fr-sfxqk-qhdgf 指定容器名称,请选择以下之一:[maven golang jnlp]
  • 我不知道如何解决这个问题
  • 请使用以下命令的输出编辑您的问题:$ kubectl logs angular-77-l32fr-sfxqk-qhdgf -c maven$ kubectl logs angular-77-l32fr-sfxqk-qhdgf -c golang$ kubectl logs angular-77-l32fr-sfxqk-qhdgf -c jnlp
  • 嗨沃特尼,我有更新错误日志。

标签: jenkins kubernetes


【解决方案1】:

因为,kubectl -n jenkins-namespace get services 显示:

NAME                 TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)     AGE
cicd-jenkins         ClusterIP   172.20.120.227   <none>        8080/TCP    128d
cicd-jenkins-agent   ClusterIP   172.20.105.189   <none>        50000/TCP   128d

您必须转到 Jenkins > 管理 Jenkins > 配置系统 (http://jenkins:8080/configure)。 然后,相应地配置 Jenkins URLjenkins tunnel(见下面的截图)

学分https://youtu.be/MkzCVvlpiaM

如果您使用的是 Jenkins 配置即代码 (JCasC) 插件,则可以通过 jenkinsUrljenkinsTunnel 键配置:

jenkins:
  clouds:
  - kubernetes:
      name: cluster
      serverUrl: https://kubernetes.default
      # ....
      jenkinsUrl: http://cicd-jenkins:8080/
      jenkinsTunnel:  cicd-jenkins-agent:50000
      # ....

【讨论】:

    【解决方案2】:

    也许你有一些遗漏??

    因为下面的 containerTemplates 是真正的管道任务,你的 jenkins slave agent(JNLP) 容器在哪里?

    ...
        containerTemplate(name: 'maven', image: 'maven:3.3.9-jdk-8-alpine', ttyEnabled: true, command: 'cat'),
        containerTemplate(name: 'golang', image: 'golang:1.8.0', ttyEnabled: true, command: 'cat')
    ...
    ``
    

    【讨论】:

      猜你喜欢
      • 2019-10-19
      • 2015-10-31
      • 2018-03-13
      • 1970-01-01
      • 2018-07-04
      • 1970-01-01
      • 2019-08-27
      • 2021-02-16
      • 2016-02-04
      相关资源
      最近更新 更多