0% found this document useful (0 votes)
37 views126 pages

Docker & Kubernetes Load Balancer

This is a practical approach to using Kubernetes for load balancing of servers.

Uploaded by

mijashr11
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
0% found this document useful (0 votes)
37 views126 pages

Docker & Kubernetes Load Balancer

This is a practical approach to using Kubernetes for load balancing of servers.

Uploaded by

mijashr11
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
You are on page 1/ 126

Module Code & Module Title

CS6P05NI - Final Year Project


Load balancer using docker and kubernetes
Assessment Weightage & Type
40% Final Year Report
Semester
2022/23 Autumn

Student Name: Mijash Rajthala


London Met ID: 20049175
College ID: NP01NT4S210143
Internal Supervisor: Mr Shishir Subedi
External Supervisor: Mr Suraj Neupane
Assignment Due Date: Wednesday, April 19, 2023
Assignment Submission Date: Wednesday, April 19, 2023
Word Count (Where Required): 8650
I confirm that I understand my coursework needs to be submitted online via Google Classroom under the
relevant module page before the deadline in order for my assignment to be accepted and marked. I am
fully aware that late submissions will be treated as non-submission and a mark of zero will be awarded.
CS6PO5 Final Year Project

Acknowledgement
I am genuinely moved, and I would want to offer my heartfelt gratitude to the individuals
and institutions that have contributed significantly to the success of my initiative. First and
foremost, I want to thank Suraj Neupane, who has been more than simply an external
supervisor to me; he is like a brother to me. His unwavering support, guidance, and
mentorship have been immeasurable. He has gone above and beyond in providing
feedback, reviewing my work, and encouraging me to do my best. His commitment,
patience, and support have been vital in the success of my project, and I am very grateful
to have him on my side. I am also grateful to my parents for their constant support and
providing of essential resources. Their faith in my ability, consistent support, and
readiness to supply me with the resources I needed to complete my project have all
served as sources of inspiration for me. Their sacrifices, encouragement, and steadfast
love have served as a beacon of light throughout my project's journey, and I will be
eternally grateful for their presence in my life.I would want to thank Stuti Bhatta, my
closest female friend, for her unselfish kindness in lending Raspberry Pis for my initiative.
Her encouragement and support have been vital, and her conviction in my ability has
been a driving force in my determination to perform at work. Her steadfast encouragement
and friendship have meant everything to me, and I am grateful for her participation to my
endeavor. My brother, Prabesh Shankhadev, deserves mention for becoming my client
and approving my project with his organization. His faith in my ability and constant support
have been critical to the success of my enterprise. His words of encouragement, critique,
and belief in my abilities have inspired me to put out my best effort in my work, and I am
appreciative for his presence on my project path.I would also want to thank Manish
Shrestha for his support in locating appropriate materials for my project. His advice,
encouragement, and readiness to share his knowledge and skills were helpful in
developing and improving the quality of my project. His persistent support and
commitment to my success have been invaluable, and I am appreciative for his
contributions to my project. Finally, I'd want to thank Network Chuck for consistently
offering useful expertise and thoughts in the realm of technology. His enthusiasm for
study and commitment to spreading information have served as sources of inspiration for
me over the course of my endeavor. His contributions to my study and advancement in

Mijash Rajthala 2| Page


CS6PO5 Final Year Project

the realm of technology have been enormous, and I am grateful for his ongoing
assistance. Furthermore, I would want to convey my gratitude to Islington College for
giving me the opportunity to work on this project. The curriculum, guidance, and resources
of the institution have all played an important role in molding my abilities and knowledge,
as well as providing me with a platform to pursue my passion for technology. Islington
College's faculty and staff have been crucial in my academic and personal development,
and I am grateful for the education and experiences I have obtained here.

Finally, I would want to express my heartfelt gratitude to Suraj Neupane, my parents, Stuti
Bhatta, Prabesh Shankhadev, Manish Shrestha, Network Chuck, and Islington College
for their constant support, mentorship, and contributions to my project path. Their faith in
my ability, encouragement, and generosity have all contributed to my success, and I will
be eternally grateful for their presence in my life. Their help has gone beyond anything I
could have hoped for, and I consider myself genuinely privileged to have them by my side
throughout this project's journey.

Mijash Rajthala 3| Page


CS6PO5 Final Year Project

Table of Contents
Acknowledgement ....................................................................................................2
Table of figures.........................................................................................................8
Table of tables ........................................................................................................ 11
Abstract ................................................................................................................. 12
1 Introduction ......................................................................................................... 14
1.1 Project description ......................................................................................... 14
1.2 Current Scenario............................................................................................ 16
1.3 Problem Domain and Project as a Solution ...................................................... 17
1.3.1 Problem Statement .................................................................................. 17
1.3.2 The Project as a solution .......................................................................... 18
1.4 Aims and Objectives ...................................................................................... 20
1.4.1 Aim ......................................................................................................... 20
1.4.2 Objectives ............................................................................................... 20
1.6 Structure of The Report .................................................................................. 20
1.6.1 Background ............................................................................................. 20
1.6.2 Development ........................................................................................... 21
1.6.3 Testing and Analysis ................................................................................ 21
1.6.4 Conclusion .............................................................................................. 21
2 Background ......................................................................................................... 22
2.1 About end users ............................................................................................ 23
2.1.1 Client’s name .......................................................................................... 23
2.1.2 Client’s description................................................................................... 23
2.2 Understanding the solution ............................................................................. 26
2.2.1 Containerization with Docker: ................................................................... 26
2.2.2 Orchestration with k3s: ............................................................................. 26
2.2.3 Load balancing with high-availability: ........................................................ 27
2.2.4 Resource efficient deployment: ................................................................. 28
2.2.5 Resilience with poor infrastructures: .......................................................... 28
2.3 Similar projects .............................................................................................. 29
2.3.1 Similar project 1....................................................................................... 29
Load Balancing using Docker and Kubernetes: A Comparative Study (Prajval
Mohan, 2020) .................................................................................................. 29

Mijash Rajthala 4| Page


CS6PO5 Final Year Project

2.3.2 Similar project 2....................................................................................... 30


Three-Phase Loading Balancing (rs. S.S. Kumbar, 2017) ................................... 30
2.3.3 Similar project 3....................................................................................... 31
Load-Balancing of Kubernetes-Based Edge Computing Infrastructure Using
Resource Adaptive Proxy (Quang-Minh Nguyen, 2022) ...................................... 31
2.4 Comparison ................................................................................................... 31
2.4.1 Comparison table .................................................................................... 31
2.4.2 Analysis and Conclusion of comparison .................................................... 32
3. Design and Development .................................................................................... 35
3.1 Considered methodology. ............................................................................... 35
3.2 Selected methodology .................................................................................... 35
3.2.1 Evolutionary Prototyping .......................................................................... 35
3.2.2 Justification for using Evolutionary Prototyping .......................................... 36
3.3 Phases.......................................................................................................... 37
3.3.1 Initial Concept ......................................................................................... 37
3.3.2 Create a Prototype................................................................................... 37
3.3.3 Refine Prototype...................................................................................... 38
3.3.4 Validation and deployment ....................................................................... 39
3.4 Survey result ................................................................................................. 39
3.4.1 Pre-survey form ....................................................................................... 39
3.4.2 Post-Survey ............................................................................................ 40
3.5 Requirement analysis..................................................................................... 43
3.5.1 Manageable: ........................................................................................... 43
3.5.2 Compatibility:........................................................................................... 43
3.5.3 Scalability:............................................................................................... 44
3.5.4 Reliability: ............................................................................................... 44
3.5.5 Cost-effective: ......................................................................................... 44
3.5.6 Traffic monitoring: .................................................................................... 45
3.6 Resource Requirements: ............................................................................... 45
3.6 Design and analysis ....................................................................................... 46
3.6.1 Use case diagram .................................................................................... 46
3.6.2 Flowchart ................................................................................................ 49
3.6.3 Gantt chart .............................................................................................. 54

Mijash Rajthala 5| Page


CS6PO5 Final Year Project

3.7 Implementation .............................................................................................. 55


4: Testing and analysis............................................................................................ 66
4.1 Test plan ....................................................................................................... 66
4.1.1 Unit testing .............................................................................................. 66
4.1.2 System testing ......................................................................................... 66
4. 2 Unit testing ................................................................................................... 67
4.3 System testing ............................................................................................... 75
4.4 Critical analysis.............................................................................................. 81
4.4.1 Strengths ................................................................................................ 81
4.4.2 Weaknesses............................................................................................ 82
5. Conclusion ......................................................................................................... 84
5.1 Social legal and ethical issues ........................................................................ 85
5.1.1 Social issues ........................................................................................... 85
5.1.2 Legal issues ............................................................................................ 85
5.1.3 Ethical issues .......................................................................................... 86
5.2 Advantages ................................................................................................... 86
5.3 Limitations ..................................................................................................... 87
5.4 Future works ................................................................................................. 87
6. Bibliography and references ................................................................................ 90
References............................................................................................................ 92
7. Appendix ............................................................................................................ 95
7.1 Appendix I ..................................................................................................... 95
3.1.1. Waterfall methodology............................................................................. 95
3.1.3 Prototyping Methodology .......................................................................... 97
7.2 Appendix II .................................................................................................... 97
Pre-Survey responses ...................................................................................... 98
7.3 Appendix III ................................................................................................. 105
7.3.1 Post survey questions ............................................................................ 105
7.3.2 Post survey responses ........................................................................... 108
7.4 Appendix IV ................................................................................................. 110
7.4.1 How I clustered...................................................................................... 110
7.4.2 Appendix IV B ....................................................................................... 114
3.6 Resource Requirements: ................................................................................ 114

Mijash Rajthala 6| Page


CS6PO5 Final Year Project

3.7.1 Hardware Requirement .......................................................................... 117


3.7.2 Software requirement ............................................................................. 118
7.5 Appendix V.................................................................................................. 120
7.5.1 Gantt chart ............................................................................................ 120
7.5.2 Work breakdown structure...................................................................... 123
7.5.3 Milestones............................................................................................. 124
7.5.4 Use case diagrams ................................................................................ 125
7.6 Appendix VII ................................................................................................ 126

Mijash Rajthala 7| Page


CS6PO5 Final Year Project

Table of figures
Figure 1: Server down when there is excessive traffic ............................................... 14
Figure 2: Load balancer use .................................................................................... 15
Figure 3: Docker users skyrocketing ........................................................................ 16
Figure 4: Nepal GDP according to growth in technology ............................................ 17
Figure 5: Client company logo ................................................................................. 24
Figure 6: Client approval letter ................................................................................. 25
Figure 7: Docker container ...................................................................................... 26
Figure 8: K3s architecture ....................................................................................... 27
Figure 9: Load balancer position .............................................................................. 28
Figure 10: Evolutionary prototyping model steps ....................................................... 35
Figure 11: Raspberry pi ......................................................................................... 115
Figure 12: SD card................................................................................................ 115
Figure 13: SD card reader ..................................................................................... 116
Figure 14: USB cable ............................................................................................ 116
Figure 15: Rj45 cable ............................................................................................ 116
Figure 16: Router.................................................................................................. 117
Figure 17: Use case diagram ................................................................................... 47
Figure 18: Use case diagram for kubernetes cluster only ........................................... 48
Figure 19: Installation procedure .............................................................................. 49
Figure 20: Installation procedure 2 ........................................................................... 50
Figure 21: User side flowchart ................................................................................. 51
Figure 22: load balancing ........................................................................................ 52
Figure 23: Cluster flowchart ..................................................................................... 53
Figure 24: Pulling Nginx image ................................................................................ 55
Figure 25: Image pulled........................................................................................... 56
Figure 26: Seeing logs of my image ......................................................................... 56
Figure 27: Inspecting the image ............................................................................... 57
Figure 28: Inspecting part 2 ..................................................................................... 58
Figure 29: Restarting docker.................................................................................... 58
Figure 30: new port and new image ......................................................................... 59
Figure 31: running pods .......................................................................................... 59
Figure 32: The website is working ............................................................................ 59
Figure 33: K3s installation ....................................................................................... 60
Figure 34: Cluster status ......................................................................................... 60
Figure 35: Server overview ...................................................................................... 60
Figure 36: Installation failure .................................................................................... 61
Figure 37: Trying to access ..................................................................................... 61
Figure 38: Port error................................................................................................ 62
Figure 39: Port already in use .................................................................................. 63
Figure 40: Image name already in use ..................................................................... 63
Figure 41 : Curl command to call API: ...................................................................... 67
Figure 42: Pt 2........................................................................................................ 67

Mijash Rajthala 8| Page


CS6PO5 Final Year Project

Figure 43: Running pods ......................................................................................... 67


Figure 44: Evidence ................................................................................................ 68
Figure 45: Logs being shown ................................................................................... 68
Figure 46: Kubectl command ................................................................................... 68
Figure 47: Ping request ........................................................................................... 69
Figure 48: Opening nginx template .......................................................................... 70
Figure 49: Nginx template opens ............................................................................. 70
Figure 50: Ngrok blocking outside user..................................................................... 71
Figure 51: Website not running ................................................................................ 72
Figure 52: Created docker pods............................................................................... 72
Figure 53: Restarting docker.................................................................................... 73
Figure 54: Website.................................................................................................. 75
Figure 55: Pulling Nginx image ................................................................................ 75
Figure 56: Image pulled........................................................................................... 76
Figure 57: Seeing logs of my image ......................................................................... 76
Figure 58: Inspecting the image ............................................................................... 77
Figure 59: Inspecting part 2 ..................................................................................... 78
Figure 60: Restarting docker.................................................................................... 78
Figure 61: new port and new image ......................................................................... 79
Figure 62: running pods .......................................................................................... 79
Figure 63: The website is working ............................................................................ 79
Figure 64: ngrok download ...................................................................................... 80
Figure 65: using ngrok ............................................................................................ 80
Figure 66: Waterfall methodology............................................................................. 95
Figure 67: Water fall methodology............................................................................ 96
Figure 68: Steps of prototyping model ...................................................................... 97
Figure 69: Survey responses ................................................................................... 98
Figure 70: Survey responses ................................................................................... 99
Figure 71: Survey responses ................................................................................. 100
Figure 72: Survey responses ................................................................................. 101
Figure 73: Survey responses ................................................................................. 102
Figure 74: Survey responses ................................................................................. 103
Figure 75: Survey responses ................................................................................. 104
Figure 76: Post survey questions ........................................................................... 105
Figure 77 : Post survey questions 2 ....................................................................... 106
Figure 78: Post survey question 3 .......................................................................... 106
Figure 79: Post survey questions 4 ........................................................................ 107
Figure 80: Post survey questions 5 ........................................................................ 107
Figure 81: Responses I ......................................................................................... 108
Figure 82: Responses II ........................................................................................ 108
Figure 83: Responses III ....................................................................................... 109
Figure 84: Responses IV ....................................................................................... 109
Figure 85: Responses V ........................................................................................ 110
Figure 86: Gantt chart from proposal ...................................................................... 120
Mijash Rajthala 9| Page
CS6PO5 Final Year Project

Figure 87: Gantt chart from interim report ............................................................... 121


Figure 88: Gantt chart from final report ................................................................... 122
Figure 89: Work breakdown structure..................................................................... 123
Figure 90: Milestones ............................................................................................ 124
Figure 91: Use case diagram ................................................................................. 126

Mijash Rajthala 10 | P a g e
CS6PO5 Final Year Project

Table of tables
Table 1: Comparison table....................................................................................... 32
Table 2: Unit test plan ............................................................................................. 66
Table 3: System testing ........................................................................................... 66
Table 4: Test case 1 ............................................................................................... 67
Table 5: Test case 2 ............................................................................................... 67
Table 6: Test case 3 ............................................................................................... 68
Table 7: Test case 4 ............................................................................................... 68
Table 8: Test case 5 ............................................................................................... 69
Table 9: Test case 6 ............................................................................................... 69
Table 10: Test case 7.............................................................................................. 70
Table 11: Test case 8.............................................................................................. 71
Table 12: Test case 9.............................................................................................. 71
Table 13: Test case 10............................................................................................ 72
Table 14: Test case 11............................................................................................ 73
Table 15: Test case 12............................................................................................ 73

Mijash Rajthala 11 | P a g e
CS6PO5 Final Year Project

Abstract
Nepal aspires to become a technological powerhouse and an IT superpower. Yet, many
Nepalese websites, including government-approved ones, suffer from challenges such
as poor loading times and frequent downtime, which significantly impair user experience.
This project tries to address these issues by implementing a load balancer for a website
prototype on a Raspberry Pi 3B cluster using Docker and Kubernetes, with the goal of
increasing website performance and availability.

To accomplish this, the project installs k3s and creates a Kubernetes cluster using a
cluster of Raspberry Pi 3B devices. Docker is then used to bundle the website and its
dependencies into lightweight, portable containers that are distributed across several
cluster nodes. The Kubernetes load balancer is set up to distribute incoming traffic evenly
across containers, maintaining balanced load and minimizing downtime during high traffic
periods.

The study covers load balancing solution demonstrations and testing, demonstrating how
it enhances website speed and availability. It emphasizes the advantages of combining
Docker with Kubernetes for load balancing, such as greater container portability,
scalability, and isolation, as well as Kubernetes' powerful capabilities like as high
availability, rolling updates, monitoring, and backup and restore.

The project underlines the importance of current technologies such as Docker and
Kubernetes in enabling Nepal's IT transformation path. It finishes with potential
enhancement recommendations and future directions, adding to the increasing body of
knowledge on optimizing website performance in resource-constrained contexts.

Keywords: Load balancer, Docker, Kubernetes, Raspberry Pi 3B, Nepal, IT


transformation, Website performance, High availability, Scalability, Containerization,
Slow websites.

Mijash Rajthala 12 | P a g e
CS6PO5 Final Year Project

Chapter 1
Introduction

Mijash Rajthala 13 | P a g e
CS6PO5 Final Year Project

1 Introduction
1.1 Project description
Websites are crucial in today's digital world, facilitating global communication,
commerce, and information exchange (Smith, 2018). Unfortunately, high traffic periods
can have a severe impact on website performance and availability, resulting in slow
response times and outages. Load balancing techniques are used to disperse incoming
traffic across multiple servers, ensuring effective resource use and avoiding downtime
(Nguyen, 2019). In this project, we hope to build a load balancer using Docker and
Kubernetes, two commonly used technologies, to improve website performance and
reduce downtime during peak traffic periods.

Figure 1: Server down when there is excessive traffic

During peak traffic periods, many regions, including Nepal, experience sluggish
performance and downtime on websites, including government-authorized ones. These
concerns can stymie the country's digital progress and negatively damage user
experience (Nepal, 2020). To address this issue, a project is proposed combining Docker
and Kubernetes to build a load balancing solution that can uniformly distribute incoming

Mijash Rajthala 14 | P a g e
CS6PO5 Final Year Project

traffic across numerous containers, avoiding any single container from becoming a
bottleneck and assuring smooth website performance (Inc., 2021).

To build a Kubernetes cluster, the project will use a Raspberry Pi 3B cluster and k3s. The
website prototype and its dependencies will be containerized using Docker, resulting in
lightweight and portable containers (Kubernetes, 2021). These containers will be
distributed across different nodes in the Kubernetes cluster, taking advantage of
Kubernetes' load balancing capability to efficiently distribute incoming traffic (Bogoychev,
2019). The load balancer will distribute traffic evenly among the containers, limiting
overloading and minimizing the possibility of performance deterioration or outage during
high traffic periods.

Figure 2: Load balancer use

The project's goal is to demonstrate how Docker and Kubernetes may improve website
performance and decrease downtime, benefiting websites not just in Nepal but also
globally. We hope to illustrate the potential of load balancing in enhancing website speed
and availability on a worldwide scale by leveraging these new technologies (Roche,
2020). The data and insights gained from this project can help countries become IT
superpowers by tackling the difficulties of website performance and downtime during
heavy traffic periods.

Mijash Rajthala 15 | P a g e
CS6PO5 Final Year Project

1.2 Current Scenario


Docker and Kubernetes have quickly acquired traction in the IT industry as critical
technologies for on-premise server installations. According to a recent Cloud Native
Computing Foundation (CNCF) poll, over 80% of enterprises are currently employing
containerization technologies such as Docker, with Kubernetes being the most
extensively used container orchestration platform, adopted by over 78% of respondents
((CNCF), 2021). These technologies have various advantages, including increased
application agility, scalability, and dependability. Docker enables the encapsulation of
applications and dependencies into portable containers, allowing for uniform application
packaging, delivery, and execution across several environments (Docker, 2021).
Kubernetes offers a solid solution for automating the deployment, scaling, and
maintenance of containerized applications across server clusters, making it easier to
manage high-traffic websites and reduce downtime (Kubernetes, 2021).

Figure 3: Docker users skyrocketing

These benefits have fueled rapid adoption of Docker and Kubernetes across enterprises
of all sizes, with Gartner forecasting that by 2023, more than 70% of worldwide

Mijash Rajthala 16 | P a g e
CS6PO5 Final Year Project

organizations will be running containerized apps, with Kubernetes as the dominant choice
for container orchestration (Gartner, 2021). Docker and Kubernetes continue to play
crucial roles in influencing the landscape of IT operations and helping businesses to
evolve into IT powerhouses as enterprises seek to upgrade their IT infrastructures and
meet the expectations of the digital age.

1.3 Problem Domain and Project as a Solution


1.3.1 Problem Statement
Nepal has seen a huge increase in internet users, with 10.78 million recently reported,
representing a 5.5 percent gain in just one year. This highlights the rising reliance on the
internet for a variety of objectives. With more users online, however, guaranteeing
efficient website performance has become vital for Nepalese users, IT professionals,
professional developers, and company owners who rely on the internet for their daily
activities. Using effective load balancing solutions utilizing technologies like as
Kubernetes and Docker can assist address performance difficulties and downtime
concerns, benefiting these digital landscape stakeholders.

Figure 4: Nepal GDP according to growth in technology

Some problem domains in the industry are listed below:

Mijash Rajthala 17 | P a g e
CS6PO5 Final Year Project

1 Scalability: Conventional on-premises server configurations may struggle to meet the


increasing demand for web services during high usage periods.

2 Performance: Website performance in Nepal is slow due to increased traffic and


insufficient load balancing.

3 Reliability: The absence of an effective load balancing mechanism can lead to unequal
traffic distribution, resulting in server overloading and potential service outages,
affecting website reliability and availability.

4 Downtime: Due to insufficient load balancing techniques in typical server settings,


websites may experience increased downtime during peak traffic periods.

5 User Experience: Bad website speed and frequent downtime can have a detrimental
influence on user experience, resulting in lower user satisfaction and engagement, as
well as potential user loss to competitors.
6 Modernization: As Nepal strives to become an IT superpower, IT infrastructure
modernisation, including the use of Docker and Kubernetes for effective load
balancing, is critical to keeping up with the shifting technology landscape.

1.3.2 The Project as a solution

Using Kubernetes and Docker to implement a load balancer can benefit users by boosting
website performance, minimizing downtime, and creating a seamless online experience,
allowing for easier access to information and resources and benefiting their educational,
professional, and corporate activities.

✓ Improves system performance by efficiently distributing traffic.


✓ Reduces downtime by redirecting traffic to healthy servers.

Mijash Rajthala 18 | P a g e
CS6PO5 Final Year Project

✓ Watches and removes faulty servers, hence improving system stability.


✓ Allows for the seamless installation and removal of servers, as well as the handling
of changing demands.
✓ Reduces manual work and ensures resource utilization is efficient.
✓ SSL termination, IP filtering, and DDoS protection are all included.
✓ Less downtime, faster reaction times, and seamless access.
✓ Optimizes resource utilization by balancing traffic and workload.
✓ It makes use of existing resources and avoids costly hardware upgrades.
✓ Kubernetes and Docker provide a modern and scalable solution.

Mijash Rajthala 19 | P a g e
CS6PO5 Final Year Project

1.4 Aims and Objectives


1.4.1 Aim

The main purpose of this project is to use Kubernetes to build a load balancer that
distributes incoming traffic across several pods or nodes in a Kubernetes cluster and help
to boost the performance, reliability, and availability of the applications and services
running in the cluster.

1.4.2 Objectives
The major objectives of the project are:

➢ To build a Docker container for the deployment of a website.


➢ Developing and testing an external Load Balancer for traffic distribution.
➢ To become familiar with Kubernetes for container orchestration and management.
➢ To learn Ubuntu or other Linux versions for system administration.
➢ Understanding and implementing containerized infrastructure for rapid
deployment.
➢ To study Docker and the fundamentals of virtualization for containerization.
➢ Create a custom load balancer to optimize server traffic distribution.
➢ To install a self-built load balancer in a network or server to improve performance.
➢ To reduce server and network downtime through effective load balancing
solutions.

1.6 Structure of The Report


1.6.1 Background
This section of the report explains about the target market for the developed system. With,
the target market in mind, existing products for the market are analyzed to make the
development of the current system, on par or better than the existing systems. This
includes comparison between features of existing products with aimed features of the
application before development.

Mijash Rajthala 20 | P a g e
CS6PO5 Final Year Project

1.6.2 Development
This section documents the process of selecting a development methodology suitable for
this project. Selection of methodology is based on the ease of implementation and viability
of the methodology for the given project. The upcoming phase documents the survey
analysis for the project before and after development which is done using the selected
methodology. Requirement analysis, design of the project and construction of the project
is documented in respect to the guidelines provided by the methodology.

1.6.3 Testing and Analysis


This section documents the test plans and the test outcomes of the complete project. If
deemed necessary, this section shows changes made in the project, if required by the
test results. Furthermore, with the result of particular test cases, analysis on how the tests
affect the system in the future is analyzed and documented in this section of the report.

1.6.4 Conclusion
Limitation of the developed system, work left to be done or improvements that could be
made in the future to this project is documented in this section of the report. Appropriate
reasoning for all the limitations and future work for the project have been documented as
well.

Mijash Rajthala 21 | P a g e
CS6PO5 Final Year Project

Chapter
2 Background

Mijash Rajthala 22 | P a g e
CS6PO5 Final Year Project

2.1 About end users


2.1.1 Client’s name
Ajima Design and Construction Pvt Ltd

2.1.2 Client’s description


Ajima Design and Construction Pvt. Ltd is a well-established architectural design and
construction enterprise situated in Koteshwor, Kathmandu, with at least 5 years of
expertise. Ajima has built a name in the market for offering its customers with complete
design and construction solutions.

Building map design is one of Ajima's core areas of expertise, which includes creating
exact architectural plans that conform with local building codes and regulations. These
maps serve as a blueprint for building projects, ensuring that they are completed on time
and in conformity with all necessary requirements. Ajima's professional architects and
designers work closely with customers to understand their specific requirements and
provide bespoke design solutions.

Mijash Rajthala 23 | P a g e
CS6PO5 Final Year Project

Figure 5: Client company logo

Ajima specializes in delivering in-depth predictions of potential increases in land values


in addition to architectural design. Ajima provides significant insights to clients on how the
value of their land may grow over time by leveraging their comprehensive knowledge of
the local real estate industry and trends. This data can help you make informed decisions
about land development and investment prospects.

Ajima is well-known for its expertise, meticulous attention to detail, and dedication to
customer satisfaction. They are eager to work with suggestions and give the appropriate
official documentation to guarantee that projects move forward smoothly. As a client for
this project, Ajima recognizes its viability and utility and is eager to collaborate to achieve
good outcomes.

Mijash Rajthala 24 | P a g e
CS6PO5 Final Year Project

Figure 6: Client approval letter

Mijash Rajthala 25 | P a g e
CS6PO5 Final Year Project

2.2 Understanding the solution


2.2.1 Containerization with Docker:
Docker is a containerization technology that allows you to put your web application, as
well as its dependencies and configurations, into a lightweight and portable container.
Containers are segregated and share the host OS kernel, making them more resource
efficient as compared to traditional virtualization. Docker images are simple to produce,
version, and distribute, making it simple to bundle and deploy web applications as self-
contained containers. Docker also includes tools like Docker Compose, which allows you
to define multi-container applications using a YAML file, making complicated applications
easier to manage and deploy.

Figure 7: Docker container

2.2.2 Orchestration with k3s:


k3s is a lightweight Kubernetes distribution meant to run on low-resource systems such
as the Raspberry Pi. When compared to conventional Kubernetes, k3s has a simpler
installation process and a lower footprint, making it perfect for edge computing scenarios.
k3s preserves the majority of Kubernetes' core features, such as automated scaling,
rolling updates, and self-healing, making it an effective platform for administering

Mijash Rajthala 26 | P a g e
CS6PO5 Final Year Project

containerized applications on Raspberry Pi nodes. With k3s, you may declare your
application's desired state in a manifest file, and k3s will automatically verify that the
actual state matches the desired state by managing container scheduling, placement,
and monitoring.

Figure 8: K3s architecture

2.2.3 Load balancing with high-availability:


Load balancing is a technique that distributes incoming traffic over numerous containers
or nodes to guarantee that traffic is distributed fairly and that no one node is overloaded.
You can leverage the built-in load balancing capabilities of a k3s cluster to distribute traffic
over numerous containers or nodes running your web application. Service Load
Balancing and Ingress Load Balancing are the two major types of load balancing provided
by k3s. Ingress Load Balancing sends traffic to multiple services depending on domain
names or URL paths, whereas Service Load Balancing distributes traffic among
containers inside a service. To provide high availability and effective traffic distribution,
load balancers can be configured and managed utilizing Kubernetes resources such as
Services, Ingress, or external load balancer integrations.

Mijash Rajthala 27 | P a g e
CS6PO5 Final Year Project

Figure 9: Load balancer position

2.2.4 Resource efficient deployment:


In comparison to more capable servers, Raspberry Pi 3B versions have restricted
resources such as CPU, memory, and storage. Docker with k3s can aid in the optimization
of resource use for web applications running on Raspberry Pi nodes. Docker enables the
creation of lightweight containers that encapsulate the application and its dependencies,
have low overhead, and can be easily isolated from one another. k3s improves resource
efficiency even further by automatically controlling container placement on Raspberry Pi
nodes based on resource availability. k3s monitors container and node resource
utilization and may automatically schedule containers to less used nodes, ensuring that
resources are used efficiently and avoiding resource bottlenecks.

2.2.5 Resilience with poor infrastructures:


With Nepal's inadequate infrastructure, building web apps on Raspberry Pi 3B models
using Docker and k3s can provide a decentralized and distributed method that improves

Mijash Rajthala 28 | P a g e
CS6PO5 Final Year Project

resistance to failures and disturbances. Docker and k3s enable the deployment of
numerous containers or nodes in different locations, allowing traffic to be served even if
individual nodes or parts of the infrastructure fail. k3s monitors container and node health
and can reschedule failed containers to healthy nodes or replace failed nodes with new
ones. This ensures that your web application stays up and accessible even when the
infrastructure is poor or unstable. Furthermore, k3s has capabilities such as automated
rolling updates, which allow you to upgrade containers without downtime, and self-
healing, which automatically replaces failed containers, making it a strong choice for
ensuring high availability in difficult infrastructure scenarios.

2.3 Similar projects


This project has been put up for development while taking into consideration
several other previously created technologies that might identify network and server
overload and issue alerts regarding it.

This section outlines several similar projects from which ideas were borrowed to
create the project. Discussions also include how those systems were created, how they
function, and how they were critically analyzed.

2.3.1 Similar project 1


Load Balancing using Docker and Kubernetes: A Comparative Study (Prajval
Mohan, 2020)

Author: Prawjol Mohan, Tejas Jambhale,Lakshya Sharma, Simran Koul, Smriti Koul

The project aims to simplify and improve the efficiency of the entire development
process using Kubernetes and docker (open-source platforms). According to this project,
Kubernetes clusters consist of Pods, Flat Networking Spaces, Labels, Replication
Controllers, and Services.

The advanced load balancing capabilities of NGINX Plus make it the ideal load
balancer in front of the collection of upstream servers: load adjusting and session
determination, HTTP well-being checking and server moderate beginning, live movement
observing, and dynamically designed upstream server collection. Scalability, self-heating,

Mijash Rajthala 29 | P a g e
CS6PO5 Final Year Project

and mobility, according to an author, are the main factors that make Kubernetes more
popular than Docker clusters worldwide.

By comparing the docker and Kubernetes platforms, the project assists in


disseminating knowledge about both. When the technologies gained popularity among
users of docker and Kubernetes, the entire development process streamlined and
became standardized.

2.3.2 Similar project 2

Three-Phase Loading Balancing (rs. S.S. Kumbar, 2017)

Author: Mrs. S.S. Kumbar, Shrikant Biradar, Akshay Thalkari, Sanket Jadhav

This project attempts to provide equal power distribution among some places with
overloaded and some areas with less loaded areas. The component used in this project
is ADE7758 (Monitoring IC), Silicon Bridge Rectifier, and Regulator.

This project provides the details of load balancing and ways for how to build and
implement a load balancing in the power distribution. This project prevents load
unbalancing phase when the unbalancing problem occurs by employing automatic three
phase load equalization.

In this project, manually load shifting is done but to decrease the manpower and for the
accuracy this project is important and which balances the three phases by monitoring
electrical equipment, utilizing control panels, switching matrix which helps to improve the
power system.

Mijash Rajthala 30 | P a g e
CS6PO5 Final Year Project

2.3.3 Similar project 3


Load-Balancing of Kubernetes-Based Edge Computing Infrastructure Using
Resource Adaptive Proxy (Quang-Minh Nguyen, 2022)
Author: Quang-Minh Nguyen, Linh-An Phan and Taehong Kim

This project aims to create the RAP algorithm to observe other cluster resources
such as graphics processing units and storage. In this project,an author presented the
proxy named RAP for the K8s-based edge computing environment which gives the
capacity to observe the resource state of workers during load-balancing activities. The
components such as etcd, kube-scheduler, kube-apiserver and kube-controller-manager
in master node and the components such as kubelet, kube-proxy, container runtime in
worker node which is utilized in this project. In this study, the authors studied the
implementation of RAP in other containerized orchestrations.

2.4 Comparison
2.4.1 Comparison table
S.N Features Project Project 2 Project 3 This
Yes project

1 Automated Yes Yes No Yes


configuration
2 Scalability Yes No Yes Yes
3 Traffic No No Yes Yes
monitoring
4 Traffic No No Yes Yes
prioritization
5 ACL or No Yes No No
routing
6 Fail Over No No Yes Yes

7 CLI Yes No Yes Yes

Mijash Rajthala 31 | P a g e
CS6PO5 Final Year Project

8 GUI Yes No Yes Yes


9 Programming Yes No Yes Yes
Language
10 Proximation Yes No Yes Yes
11 Automation Yes No Yes Yes

Table 1: Comparison table

2.4.2 Analysis and Conclusion of comparison


The three different kubernetes best projects which were comparison between
Kubernetes and docker; three phase load balancing and proxy load balancing are
compared with load balancer using docker and Kubernetes based on the different
features. As seen from the comparison table all the projects use similar open source
platforms who's sole aim is to Learn load balancing which Kubernetes or docker. those
projects were made by various experienced developers and DevOps engineers. Most of
them lack some features but my project has provided a solution to all of the missing
features.

The projects I'm comparing my work on load balancing in Docker and Kubernetes
environments with are Prajval Mohan et al"Load .'s Balancing using Docker and
Kubernetes: A Comparative Analysis" (2020), Ms. S.S. Kumbar et al"Three-Phase .'s
Load Balancing" (2017), and Quang-Minh Nguyen et al (2022).

Prajval Mohan et al project .'s focused on simplifying and improving the


development process through the use of Kubernetes and Docker, whereas my project
may investigate different load balancing techniques or tools, as well as provide a different
perspective on Kubernetes scalability, self-healing, and mobility. Mrs. S.S. Kumbar et
alproject .'s focuses on load balancing in power distribution systems, and while this is
outside my area of expertise, there may be opportunities for cross-learning. While Quang-
Minh Nguyen et aleffort .'s attempted to design a load balancing algorithm for Kubernetes-
based edge computing, there may be changes in strategy or methodology in my project.
Overall, these initiatives provide significant insights on load balancing and associated

Mijash Rajthala 32 | P a g e
CS6PO5 Final Year Project

technologies, and additional research might assist in identifying areas for improvement or
innovation in the sector.

Mijash Rajthala 33 | P a g e
CS6PO5 Final Year Project

Chapter 3
Design and Development

Mijash Rajthala 34 | P a g e
CS6PO5 Final Year Project

3. Design and Development


3.1 Considered methodology.
Appendix I

3.2 Selected methodology


3.2.1 Evolutionary Prototyping
Evolutionary prototyping is a software development process in which prototypes are used
to iteratively refine and improve a product. Given that modifications are frequent and
essential components of the system, the methodology used for it is evolutionary
prototyping. Afterwards, to make the project more useable, effective, and market-ready,
new features could be included or an outdated feature could be eliminated.

DevOps systems frequently innovate, and new ideas lead to new improvements, which
makes the system versatile. The innovation and adjustments that can ultimately please
the customer are made possible by design, testing, and improvement. The client's
requirements may change over time; hence the prototype can be altered more than once.
The internal and external supervision's critique of this system is also welcomed by the
evolutionary prototype technique.

Figure 10: Evolutionary prototyping model steps

Mijash Rajthala 35 | P a g e
CS6PO5 Final Year Project

3.2.2 Justification for using Evolutionary Prototyping


Docker and Kubernetes were installed on two Raspberry Pi 3B models, and a template
website was deployed. A load balancer was created utilizing an evolutionary prototyping
approach in preparation of potentially large traffic volumes. The load balancer evolved
and adapted to changing traffic patterns in real time, optimizing performance and
resource utilization. This resulted in effective load distribution and increased website
availability in a dynamic and resource-constrained environment, thereby overcoming the
project's load balancing concerns.

Some important benefits of evolutionary prototyping include:

• Early feedback: Evolutionary prototyping allows for early user feedback, which
can help to detect and address any difficulties or user demands early in the
development process.

• Incremental development: Evolutionary prototyping enables for the development


of a product to be broken down into smaller, incremental segments, which can
make the process more manageable and allow for more flexibility in the
development process.

• Reduced risk: By testing and improving prototypes before final development,


evolutionary prototyping can help to lessen the chance of costly mistakes or failure.

• Improved user experience: By incorporating customer feedback into the


development process, evolutionary prototyping can help to improve the user
experience and boost user satisfaction with the final product.

• Enhanced cooperation: Evolutionary prototyping can stimulate collaboration and


communication between different team members and stakeholders, which can

Mijash Rajthala 36 | P a g e
CS6PO5 Final Year Project

improve the overall development process.

3.3 Phases
The major phases of evolutionary prototyping are:

3.3.1 Initial Concept


It is the first phase in which initial requirements are collected and analyzed from the client.
The client might not have a clear vision of the requirements, but it provides the basic idea
of how the system should be made. The basic requirements include expected outputs,
must-have features, most important components and so on. On this phase:

i. The client's first needs were collected and reviewed.


ii. The system's basic concept was developed based on the client's
suggestions.
iii. Expected outcomes, must-have features, and critical components
have been established.
iv. During this phase, the client's concept for the system was refined.
v. The first concept laid the groundwork for future development and
refinement of project needs.
3.3.2 Create a Prototype
In this phase, a prototype is created by analyzing and refining the basic
requirements collected from the client. A prototype based on a basic requirement
is made and presented to the client. Some major tasks carried out during this
phase are:
i. Based on improved specifications, a functional website prototype
was produced.
ii. Raspberry Pi devices with Docker and Kubernetes exhibited features
and functionalities.
iii. Stakeholders were shown the prototype for comment and approval.

Mijash Rajthala 37 | P a g e
CS6PO5 Final Year Project

iv. Feedback was gathered and used to improve the product.


v. Before moving on to the following phases, the prototype was
checked to ensure that it met the needs of the stakeholders.

3.3.3 Refine Prototype


The third phase helps in project modification, refinement, and optimization as per
the requirement of the client. The original prototype is rebuilt continuously with the
help of requirements that the client provides, and it is done until the final output
that satisfies the client is produced. Some tasks carried out in this phase are:
i. Client and stakeholder feedback was gathered to identify areas that
needed to be improved.
ii. Based on the comments, necessary changes and enhancements
were made to the prototype.
iii. The prototype was refined iteratively to ensure it satisfied the
necessary objectives of managing a large amount of incoming traffic
and load balancing.
iv. A thorough examination of the prototype was carried out in order to
detect any gaps or issues in the implementation of Docker and
Kubernetes on Raspberry Pi 3B models.
v. The user interface, functionality, and performance of the website
prototype were refined to improve its performance on the Raspberry
Pi 3B models.
vi. Testing and validation were carried out to guarantee that the
improved prototype met the project's goals and objectives of
deploying a website using Docker and Kubernetes on Raspberry Pi
3B models.
vii. To guarantee that the refinements satisfied the client and
stakeholders, a constant feedback loop was maintained.
viii. All prototype improvements were documented for future reference.

Mijash Rajthala 38 | P a g e
CS6PO5 Final Year Project

3.3.4 Validation and deployment


Stress testing was performed to evaluate the system's performance under high-traffic
circumstances. To efficiently divide incoming traffic over many Raspberry Pi 3B models,
optimized load balancing techniques were developed. Monitoring methods were put in
place to keep track on the system's health and performance in real time. Lessons learned
were meticulously documented throughout the project for continuing system improvement
and refinement. These methods ensured that the system could handle a large amount of
incoming traffic while retaining performance, scalability, stability, and dependability.

i. Website and load balancer testing and quality assurance.


ii. Configuring and installing Docker and Kubernetes on Raspberry Pi
3B models.
iii. Preparing the website and load balancer for deployment.
iv. Validating the speed and load balancing capabilities of the website.
v. Documenting the deployment procedure for future reference and
upkeep.
vi. Collaboration with stakeholders is essential for successful
implementation.

3.4 Survey result


3.4.1 Pre-survey form
Appendix II Survey form screenshots

According to the survey, 71.4% of respondents identified as "Other" for their present
profession, while 14.3% identified as students and 14.3% as IT practitioners.
Furthermore, 57.1% of respondents said they were familiar with DevOps. When asked to
rank their understanding about servers, most respondents (50%) gave it a 3 on a scale
of 1 to 5. Similarly, when asked how important it is to have a server that runs smoothly,
the majority of respondents (64.3%) ranked it a 5 on a scale of 0 to 5. According to the
survey, 83.3% of respondents were unaware of Dos Attacks, and 92.9% of those who
were aware of Load-Balancers identified Amazon AWS and Microsoft Azure as tools that
may establish a Load balancer. Finally, all respondents reported hearing about recent

Mijash Rajthala 39 | P a g e
CS6PO5 Final Year Project

server failures, with the majority (50%) rating the impact of server failures on personal
and professional lives as a 4 on a scale of 0 to 5. Respondents differed on the extent to
which a load balancer can reduce server downtime.

Some findings from the Pre-survey are:

✓ The survey received 14 responses.


✓ 71.4% of respondents classified as "Other," while 14.3% identified as "Student"
and 14.3% as "IT practitioner."
✓ DevOps is known by 57.1% of respondents, but not by 42.9%.
✓ 35.7% of respondents ranked their server expertise as 3 out of 5.
✓ 64.3% of respondents believe that a server's smooth operation is crucial.
✓ DoS attacks are known to 83.3% of respondents.
✓ 64.3% of respondents say it is critical for an IT professional to understand the
server and its tools.
✓ 100% of respondents were aware of recent server outages.
✓ A failed server, according to 50% of respondents, has a substantial impact on their
personal and professional lives.
✓ Amazon AWS is known to 92.9% of respondents as a tool for constructing a Load
balancer.
✓ 42.9% of respondents feel that a load balancer can completely eliminate server
downtime.
Finally, the survey emphasizes the significance of server expertise and tools, as well
as the potential implications of server failures. It also demonstrates a lack of
understanding of concepts such as DevOps, Dos Attacks, and Load Balancers. As a
result, it is critical for IT professionals to be updated and constantly learn about server-
related technologies to ensure that servers work efficiently and without downtime.

3.4.2 Post-Survey
Appendix III Responses

Mijash Rajthala 40 | P a g e
CS6PO5 Final Year Project

A survey was done to assess the effectiveness of a project's load balancing


implementation utilizing Kubernetes and Docker. The survey received 14 responses, and
the results were analyzed to determine the overall satisfaction level, performance impact,
ease of configuration, encountered issues, documentation and resources, limitations and
challenges, effectiveness in distributing traffic, cost and complexity impact, and
recommendation to other organizations.

According to the survey results, the majority of participants were satisfied with the load
balancing implementation, with 71.4% rating satisfaction or extremely satisfaction.
Furthermore, 71.4% of participants said the load balancer improved the performance and
scalability of their application, with 57.1% saying it had a rather significant impact.

The survey did, however, indicate several areas for improvement. For example, 42.9% of
participants judged load balancer configuration and management to be somewhat or
extremely challenging, while 50% reported challenges during implementation. Some
participants reported satisfactorily fixed issues, while others reported unsolved issues.

In terms of documentation and resources, 21.4% of participants thought it was great,


while 21.4% thought it was fair. The majority of participants reported no limits or difficulties
with the load balancer, with 50% reporting moderate difficulties.

Overall, the load balancer was considered very effective at spreading traffic throughout
the cluster's containers and nodes, with 50% of participants reporting a somewhat
substantial impact on attaining high availability and redundancy for their application. 50%
of participants indicated a slight reduction in cost and complexity, with 7.1% indicating a
major reduction.

Mijash Rajthala 41 | P a g e
CS6PO5 Final Year Project

Finally, the majority of participants (78.6%) would recommend Kubernetes and Docker to
other enterprises for load balancing. The reasons for the recommendations varied, but
the majority of panellists highlighted enhanced performance, scalability, and high
availability as advantages.

In conclusion, the survey gave significant insights about the project's load balancing
implementation using Kubernetes and Docker. While there were some shortcomings, the
overall outcomes were favorable, with the majority of participants pleased with the
implementation and recommending it to other businesses.

Some key findings were:

✓ The majority of responders were pleased with the project's load balancing
implementation, which used Kubernetes and Docker.
✓ The load balancer was regarded by the majority of responders to have improved
the application's performance and scalability.
✓ A considerable proportion of respondents thought that configuring and operating
the load balancer in Kubernetes and Docker was rather complex.
✓ Almost half of the respondents reported problems during the load balancer setup,
and only half of them were resolved properly.
✓ Most responders thought the instructions and tools for establishing a load balancer
in Kubernetes and Docker were helpful.
✓ A considerable proportion of responders reported issues or limits with the load
balancer in Kubernetes and Docker.
✓ The load balancer was thought to be quite successful in distributing traffic among
the cluster's containers and nodes.
✓ Most responders thought the load balancer aided in achieving high availability and
redundancy for the application.
✓ The load balancer was regarded by the majority of responders to have lowered the
project's cost and complexity.

Mijash Rajthala 42 | P a g e
CS6PO5 Final Year Project

✓ The majority of responders would recommend Kubernetes and Docker to other


enterprises for load balancing.

3.5 Requirement analysis


3.5.1 Manageable:
The prototype server should feature an easy-to-use setup process that enables simple
installation and configuration. It should include simple management tools and capabilities
that allow administrators to properly monitor and control the server's performance and
availability. This includes features like a single dashboard for monitoring system health,
recording and alerting methods for proactively identifying and addressing issues, and
configuration options that are simple to grasp and alter as needed. Furthermore, the
system should have extensive documentation and support resources to aid admins with
server maintenance and troubleshooting.

3.5.2 Compatibility:
The system should be designed to work with a wide variety of software and hardware
platforms, ensuring compatibility with various client devices and applications. This
includes compatibility with multiple hardware configurations, such as different CPUs,
memory capacities, and storage options, as well as support for common operating
systems, databases, programming languages, and protocols. Compatibility testing and
validation should be carried out to verify that the system integrates effectively with current
IT infrastructure and third-party software solutions, lowering the chance of
incompatibilities that could impede system performance or functioning.

Mijash Rajthala 43 | P a g e
CS6PO5 Final Year Project

3.5.3 Scalability:
The prototype server should be designed to manage an increase in workload or user
demand with no performance issues. This comprises the ability to extend horizontally or
vertically, depending on the system architecture, to handle more concurrent users,
increasing data processing needs, or other scalability requirements. The system should
also have techniques for automatically allocating resources such as CPU, memory, and
storage as needed to ensure optimal performance even during peak usage periods.
Scalability testing should be performed to ensure that the system can manage higher
workloads without degrading performance or availability.

3.5.4 Reliability:
The prototype server should be highly dependable, with little or no downtime and no or
few crashes. To reduce single points of failure, use redundant hardware components like
as power supplies, network cards, and storage devices. To maintain high availability and
data integrity, the system should also include built-in fault tolerance techniques such as
automatic failover, load balancing, and backup and recovery operations. Furthermore,
extensive testing and quality assurance processes should be performed prior to
deployment to detect and resolve any potential reliability issues, and continual monitoring
and maintenance should be performed to proactively address any potential issues and
preserve system reliability.

3.5.5 Cost-effective:
The system should be built to be cost-effective, taking into account elements such as
hardware expenses, licensing fees, maintenance and support costs, and operational
costs. The system should be cost-effective while providing the necessary functionality
and performance. This involves optimizing resource use to reduce hardware
requirements, adopting open-source or cost-effective technologies when appropriate, and
conducting cost-benefit analysis to make educated technology choices and investments.
Furthermore, the system should have a clear and transparent pricing mechanism with no
hidden charges, as well as a visible return on investment for business management.

Mijash Rajthala 44 | P a g e
CS6PO5 Final Year Project

3.5.6 Traffic monitoring:


The system should have powerful traffic monitoring capabilities, such as the ability to
monitor incoming traffic in real-time, such as network requests or data streams. This
includes capabilities like traffic analysis, logging, and reporting that provide information
about the volume, kind, and patterns of incoming traffic. The system should also be able
to prioritize traffic depending on user urgency or other predetermined criteria, such as
using Quality of Service (QoS) policies to guarantee essential or time-sensitive traffic is
handled first. This aids in improving system performance, guaranteeing effective resource
usage, and offering a pleasant user experience.

3.6 Resource Requirements:


In appendix IV B

Mijash Rajthala 45 | P a g e
CS6PO5 Final Year Project

3.6 Design and analysis


3.6.1 Use case diagram
The use case diagram demonstrates a simplified load balancer architecture orchestrated
by Kubernetes. It depicts the actors, which include the user and the system administrator,
as well as the primary use cases of accessing the web application, configuring the load
balancer, and controlling the Kubernetes cluster. This high-level graphic depiction aids in
illustrating the interactions and relationships between the load balancer's actors and use
cases. It is crucial to note, however, that the actual use case diagram for your specific
project may differ depending on your specific requirements and system design.

Mijash Rajthala 46 | P a g e
CS6PO5 Final Year Project

Figure 11: Use case diagram

Mijash Rajthala 47 | P a g e
CS6PO5 Final Year Project

Figure 12: Use case diagram for kubernetes cluster only

Mijash Rajthala 48 | P a g e
CS6PO5 Final Year Project

3.6.2 Flowchart

Figure 13: Installation procedure

Mijash Rajthala 49 | P a g e
CS6PO5 Final Year Project

Figure 14: Installation procedure 2

Mijash Rajthala 50 | P a g e
CS6PO5 Final Year Project

Figure 15: User side flowchart

Mijash Rajthala 51 | P a g e
CS6PO5 Final Year Project

Figure 16: load balancing

Mijash Rajthala 52 | P a g e
CS6PO5 Final Year Project

Figure 17: Cluster flowchart

The flowchart depicts the operation of a project involving a Raspberry Pi, Docker
containers, an NGINX web server, and Kubernetes load balancing. It all begins with
configuring the Raspberry Pi and creating Docker containers to host the web application
or website. The Docker containers are then setup using NGINX, which is then deployed
to Kubernetes for orchestration and load balancing. The flowchart depicts the Kubernetes
load balancing mechanism and how the website or web application can be accessed via
the load balancer. The flowchart depicts the stages involved in the project's working
mechanism, from installation to accessing the website via load balancing.

Mijash Rajthala 53 | P a g e
CS6PO5 Final Year Project

3.6.3 Gantt chart


The project began with a Gantt chart that detailed the anticipated timeframe and
milestones. As the project plan was still being established, the Gantt chart was based on
preliminary assumptions and projections. The Gantt chart was amended throughout
interim presentations as the project progressed to accommodate new information and
feedback from stakeholders. As the project team obtained a greater grasp of the project's
scope and requirements, the timeframe and milestones were adjusted.

The Gantt chart was routinely updated during the implementation phase to reflect the
project's progress. Unexpected delays or impediments arose along the route,
necessitating additional adjustments to the Gantt plan. However, the project team
remained dedicated to the project's objectives and worked tirelessly to solve these
challenges.

As seen in the final version of the Gantt chart, the project was successfully completed
within the revised timeline. While variations existed between the first proposal submission
and the final Gantt chart, the project team recognized the need of reacting to changes as
they developed in order to provide a successful end.

Gantt chart and work breakdown structure in Appendix V

Mijash Rajthala 54 | P a g e
CS6PO5 Final Year Project

3.7 Implementation

The project involved building a load balancer with Docker and Kubernetes to distribute
incoming network traffic across a cluster of Raspberry Pis. Several essential parts of the
implementation process included:

➢ Configuration of load balancing algorithms: To pick and configure the most


effective load balancing algorithms to distribute incoming traffic, the project team
considered numerous aspects such as resource availability, network topology, and
the number of nodes.
➢ Containerization using Docker: The team used Docker to containerize the
application components, splitting the application down into smaller, more
manageable components. This method allowed for simple deployment and scaling
up or down of the components as needed. Furthermore, Docker made it possible
for all components to share a single runtime environment, ensuring that
dependencies were well-managed.

Figure 18: Pulling Nginx image

Mijash Rajthala 55 | P a g e
CS6PO5 Final Year Project

Figure 19: Image pulled

Figure 20: Seeing logs of my image

Mijash Rajthala 56 | P a g e
CS6PO5 Final Year Project

Figure 21: Inspecting the image

Mijash Rajthala 57 | P a g e
CS6PO5 Final Year Project

Figure 22: Inspecting part 2

Figure 23: Restarting docker

Mijash Rajthala 58 | P a g e
CS6PO5 Final Year Project

Figure 24: new port and new image

Figure 25: running pods

Figure 26: The website is working

➢ Kubernetes deployment and scaling: Kubernetes was used to deploy and


manage the containerized application components. This entailed specifying the
intended application state and using Kubernetes to automate the deployment and
scaling of application components to meet demand.

Mijash Rajthala 59 | P a g e
CS6PO5 Final Year Project

Figure 27: K3s installation

Figure 28: Cluster status

Figure 29: Server overview

➢ Testing and validation: The project team carried out extensive testing plans to
guarantee that the application worked as intended under various scenarios. The

Mijash Rajthala 60 | P a g e
CS6PO5 Final Year Project

team performed a variety of tests, including load testing, fault tolerance testing,
and data consistency testing.

Figure 30: Installation failure

Figure 31: Trying to access

Mijash Rajthala 61 | P a g e
CS6PO5 Final Year Project

Figure 32: Port error

Mijash Rajthala 62 | P a g e
CS6PO5 Final Year Project

Figure 33: Port already in use

Figure 34: Image name already in use

During the testing various errors were showing up and the errors were solved by
consulting withsupervisor.

Mijash Rajthala 63 | P a g e
CS6PO5 Final Year Project

Overall, the load balancer deployment using Docker and Kubernetes was successful. The
application proved to be highly available, scalable, and reliable. Containerization of
application components, as well as seamless deployment and scaling via Kubernetes,
made application management simple. Furthermore, the careful selection and design of
load balancing algorithms guaranteed that incoming traffic was distributed efficiently.

Mijash Rajthala 64 | P a g e
CS6PO5 Final Year Project

Chapter 4
Testing and analysis

Mijash Rajthala 65 | P a g e
CS6PO5 Final Year Project

4: Testing and analysis


4.1 Test plan
4.1.1 Unit testing
Test Objectives

cases

1 API endpoint testing

2 Application containerization testing

3 Load balancing algorithms are being tested.

4 Response time of web applications

5 Kubernetes pod deployment testing

6 Performance evaluation of NGINX or HAProxy in handling requests

7 Testing the website's functionality

8 To test security vulnerabilities

9 Error handling and exception handling testing

10 Scalability evaluation

11 Fault tolerance testing

12 Testing for exceptions

13 Usability and user experience testing

14 Compliance testing for accessibility

Table 2: Unit test plan

4.1.2 System testing

Test case Objectives

Whole system test To test the whole system

Table 3: System testing

Mijash Rajthala 66 | P a g e
CS6PO5 Final Year Project

4. 2 Unit testing
❖ API endpoint testing
Test case 1
Objectives To ensure that API endpoints are working correctly and
providing accurate responses.
Action Enter the API call command
Expected result API runs smoothly
Actual Result It does run smoothly
Conclusion Test successful
Table 4: Test case 1

Evidence

Figure 35 : Curl command to call API:

Figure 36: Pt 2

❖ Application containerization testing


Test case 2
Objectives To containerize application
Action Show pods
Expected result All pods are shown
Actual Result Yes they are shown
Conclusion Test successful
Table 5: Test case 2

Figure 37: Running pods

❖ Load balancing algorithms are being tested.


Test case 3

Mijash Rajthala 67 | P a g e
CS6PO5 Final Year Project

Objectives To see the logs which shows load


balancing algorithm
Action Use curl command
Expected result Logs will be shown
Actual Result Logsare shown
Conclusion Test successful
Table 6: Test case 3

Figure 38: Evidence

Figure 39: Logs being shown

❖ Kubernetes pod deployment testing


Test case 4
Objectives K3s pod is deployed
Action Deploy command
Expected result Containers deployed
Actual Result Containers deployed
Conclusion Test successful
Table 7: Test case 4

Figure 40: Kubectl command

❖ To check response time

Mijash Rajthala 68 | P a g e
CS6PO5 Final Year Project

Test case 5
Objectives Check response time
Action Ping
Expected result Pinged
Actual Result Pinged
Conclusion Test successful
Table 8: Test case 5

Figure 41: Ping request

❖ Performance evaluation of NGINX or HAProxy in handling requests


Test case 6
Objectives Website should open
Action Open the url
Expected result Should be opened
Actual Result Is opened
Conclusion Test successful
Table 9: Test case 6

Mijash Rajthala 69 | P a g e
CS6PO5 Final Year Project

Figure 42: Opening nginx template

❖ Testing the website's functionality


Test case 7
Objectives To test website
Action Opening the Server IP
Expected result Website opens
Actual Result Website opens
Conclusion Test successful
Table 10: Test case 7

Figure 43: Nginx template opens

❖ To test security vulnerabilities


❖ Test case 8

Mijash Rajthala 70 | P a g e
CS6PO5 Final Year Project

Objectives To not let outsiders access the


website
Action Shared my link with others
Expected result Ngrok should block unknown request
Actual Result Unknown user cannot enter
Conclusion Test successful
Table 11: Test case 8

Figure 44: Ngrok blocking outside user

❖ Error handling and exception handling testing


❖ Test case 9
Objectives To show what it does during
exceptions
Action Using different port number and trying
to open it
Expected result App doesn’t open
Actual Result It doesn’t open
Conclusion Test successful
Table 12: Test case 9

Mijash Rajthala 71 | P a g e
CS6PO5 Final Year Project

Figure 45: Website not running

❖ Scalability evaluation
❖ Test case 10
Objectives To scale the pods
Action Use docker command to scale the
pods
Expected result 5 pods are created at once
Actual Result Yes they are created
Conclusion Test successful
Table 13: Test case 10

Figure 46: Created docker pods

Mijash Rajthala 72 | P a g e
CS6PO5 Final Year Project

❖ Fault tolerance testing


❖ Test case 11
Objectives To verify how it handles fault tolerance
Action Minor faulty command is given
Expected result It runs
Actual Result It runs
Conclusion Test successful
Table 14: Test case 11

Figure 47: Restarting docker

❖ Testing for exceptions


❖ Test case 12
Objectives To show what it does during
exceptions
Action Using different port number and trying
to open it
Expected result App doesn’t open
Actual Result It doesn’t open
Conclusion Test successful
Table 15: Test case 12

Mijash Rajthala 73 | P a g e
CS6PO5 Final Year Project

Figure 38: Website not running

❖ Usability and user experience testing


❖ Test case 13
Objectives User to open the website
Action Opens website
Expected result It opens
Actual Result Yes it does
Conclusion Test successful
Table 16: Test case 13

Mijash Rajthala 74 | P a g e
CS6PO5 Final Year Project

Figure 48: Website

4.3 System testing


❖ Test case 13
Objectives User use the system
Action Opens system
Expected result It opens
Actual Result Yes it does
Conclusion Test successful
Table 16: Test case 13

Figure 49: Pulling Nginx image

Mijash Rajthala 75 | P a g e
CS6PO5 Final Year Project

Figure 50: Image pulled

Figure 51: Seeing logs of my image

Mijash Rajthala 76 | P a g e
CS6PO5 Final Year Project

Figure 52: Inspecting the image

Mijash Rajthala 77 | P a g e
CS6PO5 Final Year Project

Figure 53: Inspecting part 2

Figure 54: Restarting docker

Mijash Rajthala 78 | P a g e
CS6PO5 Final Year Project

Figure 55: new port and new image

Figure 56: running pods

Figure 57: The website is working

Mijash Rajthala 79 | P a g e
CS6PO5 Final Year Project

Figure 58: ngrok download

Figure 59: using ngrok

Mijash Rajthala 80 | P a g e
CS6PO5 Final Year Project

4.4 Critical analysis

The project was completed using Evolutionary prototyping methodology. The project was
thoroughly evaluated at each level of development to verify its usefulness and
dependability. Every part of the project was carefully tested, from unit testing to system
testing, and any detected defects were corrected as soon as possible. During the testing
phase, several scenarios were simulated to ensure that the project could withstand heavy
loads and unforeseen mistakes. The adoption of automated testing technologies boosted
the testing process even further, making it more efficient and effective.

During testing, I was able to detect and resolve numerous bugs, which improved the
overall performance and stability of the application. The successful completion of the
testing phase meant that the project could be confidently launched. Overall, the testing
process was an important element of project development because it ensured that the
final product was of high quality and satisfied all of the client's expectations.

4.4.1 Strengths
❖ The project makes use of cutting-edge technologies like Docker and Kubernetes,
which are widely employed in industry.
❖ The use of load balancing aids in traffic distribution and website availability.
❖ The use of two Raspberry Pi devices increases system redundancy.
❖ The usage of Ngrok for public tunneling makes it possible to visit the website from
anywhere.
❖ Nginx is a widely used and popular web server software.
❖ The project takes use of well-known and extensively used technologies like as
Docker, Kubernetes, and NGINX, making it easily customizable and scalable.
❖ The usage of Raspberry Pi models as hardware saves money and enables for
simple setup and configuration.
❖ Implementing a load balancer increases the website's overall reliability and
performance, making it more accessible to users.

Mijash Rajthala 81 | P a g e
CS6PO5 Final Year Project

❖ Using ngrok with a public tunnel provides secure access to the website from any
place.
❖ The project's goal of load balancing traffic to improve website performance was
met with success.

4.4.2 Weaknesses
❖ To correctly set up and setup the project, considerable technical knowledge and
skill may be required.
❖ The use of Raspberry Pi models as hardware may limit the system's total capacity
and scalability.
❖ Depending on the volume of traffic, the load balancing configuration may need to
be fine-tuned further for best performance.
❖ The use of third-party services such as ngrok may pose security problems.

Mijash Rajthala 82 | P a g e
CS6PO5 Final Year Project

Chapter 5
Conclusion

Mijash Rajthala 83 | P a g e
CS6PO5 Final Year Project

5. Conclusion
Load balancing with Docker and Kubernetes on Raspberry Pi clusters is a potential
method for optimizing server designs in today's dynamic internet and AI-driven world.
Containers and orchestration technologies provide efficient application deployment and
management, while Raspberry Pi devices offer an economical and accessible clustering
solution.

This novel technique improves service performance, scalability, and dependability,


making it appealing to small and medium-sized businesses, startups, and educational
institutions. Organizations may meet the demands of the fast-paced digital environment
and remain competitive by embracing cutting-edge technologies. Finally, the load
balancer project on Raspberry Pi clusters using Docker and Kubernetes gives a cost-
effective and scalable option for optimizing server designs in today's internet and AI-
driven world.

As a result, improving the effectiveness and scalability of client-server architectures in a


variety of industries, including but not limited to Ajima Designs and Architecture Pvt Ltd,
is possible by implementing a load balancer using Docker and Kubernetes on a cluster of
Raspberry Pi devices.

This solution can efficiently distribute incoming traffic across multiple server nodes using
containerization and orchestration technologies, optimizing resource usage and ensuring
high availability. This solution is made available and affordable for small to medium-sized
businesses, startups, educational institutions, and hobbyists alike thanks to the use of
Raspberry Pi devices for clustering and prototyping. As traffic demands rise, this
configuration's flexibility and scalability make it simple to grow by adding more Raspberry
Pi units to the cluster.

A compelling option for contemporary IT infrastructures, the adoption of containerization


and orchestration technologies, like Docker and Kubernetes, offers a wide range of
advantages, including improved application isolation, streamlined deployment and
scaling, efficient resource utilization, and enhanced security. In conclusion, the load
balancer project on a cluster of Raspberry Pi devices using Docker and Kubernetes offers

Mijash Rajthala 84 | P a g e
CS6PO5 Final Year Project

a promising solution for enhancing the performance and dependability of client-server


architectures in a variety of domains, enabling businesses to achieve effective and
scalable operations.

5.1 Social legal and ethical issues


5.1.1 Social issues
The load balancer project based on Docker and Kubernetes on Raspberry Pi clusters has
the potential to positively impact social issues by promoting accessibility and inclusivity
through the use of low-cost Raspberry Pi devices, bridging the digital divide by providing
access to technology for small to medium-sized businesses and educational institutions,
and providing opportunities for personnel skill training and upskilling. It can also prioritize
data privacy and security by putting in place strong security mechanisms, adhering to
appropriate data privacy rules, and ensuring transparency and accountability in its design.
Ethical considerations can be incorporated into load balancing algorithms by fostering
justice and openness, as well as assessing the potential influence on stakeholders.
Furthermore, the energy-efficient characteristics of Raspberry Pi devices can help to
reduce the project's environmental effect. Overall, this project has the potential to be a
socially responsible solution that solves societal challenges while also positively
contributing to today's digital scene.

5.1.2 Legal issues


The load balancer project implemented robust authentication and authorization
mechanisms, ensured data privacy and security, adhered to provisions related to
electronic signatures and the legal validity of electronic transactions, and complied with
data protection regulations in accordance with Nepal's Electronic Transaction Act, 2063.
This ensures that all electronic transactions made via the load balancer system are legally
valid and enforceable, and that personal data is processed in accordance with applicable
laws. The project has taken proactive steps to operate within Nepal's legislative

Mijash Rajthala 85 | P a g e
CS6PO5 Final Year Project

framework and contribute to the responsible and legally acceptable usage of electronic
transactions.

5.1.3 Ethical issues


The load balancer project followed ethical considerations such as protecting user data,
ensuring fair resource allocation, maintaining transparency and accountability, adhering
to licensing and usage policies, practicing responsible use of AI and automation,
assessing social impact, and adhering to relevant laws and regulations. Data privacy is
prioritized, and resources are allocated fairly and without bias. Comprehensive
documentation and decision-making processes ensure transparency and accountability.
To avoid immoral decision-making, the responsible use of AI and automation is
highlighted. Social effect is evaluated and reduced in accordance with social values.
Legal compliance is ensured by encouraging responsible and ethical technology use in
accordance with applicable laws and regulations.

5.2 Advantages
The load balancer project that uses Docker, Kubernetes, and Raspberry Pi servers has
various advantages. It enhances system performance by efficiently distributing incoming
traffic, improves system security with features such as SSL termination and IP filtering,
enables scalability by adding or removing servers based on traffic variations, optimizes
resource utilization by evenly distributing traffic and workload, and provides cost-
effectiveness by utilizing existing resources. Furthermore, it automates day-to-day
network management operations, enhancing efficiency, and future-proofing the system
through the use of new technologies widely used in the IT industry.Improved efficacy,
availability, and scalability.

• Automated traffic distribution and resource utilization.


• Enhanced system security and reliability.
• Cost-effective solution using Raspberry Pi servers.
• Easy to use with user-friendly system and interface.

Mijash Rajthala 86 | P a g e
CS6PO5 Final Year Project

• Database for storing relevant information.


• Supports multi-vendors for flexibility.
• Easy and dashing interface for monitoring.
• Minimized downtime of servers and networks.
• Emphasizes on automation and SDN in modern networks.

5.3 Limitations
Hardware limits, network constraints, containerization complexity, compatibility
challenges, and security concerns are all potential limitations. However, with good
planning, monitoring, and administration, such as upgrading hardware, optimizing
networks, learning Docker and Kubernetes, picking suitable software, and adopting
security measures, these can be avoided.

• Hardware limitations of Raspberry Pi servers


• Network limitations, including latency and bandwidth
• Complexity of Docker and Kubernetes
• Lack of vendor support
• Security concerns and potential vulnerabilities
• Maintenance and updates requirements
• Human error hazards
• Resource limitations
• Project scope and timeline limitations

5.4 Future works


The project offers promising future advances. Enhancing security to combat emerging
threats, leveraging advanced analytics for improved performance monitoring,
implementing self-healing and automation capabilities for streamlined workload
management, exploring compatibility with other containerization technologies, and
integrating with DevOps techniques for efficient development and deployment workflows

Mijash Rajthala 87 | P a g e
CS6PO5 Final Year Project

are examples of these. Furthermore, exploiting cloud computing capabilities and


supporting hybrid setups can improve scalability and flexibility. The load balancer project
has enormous potential for further advancement, paving the path for cutting-edge
solutions in containerized infrastructure management.

• increased scalability
• Security aspects that are cutting-edge
• Compatibility with other containerization technologies
• Cloud computing
• Advanced analytics and monitoring
• Self-healing and automation capabilities
• Integration with DevOps techniques
• Hybrid environment support

Mijash Rajthala 88 | P a g e
CS6PO5 Final Year Project

Chapter 6
Bibliography

Mijash Rajthala 89 | P a g e
CS6PO5 Final Year Project

6. Bibliography and references


(CNCF), C. N. C. F., 2021. CNCF Survey: Kubernetes and Cloud Native Landscape..
s.l.:CNCF.
Anon., 2022. Steganography. [Online]
Available at: https://www.steganography.ch/
[Accessed 5 January 2023].
Bogoychev, N., 2019. Load balancing in Kubernetes: The Definitive Guide. Packt
Publishing.. s.l.:Packt.
Cheddad, A., Condell, J., Curran, K. & Mc Kevitt, P., 2010. Digital image
Steganography: Survey and analysis of current methods. Signal processing, 90(3), pp.
727-752.
Dextrava, 2022. eSewa Not Working » Dextrava.com - Digital Marketing Pro. [Online]
Available at: https://digital.naslnews.com/esewa-not-working-dextrava-com/
[Accessed 22 December 2022].
Docker, 2021. Docker. [Online]
Available at: https://www.docker.com/what-docker
[Accessed 9 April 2023].
ETtech, 2022. Gmail down: Gmail down for users globally, including in India - The
Economic Times. [Online]
Available at: https://economictimes.indiatimes.com/tech/trendspotting/gmail-down-for-
users-globally-including-in-india/articleshow/96137239.cms
[Accessed 26 December 2022].
Gartner, 2021. Containers Drive Cloud and DevOps Transformation. [Online]
Available at: https://www.gartner.com/document/3994676/predicts-2021-containers-
drive-cloud-and-devops-transformation
[Accessed 9 April 2023].
Guo, L., Ni, J. & Shi, Y. Q., 2014. Uniform Embedding for efficient JPEG
Steganography. IEEE transactions on information forensics and security, 9(5), pp. 814-
825.
Inc., D., 2021. Docker: Accelerated, Containerized Application Development. [Online]
Available at: https://www.docker.com/
[Accessed 9 April 2023].
Koul, P. M. T. J. S. S. K. S., 2020. Load Balancing using docker and kubernetes: A
comparative study. International Journal of recent technology and engineering, 9(2), p.
11.

Mijash Rajthala 90 | P a g e
CS6PO5 Final Year Project

Kubernetes, 2021. Kubernetes. [Online]


Available at: https://kubernetes.io/
[Accessed 9 April 2023].
Liu, H.-C. C. W., 2020. Optical ghost cryptography and steganography.. Optics and
Lasers in Engineering,, 130(7), p. 106094.

Nepal, G. o., 2020. Nepal Government National Portal | नेपाल सरकारको आधिकाररक पोर्ट ल
| Nepal. [Online]
Available at: https://www.nepal.gov.np/
[Accessed 9 April 2023].
New York Man Charged With Theft of Trade Secrets (2018) The US department of
justice.
Nguyen, T. H. &. L. C., 2019. Load balancing techniques for distributed systems.
International Journal of Computer Networks and Communications Security, 1(7), pp. 18-
29.
Prajval Mohan, T. J. L. S. S. K. S. K., 2020. Load Balancing using Docker and
Kubernetes: A. International Journal of Recent Technology and Engineering (IJRTE),
9(2), p. 11.
Quang-Minh Nguyen, L.-A. P. a. T. K. *., 2022. Load-Balancing of Kubernetes-Based
Edge Computing. Journal about Kubernetes, 2(3), p. 16.
Roche, R., 2020. Load Balancing with Docker and Kubernetes.. Communications of the
ACM, 12(63), pp. 40-45.
rs. S.S. Kumbar, S. B. A. T. S. J., 2017. THREE PHASE LOAD BALANCING.
International Research Journal of Engineering and Technology (IRJET), 4(3), p. 3.
Sadek, M. M., Khalifa, A. S. & Mostafa, M. G. M., 2015. Video steganography: a
comprehensive review. Multimedia tools and applications, 74(17), pp. 7063-7094.
Sandle, D. T., 2022. Hackers using ‘steganography’ tactics for malware attacks - Digital
Journal. [Online]
Available at: https://www.digitaljournal.com/tech-science/hackers-using-steganography-
tactics-for-malware-attacks/article
[Accessed 5 January 2023].
Shih, F. Y., 2017. Digital Watermarking and steganography: Fundamentals and
techniques. 2nd ed. s.l.:s.n.
Smith, J., 2018. The importance of websites in the modern global economy.. Journal of
Digital Commerce, 2(10), pp. 45-56.
Wu, S., Zhong, S. & Liu, Y., 2018. Deep residual learning for image steganalysis.
Multimedia tools and applications, 77(9), pp. 10437-10453.

Mijash Rajthala 91 | P a g e
CS6PO5 Final Year Project

Ye, J., Ni, J. & Yi, Y., 2017. Deep learning Hierarchical Representations for image
Steganalysis. IEEE transactions on information forensics and security, 12(11), pp. 2545-
2557.

References
(CNCF), C. N. C. F., 2021. CNCF Survey: Kubernetes and Cloud Native Landscape..
s.l.:CNCF.
Anon., 2022. Steganography. [Online]
Available at: https://www.steganography.ch/
[Accessed 5 January 2023].
Bogoychev, N., 2019. Load balancing in Kubernetes: The Definitive Guide. Packt
Publishing.. s.l.:Packt.
Cheddad, A., Condell, J., Curran, K. & Mc Kevitt, P., 2010. Digital image
Steganography: Survey and analysis of current methods. Signal processing, 90(3), pp.
727-752.
Dextrava, 2022. eSewa Not Working » Dextrava.com - Digital Marketing Pro. [Online]
Available at: https://digital.naslnews.com/esewa-not-working-dextrava-com/
[Accessed 22 December 2022].
Docker, 2021. Docker. [Online]
Available at: https://www.docker.com/what-docker
[Accessed 9 April 2023].
ETtech, 2022. Gmail down: Gmail down for users globally, including in India - The
Economic Times. [Online]
Available at: https://economictimes.indiatimes.com/tech/trendspotting/gmail-down-for-
users-globally-including-in-india/articleshow/96137239.cms
[Accessed 26 December 2022].
Gartner, 2021. Containers Drive Cloud and DevOps Transformation. [Online]
Available at: https://www.gartner.com/document/3994676/predicts-2021-containers-
drive-cloud-and-devops-transformation
[Accessed 9 April 2023].
Guo, L., Ni, J. & Shi, Y. Q., 2014. Uniform Embedding for efficient JPEG
Steganography. IEEE transactions on information forensics and security, 9(5), pp. 814-
825.
Inc., D., 2021. Docker: Accelerated, Containerized Application Development. [Online]
Available at: https://www.docker.com/
[Accessed 9 April 2023].

Mijash Rajthala 92 | P a g e
CS6PO5 Final Year Project

Koul, P. M. T. J. S. S. K. S., 2020. Load Balancing using docker and kubernetes: A


comparative study. International Journal of recent technology and engineering, 9(2), p.
11.
Kubernetes, 2021. Kubernetes. [Online]
Available at: https://kubernetes.io/
[Accessed 9 April 2023].
Liu, H.-C. C. W., 2020. Optical ghost cryptography and steganography.. Optics and
Lasers in Engineering,, 130(7), p. 106094.

Nepal, G. o., 2020. Nepal Government National Portal | नेपाल सरकारको आधिकाररक पोर्ट ल
| Nepal. [Online]
Available at: https://www.nepal.gov.np/
[Accessed 9 April 2023].
New York Man Charged With Theft of Trade Secrets (2018) The US department of
justice.
Nguyen, T. H. &. L. C., 2019. Load balancing techniques for distributed systems.
International Journal of Computer Networks and Communications Security, 1(7), pp. 18-
29.
Prajval Mohan, T. J. L. S. S. K. S. K., 2020. Load Balancing using Docker and
Kubernetes: A. International Journal of Recent Technology and Engineering (IJRTE),
9(2), p. 11.
Quang-Minh Nguyen, L.-A. P. a. T. K. *., 2022. Load-Balancing of Kubernetes-Based
Edge Computing. Journal about Kubernetes, 2(3), p. 16.
Roche, R., 2020. Load Balancing with Docker and Kubernetes.. Communications of the
ACM, 12(63), pp. 40-45.
rs. S.S. Kumbar, S. B. A. T. S. J., 2017. THREE PHASE LOAD BALANCING.
International Research Journal of Engineering and Technology (IRJET), 4(3), p. 3.
Sadek, M. M., Khalifa, A. S. & Mostafa, M. G. M., 2015. Video steganography: a
comprehensive review. Multimedia tools and applications, 74(17), pp. 7063-7094.
Sandle, D. T., 2022. Hackers using ‘steganography’ tactics for malware attacks - Digital
Journal. [Online]
Available at: https://www.digitaljournal.com/tech-science/hackers-using-steganography-
tactics-for-malware-attacks/article
[Accessed 5 January 2023].
Shih, F. Y., 2017. Digital Watermarking and steganography: Fundamentals and
techniques. 2nd ed. s.l.:s.n.

Mijash Rajthala 93 | P a g e
CS6PO5 Final Year Project

Smith, J., 2018. The importance of websites in the modern global economy.. Journal of
Digital Commerce, 2(10), pp. 45-56.
Wu, S., Zhong, S. & Liu, Y., 2018. Deep residual learning for image steganalysis.
Multimedia tools and applications, 77(9), pp. 10437-10453.
Ye, J., Ni, J. & Yi, Y., 2017. Deep learning Hierarchical Representations for image
Steganalysis. IEEE transactions on information forensics and security, 12(11), pp. 2545-
2557.

Mijash Rajthala 94 | P a g e
CS6PO5 Final Year Project

7. Appendix
7.1 Appendix I

3.1.1. Waterfall methodology


A waterfall is a process that happens in a certain order. It's also heavily reliant on
requirements. You must be confident of the project's needs before proceeding. There is
no turning back once a project is started. There are various stages to the Waterfall
method. Begin by collecting requirements, designing a solution, putting it into action, and
fixing any defects. This approach is self-contained; you must complete each step before
proceeding

to the next (Cohen, 2019).

Figure 60: Waterfall methodology

Mijash Rajthala 95 | P a g e
CS6PO5 Final Year Project

Figure 61: Water fall methodology

3.1.2 Incremental Prototyping

The name of the program implies that it is created incrementally. The software is broken
up into independent modules or modules with sporadic connections to one another.
These distinct components are currently being developed simultaneously. A final
prototype is created after the integration of all modules.

The software is finished faster since all the components are created and tested
simultaneously. However, since the modules may have been created by various teams,
it is possible that they won't be compatible with one another. But by properly planning the
software's whole development, this problem can be solved.

The advantages of prototyping metho are:

➢ Produces working software quickly and early in the software lifecycle.


➢ In this model, scope and requirements can be changed more easily - it is less
expensive to do so.
➢ A smaller iteration allows for easier testing and debugging.
➢ This model allows the customer to respond to each built.
➢ The initial delivery cost is reduced.

Mijash Rajthala 96 | P a g e
CS6PO5 Final Year Project

➢ Risk is easier to manage as risky pieces are identified and handled during the
iteration process.
3.1.3 Prototyping Methodology

Figure 62: Steps of prototyping model

Back to considered methodology

7.2 Appendix II

Mijash Rajthala 97 | P a g e
CS6PO5 Final Year Project

Pre-Survey responses

Figure 63: Survey responses

Mijash Rajthala 98 | P a g e
CS6PO5 Final Year Project

Figure 64: Survey responses

Mijash Rajthala 99 | P a g e
CS6PO5 Final Year Project

Figure 65: Survey responses

Mijash Rajthala 100 | P a g e


CS6PO5 Final Year Project

Figure 66: Survey responses

Mijash Rajthala 101 | P a g e


CS6PO5 Final Year Project

Figure 67: Survey responses

Mijash Rajthala 102 | P a g e


CS6PO5 Final Year Project

Figure 68: Survey responses

Mijash Rajthala 103 | P a g e


CS6PO5 Final Year Project

Figure 69: Survey responses

Back to Pre-survey

Mijash Rajthala 104 | P a g e


CS6PO5 Final Year Project

7.3 Appendix III


7.3.1 Post survey questions

Figure 70: Post survey questions

Mijash Rajthala 105 | P a g e


CS6PO5 Final Year Project

Figure 71 : Post survey questions 2

Figure 72: Post survey question 3

Mijash Rajthala 106 | P a g e


CS6PO5 Final Year Project

Figure 73: Post survey questions 4

Figure 74: Post survey questions 5

Post survey analysis

Mijash Rajthala 107 | P a g e


CS6PO5 Final Year Project

7.3.2 Post survey responses

Figure 75: Responses I

Figure 76: Responses II

Mijash Rajthala 108 | P a g e


CS6PO5 Final Year Project

Figure 77: Responses III

Figure 78: Responses IV

Mijash Rajthala 109 | P a g e


CS6PO5 Final Year Project

Figure 79: Responses V

Back to post survey analysis

7.4 Appendix IV
7.4.1 How I clustered

Mijash Rajthala 110 | P a g e


CS6PO5 Final Year Project

Mijash Rajthala 111 | P a g e


CS6PO5 Final Year Project

Mijash Rajthala 112 | P a g e


CS6PO5 Final Year Project

Worker node token

Mijash Rajthala 113 | P a g e


CS6PO5 Final Year Project

7.4.2 Appendix IV B

3.6 Resource Requirements:


The basic requirements to complete this project are as follows:

Computer

There will be requirement of a computer with at least 4 gigs RAM to run multiple
OS on the virtual box. Computer will also be required to install Docker and Kubernetes
on the prototype server. Even clusterization is done with the help of a computer.

Raspberry pi

Mijash Rajthala 114 | P a g e


CS6PO5 Final Year Project

Figure 80: Raspberry pi

This is required to be used as a server for the docker deployment. At least two of these
would be sufficient to run the docker containers smoothly.

Micro SD card

Figure 81: SD card

This will be required to install Raspbian OS on the raspberry.

SD Card reader

Mijash Rajthala 115 | P a g e


CS6PO5 Final Year Project

Figure 82: SD card reader

This will be needed to be used side by side with the SD card to install Kubernetes and
docker on the raspberry.

Power cable

Figure 83: USB cable

This will be needed for power supply to the raspberry pie.

Patch cable

Figure 84: Rj45 cable

Mijash Rajthala 116 | P a g e


CS6PO5 Final Year Project

It help as a physical link between raspberry pi and router to assign static IP address.

Router

Figure 85: Router

It provides Ip address to Raspberry PI.

3.7.1 Hardware Requirement


These are the hardware required to complete this project.
Table 1: Hardware Requirement

Mijash Rajthala 117 | P a g e


CS6PO5 Final Year Project

Computer There will be requirement of a computer with at least 4 gigs RAM


to run multiple OS on the virtual box. Computer will also be required
to install Docker and Kubernetes on the prototype server. Even
clusterization is done with the help of a computer.
Raspberry This is required to be used as a server for the docker deployment.

pie 3 B At least two of these would be sufficient to run the docker


containers smoothly.
model
SD card This will be required to install Kubernetes on the raspberry.
SD card This will be needed to be used side by side with the SD card to
install Kubernetes and docker on the raspberry.
reader
USB power This will be needed for power supply to the raspberry pie.

cable

3.7.2 Software requirement


These are the software required to complete this project.

Table 2: Software requirement

Virtual box This is the software where different OSes of Linux OSes will be
hosted.
Ubuntu iso This file is necessary to install ubuntu on virtual box.

file
Kali Linux This file is required to install Kali Linux on virtual box.

iso file
Raspbian This file is required to install Raspberry Pie on virtual box.

OS iso file
JavaScript This is needed to create our website.

Mijash Rajthala 118 | P a g e


CS6PO5 Final Year Project

Kubernetes This flavor of Kubernetes is installed as it is light and easy to be used


on a prototype server.
K3s
Docker This is needed to make pods or containers for the server.
Aws Ec2 This service is needed to host the website there in the cloud for
backup purpose.
instance
Gns3 This is necessary to show virtual network simulation for figures and
diagram purpose.
Browser This is needed for research and for downloading various software
tools.

Back to the report

Mijash Rajthala 119 | P a g e


CS6PO5 Final Year Project

7.5 Appendix V
7.5.1 Gantt chart

Figure 86: Gantt chart from proposal

Mijash Rajthala 120 | P a g e


CS6PO5 Final Year Project

Figure 87: Gantt chart from interim report

Mijash Rajthala 121 | P a g e


CS6PO5 Final Year Project

Figure 88: Gantt chart from final report

Mijash Rajthala 122 | P a g e


CS6PO5 Final Year Project

7.5.2 Work breakdown structure

Figure 89: Work breakdown structure

Mijash Rajthala 123 | P a g e


CS6PO5 Final Year Project

7.5.3 Milestones

Figure 90: Milestones

Mijash Rajthala 124 | P a g e


CS6PO5 Final Year Project

7.5.4 Use case diagrams

Mijash Rajthala 125 | P a g e


CS6PO5 Final Year Project

Figure 91: Use case diagram

Back to Design and development

7.6 Appendix VII


Plag check

Mijash Rajthala 126 | P a g e

You might also like