One of the possible deployment virtualization layers is openstack private cloud, an open cloud platform providing IaaS and PaaS. It is a very popular tool for building private cloud. However, some companies, such as HP, eNovance or Rackspace, also provide public service cloud built on OpenStack.
OpenStack allows running virtual machines and the network, provides so-called security groups for creating firewall rules, supports multi-tasking, which is a software architecture where one cloud instance serves more than an organization / division / separate, etc. that are logically separated and have different settings authorizations, security policies, or resource constraints.
OpenStack consists of various components, some of which are necessary for its operation, and the others are optional. Component-based components deliver better scalability, each of which can run on one or more physical servers, the number of which can change during operation.
Each component is defined by the function it is supposed to perform and is assigned to the default openstack private cloud that performs this function. For specific purposes, it is possible to replace the default application with another one that performs the same function and better meets the requirements.
The main components needed to run OpenStack and their default applications are:
∙ Computational – Nova:
The most important component is the computing service that provides the environment for running virtual machines through hypervisors. It also provides security virtual machines and encrypted communication between them.
∙ Network – Neutron:
The network component provides virtual network infrastructure services such as administration networks, IP addresses, firewall rules, DHCP, DNS, or load balancing, etc. It also enables the integration of various SDN solutions that can handle all network functionality to deliver better performance than the default solution.
∙ Authorization – Keystone:
This is a shared service that provides authentication and authorization for access to individual OpenStack components. It also allows integration of various services for authentication.
∙ Access to disc images – Glance:
It offers disk image management typically with operating systems or applications for the computational component.
∙ Block storage – Cinder:
It allows you to create and manage disk storage compartments that can be connected to different instances of virtual machines.
∙ Object Storage – Swift:
It provides storage for static data, such as virtual disk images machines, files with backups, or multimedia content.
Other optional components include: web interface, database, queue messaging, orchestration, shared file systems, VNF management, telemetry, application catalog and many more.
Kubernetes is an open technology developed by Google for Automated deploying, scaling and managing application containers. This is a new project released in 2014, which has become very popular, which greatly supports its development. For the sake of simplicity, speed, scalability and efficiency of using hardware resources.
Kubernetes provides a complete platform to build a container-based cloud infrastructure. This delivers the high speed and flexibility required by the advantages of the containers. The architecture is very simple, it is shown in Fig. 3.9. Thanks to its simplicity, Kubernetes openstack private cloud can also serve as the basis for building more complex cloud platforms, such as OpenShift, Deis or Eldarion.
∙ Kubernetes master:
It is the main control node of the entire container infrastructure. Manages the running of all containers, running them, ending, and allocating system resources. Provides an application interface through which Kubelets communicate with users as well as external applications.
This is an agent running on every physical server where containers are run. Based on orders from Kubernetes master Kubelet performs operations over containers that run on a server under his authority. It also takes care of attaching the storage to the containers. They also monitor their status and pass the information to the masters.
∙ Container Running Environment:
Running environment is a technology that ensures the proper running of containers. Currently, the Docker platform is being used, but an experiment called RKT is also in experimental development.
A group of containers that together provide one user service or application is called Pod. Each container from Podu can host one or more parts of the application.
Future for openstack private cloud
Since Kubernetes is still a relatively new technology, its integration into existing infrastructures or replacing current technologies is still in active development. NFV functions are not an exception, there is an active work on creating VNFs that can be stably run in containers. One of the first functional examples can be a simple virtual router operating system called Open WRT, which has already experienced compatibility with containers.
Summary of Infrastructure Solutions
In this subchapter, representatives of both main solutions, OpenStack openstack private cloud for hypervisors and Kubernetes were presented as a container solution. Advantages of the hypervisor solution are mainly years of proven stability and safety. There is also the possibility of broad compatibility of operating systems.
In addition, there are already a number of platforms that have support for various applications and applications. The limitation of this solution is primarily the loss of performance that is caused by the higher operating efficiency of virtual machines. Higher overhead is also when handling virtual machines, for example when creating, starting and disabling or moving them.
Container solutions resolve problems with touch and fall in most cases and performance. Working with containers is very fast and can also scale very well against virtual machines. The potential of containers has only begun to emerge recently, and most of the technologies built on them are still under development.
This results in instability, security problems, or performance decline in some cases. For example, Docker has in some cases problems with the performance of file I / O operations on networked storage.
There are currently very few platforms built on containers that are ready to run in the production environment. There is still a problem with the compatibility of application and operating systems that need to be customized to the host system. Choosing the right solution depends on the specific cases used, the applications used, the security and the many other factors that need to be carefully considered when choosing a good openstack private cloud.
This chapter contains a practical example of designing a specific implementation of cloud data center software based on the NFV framework. It also illustrates the formula and pillar design for the Salt orchestrater, allowing three instances of the Avi Vantage virtual load balancer from Avi Networks on this cloud to serve as one VNF.