How to Set Up Jenkins on the Kubernetes Cluster?

Photo of author

By admin

Jenkins is a consistent integration technique that will automate a portion of the software development procedure. There are various developing teams available who are working on different projects in different microservices environments. The environment is complicated and has limited resource availability. It will help you to deliver a flawless outcome on a specified schedule. You can know the benefit of installing Jenkins on the Kubernetes cluster to get the desired results.

A Kubernetes cluster will add the new automatic layer to Jenkins. There is a prerequisite requirement of a surface to a command or terminal to set up. Resources must be used effectively so that service did not get overused through it. The cluster can deploy the container if it has enough resources in Jenkins.

Here are some practical examples of how to set up Jenkins on a cluster;

Make a namespace for the Jenkins Installation

It is essential to make a specific namespace that will provide more control over the continuous integration environment. However, one can make the namespace for Jenkins by typing the following command in the terminal.

Initially, kubectl could be used to create a namespace in Jenkins;

$ kubectl create namespace Jenkins

There is a need to write the name of the namespace which is used as a DNS compatible label. The output will confirm the namespace’s successful creation. It is the first requirement for the installation of Jenkins on the cluster software. Use the command which is provided in the existing namespace to avoid any confusion in creating the name for the deployment of Jenkins. It will satisfy the requirements of the individuals for setting up the software.

Creating Jenkins Deployment File

Once you have designated a namespace, you need to use the preferred Linux text editor to create the deployment file. It is the second requirement for the setting of Jenkins on the cluster. The deployment file will be created according to requirements after utilizing the resources and examples. There is a volume mounts section of the file that will create consistent volume for installing the software. The role of the volume is to store the basic Jenkins data and take care of it for a long period. You can save the changes for once by adding the content and exiting the file. It is the next and essential step involved in the creation of the Jenkins deployment file.

Further, YAML needs to be created to deploy Jenkins;

Open the new file named jenkins.yaml with the help of nano editor or any preferred editor;

nano jenkins.yaml

Thereafter, you have to add the codes to specify Jenkins image;

Jenkins.yaml

apiVersion: apps/v1

kind: Deployment

metadata:

name: jenkins

spec:

replicas: 1

selector:

matchLabels:

app: jenkins

template:

metadata:

labels:

app: jenkins

spec:

containers:

– name: jenkins

image: jenkins/jenkins:lts

ports:

– name: http-port

containerPort: 8080

– name: jnlp-port

containerPort: 50000

volumeMounts:

– name: jenkins-vol

mountPath: /var/jenkins_vol

volumes:

– name: jenkins-vol

emptyDir: {}

In the production cluster, there is no need to use the host path. Instead, a clustered administrator will provide the provision of the network resources to change the volume. You must make sure about it while deploying Jenkins on a Kubernetes cluster.

Deployment of Jenkins

To deploy Jenkins on the cluster, use the freshly generated file. The system may be directed to install Jenkins data under the Jenkins namespace using a guide and command. It is an essential step that you need to follow for installing Jenkins on the Kubernetes cluster. The collection of information is possible by following the guide and command available at the cluster.

Create and Deploy Jenkins Service

Kubernetes cluster will manage the life cycle of a pod. It is managed within the cluster to avoid additional space. There is a need to regularly remove and deploy the pods to obtain the desired state and balance the workload available at the cluster. A service refers to an abstraction that will expose Jenkins to the wider network. It will allow you to maintain a persistent connection with the pods. There is no requirement for change to take place within the cluster. You should create a service with a Jenkins service file by using any text editor to add the content. The content can be taken from the example provided at the cluster. With the help of commands, you can make the service after tagging the Jenkins namespace. Now, you have the service available to the Jenkins dashboard installed at the Kubernetes cluster. Collection of the complete information about it is essential to install the data on the cluster correctly.

kubectl create -f jenkins.yaml –namespace jenkins

To verify the pod’s state, you need to use kubectl

kubectl get pods -n jenkins

You may find different names in your system. However, after the pod starts to run you have to find it with service.

Create a new file name as jenkins-service.yaml:

nano jenkins-service.yaml

Enter the code to specify Nodeport service;

apiVersion: v1

kind: Service

metadata:

name: jenkins

spec:

type: NodePort

ports:

– port: 8080

targetPort: 8080

nodePort: 30000

selector:

app: jenkins

apiVersion: v1

kind: Service

metadata:

name: jenkins-jnlp

spec:

type: ClusterIP

ports:

– port: 50000

targetPort: 50000

selector:

app: jenkins

Access to Jenkins Dashboard

You can go to your browser and have a session on a node by using the IP address which is defined in the service file. If you want to access Jenkins, you need to initially enter some credentials. The default username and some installations are an admin at the dashboard. There is the availability of a password in several ways. You can use examples related to Jenkins deployment and name to find the correct name of the port for entering the command. Once you have found a location and the name of the pod, it will provide you access to the pod logs. The password is useful at the end of the formatted string. By this, you can successfully install Jenkins on the Kubernetes cluster. That enables us to build the latest and accurate development pipelines. Understanding Jenkins working is also essential to get desired results with complete access over the dashboard.

Use kubectl to get the node IPs;

kubectl get nodes -o wide

It will produce output with the external IPs. Look for your IP and copy it.

Further, open the website with the address http://your_external_ip:30000.

It will redirect to the page that required the administration password for guidelines to get the password from Jenkins Pod logs.

You have to use kubectl to get the password.

Use the following command to get back your Pod name;

kubectl get pods -n jenkins

Look into Pod logs for the password, and change the highlighted section with Pod name;

kubectl logs jenkins-6fb994cfc5-twnvn -n jenkins

To find the password scroll up or down a bit;

Running from: /usr/share/jenkins/jenkins.war

webroot: EnvVars.masterEnvVars.get(“JENKINS_HOME”)

. . .

Jenkins initial setup is required. An admin user has been created and a password generated.

Please use the following password to proceed to installation:

your_jenkins_password

This may also be found at: /var/jenkins_home/secrets/initialAdminPassword

After getting your Password, copy and paste it into Jenkins UI.

How Jenkins Works

Jenkins has become a standard for software development pipelines industries. Before the notion of continuous integration, the development process was tempered by several integrations and long testing procedures. Jenkins refers to a self-contained solution that is compatible with different integration plugins to offer a comprehensive and easy-to-use environment. Developers also use to daily check the changes made to the source code. You can build the source codes and generate deployable files with quality assurance and security checks.

Jenkins uses plugins to produce Metric, which is the detailed and qualified information to build a continuous process. If the building fails, then the information and the testing can provide additional changes to the submitted code. It is an essential thing that developers should know while installing Jenkins on the Kubernetes cluster. Collection of information about it is essential for the people to install Jenkins on the cluster.

Conclusion

Now you know about the installation of Jenkins on a Kubernetes cluster, it will automate different tasks and assist the developers to submit the code effectively. It also increases productivity and reduces wastage of time. The following of each step in the setting up of Jenkins over the Kubernetes cluster will solve many complexities in the performance of the task for developers. The building of the local software and testing the data is possible without any additional requirement of skills and expertise.

It will also provide a service over the Jenkins dashboard. The meeting of the needs is possible for the individuals with installing Jenkins over the cluster. You need to follow each step to get the desired results without wasting time manually. The correct installation is possible for the submission of the code sufficiently. It will provide a continuous loop resulting in a well-polished product. Jenkins build creates a ready-to-deploy package that will lead to the next phase of development and production.

Leave a Comment