In this thesis, we briefly present the two most common types of server virtualization currently used in the IT industry. We then detail operating system virtualization and containers, which have become very popular in recent years as enterprises adopt microservice architectures to develop applications.
Enterprises also need systems for their applications that provide fault tolerance and high availability, which inspired us to implement such a system in the lab environment.
These two characteristics are provided to containers with the Kubernetes orchestration platform, which is also the focus of this work.
Based on the provided solutions we present the design and implementation of a fault-tolerant and highly available self-hosted Kubernetes cluster. We roughly describe the development of a simple web application deployed together with the database in our cluster. We also introduce the platforms Portworx and
Longhorn, which are software-defined storage solutions for containers.
Both solutions were used in our Kubernetes cluster to provide persistent storage to our database.
In the end, we present the best storage solution based on the results of performance and reliability tests of the Kubernetes cluster and also evaluate its suitability for running in production environments.
|