instruction: How do you configure Jenkins with Kubernetes build agents?
output: Managing Nodes > User Documentation Home User Handbook User Handbook Overview Installing Jenkins Platform Information Using Jenkins Pipeline Blue Ocean Managing Jenkins Configuring the System Configuration as Code Managing Tools Managing Plugins About Jenkins System Information Jenkins Features Controlled with System Properties Change System Time Zone Jenkins CLI Script Console Groovy Hook Scripts Managing Nodes In-process Script Approval Users Themes for user interface User Content Spawning Processes From Build Securing Jenkins System Administration Scaling Jenkins Troubleshooting Jenkins Glossary Tutorials Guided Tour Jenkins Pipeline Using Build Tools Resources Pipeline Syntax reference Pipeline Steps reference LTS Upgrade guides ⇐ Groovy Hook Scripts ⇑ Managing Jenkins Index In-process Script Approval ⇒ Managing Nodes Table of Contents Components of Distributed Builds Creating Agents Launch inbound agent via Windows Scheduler Installing a Jenkins agent on Windows Creating a macOS agent for Jenkins Components of Distributed Builds Builds in a distributed builds architecture use nodes, agents, and executors, which are distinct from the Jenkins controller itself. Understanding what each of these components are is useful when managing nodes: Jenkins controller The Jenkins controller is the Jenkins service itself and where Jenkins is installed. It is also a web server that also acts as a "brain" for deciding how, when, and where to run tasks. Management tasks such as configuration, authorization, and authentication are executed on the controller, which serves HTTP requests. Files written when a Pipeline executes are written to the filesystem on the controller, unless they are off-loaded to an artifact repository such as Nexus or Artifactory. Nodes Nodes are the "machines" on which build agents run. Jenkins monitors each attached node for disk space, free temp space, free swap, clock time/sync, and response time. A node is taken offline if any of these values go outside the configured threshold. Jenkins supports two types of nodes: agents (described below) built-in node The built-in node is a node that exists within the controller process. It is possible to use agents and the build-in node to run tasks. However, running tasks on the built-in node is discouraged for security, performance, and scalability reasons. The number of executors configured for the node determines the node&#8217;s ability to run tasks. Set the number of executors to 0 to disable running tasks on the built-in node. Agents Agents manage the task execution on behalf of the Jenkins controller by using executors. An agent is a small (170KB single jar) Java client process that connects to a Jenkins controller and is assumed to be unreliable. An agent can use any operating system that supports Java. Any tools required for building and testing get installed on the node where the agent runs. Because these tools are a part of the node, they can be installed directly or in a container, such as Docker or Kubernetes. Each agent is effectively a process with its own Process Identifier (PID) on the host machine. In practice, nodes and agents are essentially the same but it is good to remember that they are conceptually distinct. Executors An executor is a slot for the execution of tasks. Effectively, it is a thread in the agent. The number of executors on a node defines the number of concurrent tasks that can run. In other words, this determines the number of concurrent Pipeline stages that can execute at the same time. Determine the correct number of executors per build node must be determined based on the resources available on the node and the resources required for the workload. When determining how many executors to run on a node, consider CPU and memory requirements, as well as the amount of I/O and network activity: One executor per node is the safest configuration. One executor per CPU core can work well, if the tasks running are small. Monitor I/O performance, CPU load, memory usage, and I/O throughput carefully when running multiple executors on a node. Creating Agents Jenkins agents are the "workers" that perform operations requested by the Jenkins controller. The Jenkins controller administers the agents and can manage the tooling on the agents. Jenkins agents may be statically allocated or they can be dynamically allocated through systems like Kubernetes, OpenShift, Amazon EC2, Azure, Google Cloud, IBM Cloud, Oracle Cloud, and other cloud providers. This 30 minute tutorial from Darin Pope creates a Jenkins agent and connects it to a controller. How to create an agent node in Jenkins Launch inbound agent via Windows Scheduler If you are having trouble getting the inbound agent installed as a Windows service (i.e., you followed the instructions on installing the agent as a service here but it didn&#8217;t work), an alternative method of starting the service automatically when Windows starts is to use the Windows Scheduler. We take advantage of the Windows Scheduler&#8217;s ability to run command at system startup Configure your node to use the "Launch agents by connecting it to the master" launch method Click Save Note the command required to launch the agent On the new agent node&#8217;s Jenkins page, note the agent command line shown. It will be like: java \ - jar agent . jar \ - url &lt; Jenkins URL &gt; \ - secret &lt; secret key &gt; \ - name &lt; agent name &gt; Obtain the agent.jar file and copy it to your new Windows agent node In the command line noted in the last step, the "agent.jar" is a hyperlink. Click it to download the agent.jar file. Copy the agent.jar file to a permanent location on your agent machine Ensure that you have a java version available on your agent machine If not, obtain and install a supported version of Java Run the command manually from a CMD window on your agent to confirm that it works Open the CMD window Run the command the one like java \ - jar agent . jar \ - url &lt; Jenkins URL &gt; \ - secret &lt; secret key &gt; \ - name &lt; agent name &gt; Go back to the node&#8217;s web page in Jenkins. If everything works then page should say "Agent is connected" Stop the command (control-c) Register a new scheduled job to run the same command Open "Task Scheduler" on your windows machine Start &#8594; Run: task Scheduler Create a basic task (Menu: Action &#8594; Create Basic Task) First page of the wizard: Name: Jenkins Agent Description (optional) Click Next Next page of the wizard When do you want the task to start: select "When the computer starts" Click Next Next page of the wizard What action do you want the task to perform: select "Start a program" Click Next Next page of the wizard Program/Script: enter "java.exe" (or the full path to your java.exe) Add arguments: enter the rest of the command, like java - jar agent . jar \ - url &lt; Jenkins URL &gt; \ - secret &lt; secret key &gt; \ - name &lt; agent name &gt; eg: java \ - jar D: \ Scripts \ jenkins \ agent . jar \ - url http: //jenkinshost.example.com \ - secret d6a84df1fc4f45ddc9c6ab34b08f13391983ffffffffffb3488b7d5ac77fbc7 \ - name buildNode1 Click Next Next page of the wizard Click the check box "Open the Properties dialog for this task when I click Finish Click Finish Update the task&#8217;s properties On the General tab Select the user to run the task as Select "Run whether user is logged on or not" On the settings tab Uncheck "Stop the task if it runs longer than" Check "Run the task as soon as possible after a scheduled start is missed" Check "If the task failed, restart every: 10 minutes", and "Attempt to restart up to: 3 times" Click OK Start the scheduled task and again check that the agent is connected Go back to the node&#8217;s web page in Jenkins. If everything works then page should say "Agent is connected" Installing a Jenkins agent on Windows You can install a Jenkins agent on Windows using the command line. In this video, Darin reviews setting up and installing the Jenkins agent, including how to create any necessary files. How to install a Jenkins agent on Windows Creating a macOS agent for Jenkins This video reviews the process of creating a macOS agent for Jenkins using Java 11. ⇐ Groovy Hook Scripts ⇑ Managing Jenkins Index In-process Script Approval ⇒ Was this page helpful? Please submit your feedback about this page through this quick form . Alternatively, if you don't wish to complete the quick form, you can simply indicate if you found this page helpful? Yes &nbsp;&nbsp;&nbsp;&nbsp; No Submit See existing feedback here .