- Performance evaluation of a single Kubernetes cluster across multiple cloud regions
Kubernetes is an opensource container orchestration platform for automating application deployment, scaling, management. It enables containerization
and deployment within clouds infrastructure. It introduces the concept of pods which is a group of one or more containers such as Docker containers within a shared network. Kubernetes follows master/slave architecture. A Kubernetes cluster consists of a master and worker nodes. Each pod runs on a worker node in a kubernetes cluster.
One issue is to resolve geographical seperation or workloads, still keeping it easily maintained and managed, Which is usually done using federated solutions. We want to use wireguard vpn to tunnel master and worker nodes(at any project in openstack or in any geographical region) and test the performance of this wireguard vpn and compare it.The scenarios we are going to compare are.
1. Regular K8s deployment :
- master and worker nodes as Virtual machines within single shared network.
2.Single region deployment across different projects :
- Worker nodes as vms in different projects.
- Each project has its own virtual network.
- All worker nodes connected as a single cluster using wireguard.
3.Multi region Deployment :
worker nodes as VMs in different projects
- Each project has its own virtual network located in different regions.
- All projects and regions connect as a single cluster with Wireguard.
The goal of the project is
- To test the performance of wireguard vpn and compare it with a regular deployment
- To have a validated deployment script for deploying a single Kubernetes cluster in multiple regions interconnected using Wireguard.
- To produce a report comparing regular web performance between a single local Kubernetes cluster vs, a multi-region cluster.
- Designing and setting up kubernetes environment in openstack.
- Create a git repository for each scenario.
- create a suitable test container with suitable workload tests.
- Write deployment scripts for three scenarios using ansible.
- Deploy a single kubernetes cluster in single cloud region within single shared networks
- Deploy a single kubernetes cluster with worker nodes across different projects
in single cloud region connected with wireguard vpn.
- Deploy a single kubernetes cluster with worker nodes across multiple cloud regions and
in different projects and connected using wireguard vpn.
- verify the container movement in each scenario.
- Evaluate the performance in each scenario.
- Be able to access Horizon Dashboard to Create Virtual machines and other resources
- Able to access different regions to create a multi region network(atleast 3).
- Able to create Virtual machines and assign RAM, Cores, Volume size to it.
- Able to create Routers, Network, Security groups, floating ip, LoadBalancer for instances.
- Able to add keypairs for passswordless authentication.
- Ability to scale the resources whenever needed.
- Able to be accountable for the resources used.
- Area: Cloud infrastructure
- Focus: Kubernetes and wireguard
- sources: github repository
- testing: citycloud vms.
- Virtual servers: Provided by CityNetwork and CityCloud.
- Identify similar projects is underway or being proposed in Nordix or upstream projects
- Identify any specific development be staged with respect to the upstream project and releases.
- EDIT THE CALENDAR
Customise the different types of events you'd like to manage in this calendar.#legIndex/#totalLegs
- RESTRICT THE CALENDAR
Optionally, restrict who can view or add events to the team calendar.#legIndex/#totalLegs
- SHARE WITH YOUR TEAM
Grab the calendar's URL and email it to your team, or paste it on a page to embed the calendar.#legIndex/#totalLegs
- ADD AN EVENT
The calendar is ready to go! Click any day on the calendar to add an event or use the Add event button.#legIndex/#totalLegs
Subscribe to calendars using your favourite calendar client.#legIndex/#totalLegs
University: Blekinge Institute of Technology
Dr. Patrik Arlos
Industry Partner: CityNetwork
Kim Hindart Vida Ahmadi
Research External Supervisor
- Pavan Gunda https://www.linkedin.com/in/pavan-gunda-6b8140139/
- Sri Datta Voleti https://www.linkedin.com/in/sri-voleti-019b22130/
|Date||Time||Events And Notes||Summary|
|10:00 to 11:00||Introduction meeting||Introduction to thesis work,|
|10:00 to 11:00||Introduction to organization||Introduced partners and colleagues in the organization|
|10:00 to 11:00||Stand-up meeting||Meeting with partner, to decide how to start the work|
|11:00 to 12:00||Meeting with supervisor||Meeting with Patrik Arlos regarding thesis proposal and Background work.|
|10:00 to 11:00||Stand-up meeting||Assigning the tasks and setup a Time Plan|
|10:00 to 11:00||Stand-up meeting||Discussed progress of assigned tasks and any improvements to the work|
|10:00 to 11:00||City Network meeting||Meeting with Vida Ahmadi regarding work at office and Communication through slack.|
|10:00 to 11:00||Stand-up meeting||Discussed progress of assigned tasks and Progress in finding the Research Background.|
|10:00 to 11:00||City Network meeting|
Meeting with Vida Ahmadi . Discussion on Methods to Deploy a Kubernetes Cluster.
|11:00 to 12:00||Team Dynamics|
Meeting with Daniel, To Improve the work ethics and Team Dynamics. Discussed the importance of individual needs and team needs.
|10:00 to 11:00||City Network meeting|
Meeting with Vida Ahmadi Where we Discussed the Issues of Exposing an application through LoadBalancer service.
|10:00 to 11:00||Meeting with supervisor||Meeting With Patrik. Discussion on the Network Architecture And Firewall Rules. Made Sure We are on the same page.|
|02:00 to 03:00||Meeting with Kim||Interaction with Other Colleagues and Discussion and Improvements of Work Culture.|
|10:00 to 11:00||City Network meeting||Meeting With Stefano Chuchiella. Discussion on Using Octavia For Exposing the Application.|
|10:00 to 11:00||City Network meeting||Meeting With Vida. We Were given a task to document the work so Far and Make sure all the team Members and Supervisors are on the same Page.|
|How to handle authentication and tokens||Normal||Completed|
|How to handle vm's and input commands to the vm's||Normal||Completed|
|How to create and handle vm's using ssh||High||Completed|
|Creation of Project, Network, Security Groups, Router||High||Completed|
|Install and handle openstack client||Normal||Completedfirstname.lastname@example.org|
|What are the methods to deploy a kubernetes cluster in openstack||High||Completed|
|How to Deploy a kubernetes cluster using kubeadm and ansible||High||Completed|
|How to deploy a kubernetes cluster using RKE and rancher||High||Completed|
|Compare the methods and find the best possible implementation||High||Completed|
|How to set up pod overlay network using flannel for pod to pod communication||High||Completed|
|How to set up ingress and LoadBalancer to expose an application||High||Completed|
|What are the ways to expose an application to the internet||Normal||Completed|
|what is wireguard||High||Completed|
|Deploy a wireguard cluster to verify its working||High||Ongoing|
|Deploy ingress controller on the wireguard cluster||High||Ongoing|