Kubernetes as a Service
Powerful & highly flexible
What is Kubernetes?
Kubernetes is an open source orchestration system, which makes it possible to automate the operation of Linux containers. It serves as a platform for provision, scaling and running of application containers via cluster and hosts. Multiple groups of hosts are taken into a cluster and Kubernetes supports their efficient administration. Thereby, it eliminates multiple manual processes, which are accompanied by containerised applications. Furthermore, it offers a high degree of availability as well as scalability and additionally it is extensively predictable. Kubernetes enables the administration of containerised applications over their entire lifecycle and users are able to decide themselves how to run applications and how these should interact with each other. Said applications can therefore run on the same computer without interfering with one another. This once more offers a higher degree of efficiency and greatly reduces costs, as there are less hardware requirements.
What are the advantages of Kubernetes for its users?
How to scale?
Naturally, in sight of growing product portfolios the software has to scale as well. Kubernetes makes scaling easier with aid of decoupled architectures. For such architectures every component is separated from other components via previously defined API’s and service load balancers. Therefore, the load balancers function as a buffer between the working instances, while the API’s function as a buffer between the implementer and the user. Since the components are decoupled through the load balancer, the size of the program can be increased effortlessly. This is done without adjustment or reconfiguration of other layers. In addition, Kubernetes allows for automated scaling next to the ordinary manual scaling. The manual scaling assumes that there is a sufficient amount of resources available at all times. If this is not the case, the cluster will have to be increased in size manually once more. This process is still simplified, because all machines within the cluster are identical and applications are taken off machines via the containers. To add new resources, all that is necessary is to create a new machine with given prerequisites.
Area of application – microservice architecture
In general, microservices are a design pattern, under which complex application software is comprised of independent processes. When building such architectures, multiple teams work on a single service, which can afterwards once again be used by other teams for the purpose of implementation. A connection of these services lastly offers integration for the entire product interface. Kubernetes supports the implementation of such microservice architecture with the aid of different API’s and abstractions. Like this, pods can connect the different containers of individual teams to a single disposable unit. The decoupling of these containers makes it possible for multiple microservices to coexist on the same underlying machine without interfering with one another. A direct consequence is the reduction in overhead and microservice architecture costs. Furthermore, Kubernetes hosting offers both load balancing as well as discovery, to isolate certain microservices from one another. To enhance the control of interactions between individual services, so-called namespaces offer additional isolation and access control. Thus, every microservice can decide on to what extend other services are able to interact with it.