How to Use Kubernetes Pods As Jenkins Agents
HTML-код
- Опубликовано: 4 авг 2024
- Need help with your Jenkins questions?
Visit community.jenkins.io/c/using-...
Timecodes ⏱:
00:00 Introduction
00:10 Overview
01:00 Starting point
01:43 Creating a Kubernetes cluster using kind
04:28 Disable controller executors
05:14 Install Kubernetes plugin
06:04 Configure Kubernetes plugin
15:00 Create a test job
18:17 Add a second container
20:19 Sharing a workspace between containers
22:46 Why would you want to get rid of static agents?
#jenkinstutorial #jenkinspipeline #kubernetes
Information referenced in this video:
Gist with all the commands:
gist.github.com/darinpope/67c...
Jenkins LTS 2.289.1
www.jenkins.io/changelog-stab...
Kubernetes plugin:
plugins.jenkins.io/kubernetes/
Kind documentation:
kind.sigs.k8s.io/
CloudBees on Twitter:
/ cloudbees
Darin on Twitter:
/ darinpope - Наука
This video answered my one-month problem, This is gold. This person is extremely well experienced , I have to watch over 350 of his vids on Jenkins all short concise and perfect
Thanks for this Mr. Darin Pope. You are explaining things in a very simple way.
This video is amazing, clarified my many doubts in one place with clarity. Thanks
Awesome guide. very clear and concise crafted video. I followed your guide and managed to setup Jenkins agent on Kubernetes in no time!
Hi -- I was struggling to set up agents on EKS, the video really helped. Thanks for taking the time to make this.
Thank you so much DarinPope for this video, providing complete details of communication between Jenkins and Kubernetes Pods through the Kubernetes plugin.
This was unbelievably helpful. Walking through errors was very valuable. I came here to learn how to get my pods to spin up through the kubernetes plugin and ended up also learning that I can create any container within the same pod as the agent. This allows me to easily build an environment for my code to run. Thank you!
I really appreciate your videos. They helped so much. They are clear and concise and answer many possible questions. The presentation is nothing but professional.
You probably helped so many people
This is a wonderful walkthrough. I cannot stress enough how useful it is to walk through what is happening and deliberately running into the errors one would reasonably encounter and explaining why they happen.
Thanks for the video. I had to add one more command. ‘kubectl create token jenkins -namespace=jenkins’
thanks dude
Thank you very much for this wonderful video 🙏, it has helped me a lot to finally have CI in my K8s Cluster.
I use kubernetes for my Jenkins control plane and learning about jenkins nodes made me think about how I could use this to make nodes; great video!
Great way of explaining things. Thanks!
you are genius, explaining step by step great!
Wonderfully explained. Good job.
Thanks alot, It was very clear and to the point
Very informative, thanks!
Thank you so much. Respect from India.
That was very helpful, Thank you !
Excelente tutorial, cada passo detalhando e com um exemplo. Parabens Mestre e time CloudBeesTV
This is wonderful. Thanks so much
Thank you for you work, it is awesome!
superb explaination🎉
Very Informative 😍
Excellent Video!!!!
Thanks DPope!
Great video! Super informative... It would be nice to point out the importance of "tty: true" in the yaml. I missed that and took me forever to understand that Jenkins needs that to be true to allow commands to be sent to the container. Otherwise the job just loops trying to run without any error.
Good Job!
very nice and clear. and btw "Gave the thumbsup and subscribed" :)
Heads Up: In Kubernetes 1.24, the token will not be automatically created for the service user. The Docker changes kinda overshadowed that news for many.
Great👍
Muito obrigado!!!!
Muito bom!
Excellent!! This strategy is useful for many steps of my pipeline, but I'm not sure how to generate new images and save them in a registry using this way after build and stress tests.... do you have any recommendations?
thanks a lot for clear explanation. one thing i am wondering, is running docker commands supported within the container (assuming ubuntu) out of the box. or does it require any additional configuration
During kubernetes cloud config, if your websocket setting mentions "localhost", it is not routable. The jnlp won't be able to connect back to to jenkins controller (as Darin said). Just to give a detail about what that looks like: The error will occur just after the line "Started container jnlp" and the reason will be "SEVERE: Connection failed."
Hello Sir, Thanks for this. I am trying to set up a bitnami ovf vm as my jenkins server and trying to connect a kubernetes server, When I do this my pod creation always goes on loop? it tries to create and then goes offline . Please throw some light on the same.
Hi...I am trying to use bash container as a jenkins agent with the help of kubernetes but it is not able to find some commands for bash which is not helping me to run my scripts..
Any suggestions?
Is it possible to build the pod image from a Dockerfile in the pipeline? For example, the Docker plugin allows you to specify the Dockerfile to build the image. This would allow changes to build infrastructure to be tested as part of the pipeline and building the application.
Is it possible to launch Kubernetes pods using via Jenkins job with a Jenkins instance running locally and a Kubernetes cluster running remotely? I've tried but I could not make it work.
When i used linux image as container, installed helm and run sh 'helm list' command it giving me error like failed to list secret is forbidden : user "system:serviceaccount:helm:default" cannot list resources "secrets" in API group in thr namespace
if we upgrade jenkins to 2.361.1, can we use pods java8 container? I heard we need java11 for controller and slave
please helm me with that like if i have minikube so what ip should i put to add a node in jenkins
Is it possible to use both docker agent and kubernetes agent in same jenkinsfile?
I am using an very old version of jenkins 2.19 and planning to upgrade and when trying to install support core plugin it says this plugin works for 2.28 or newer.. Please suggest how to proceed
what about creating some file in Jenkins workspace from POd or conatainer agent ?
Help me, -Obi-Wan Kenobi- Darin Pope!
How do I share workspace with Master in such setup?
thanks ! but how to use k8s pod as static agent ?
I have followed steps.. however credential are not picked up in the error message.
can someone help
This video was very helpful and I now have it working in my home lab. I've been using Jenkins running on a Docker host (with DND configured) to create multi-arch container images with the docker pipeline Jenkins plugin. Would you consider doing a video on how to use Kubernetes Pods As Jenkins Agents to build and push a multi-arch container image? This is how I've been doing it on my Jenkins host on Docker:
pipeline {
agent any
stages {
stage('build') {
agent { docker {
image 'my_builder'
reuseNode true
}
}
steps {
sh 'mvn'
}
}
stage('Containerize') {
steps {
script {
sh 'docker buildx build --platform linux/amd64,linux/arm64 -t my_image_repo/imagename --pull --push .'
}
}
}
}
}
I have followed this tutorial and the plugin test connection worked for me, however when i am trying to run a pipeline the pod is getting created in my cluster and its in running state but i get the below error message in the logs
Waiting for agent to connect (30/1000): testpipeline--11-vz1v9-rvxsq-m4dgg
Waiting for agent to connect (60/1000): testpipeline--11-vz1v9-rvxsq-m4dgg
This happens right after jnlp image is pulled, container is created and started successfully. Anything you would suggest for this behavior?
Am also facing same issue, can you please guide me on this if you got any solution..
im using an agent with multiple containers, i set the retetntion to never in the kubernetes settings of jenkins. sadly, the agent pods are never deleted correctly.. the pod has my containers + a jnlp container.. this one gets stopped, but the ones i definded by my own are still running.. does someone know what to do? i just looked at my namespace and there are like 50+ pods still running
nevermind, delete wasn't included in the role for jenkins^^
facing websocket error when i run job
"we're fixin to have a kubernetes cluster"
Failed to start websocket connection: io.fabric8.kubernetes.client.KubernetesClientException: An error has occurred.
Any Ideas? Jenkins master running in k8s too