简体   繁体   中英

Jenkins not able to create kubernetes POD

I'm running jenkins jobs to build our maven application and deploy into kubernetes cluster. in-order do that i have created pod container template to deploy my modules.

When i am running to build my jenkins job, my build got failed with below error,

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

At the same time when i am checking kubernetes master, i can able to see pods is trying to schedule and its going back to terminating state after few seconds.

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

pipeline script

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'
                }
            }
        }
    }
  }

Please find the below master machine configuration

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 error log

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

can you please some one help me how to fix this issue, i am not sure where i am doing wrong here.

Because, kubectl -n jenkins-namespace get services shows :

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

You have to go to Jenkins > Manage Jenkins > Configure System ( http://jenkins:8080/configure ). Then, configure Jenkins URL and jenkins tunnel accordingly (see screenshot below )

CREDITS to https://youtu.be/MkzCVvlpiaM

在此处输入图片说明

If you'are using the Jenkins Configuration as Code (JCasC) plugin this is configured via jenkinsUrl and jenkinsTunnel keys :

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

Maybe you have some missing??

As below the containerTemplates are real pipeline tasks, where is your jenkins slave agent(JNLP) container?

...
    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')
...
``

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM