Introduction to kubernetes.
This article focus mainly on the use and importance of kubernetes in modern day software development life cycle operations.
Table of contents
No headings in the article.
Kubernetes is tool widely use by cloud and devops engineers to manage containerized applications.
What are containerized applications? In a simple form,containerized applications are applications where the components or services that make up these applications are deployed into different containers for the purpose of seamless management. Let's take an example using Netflix that is widely used by millions of people around the world. Netflix make use of containers to deploy services to different locations to ensure consumers have quality experience another major use case is google. Matter of fact, it is well known that google engineers created the Kubernetes orchestration tool after adopting the Borg(google preferred orchestration tool used by google it self to manage containerized applications) method.Surely it will be difficult to maintain the application running in just one particular server because of its heavyweight nature why not create containers that will serve or be deployed to different locations. Doing this,engineers will achieve;
- A low tendancy of application downtime.
- Reduce wastage of storage device which saves cost.
Lightweight in nature,making reboot time very fast.
Before the implementation of Kubernetes ,applications were running through the process of virtualization. What is virtualization?
Virtualization is a situation where multiple applications can work with other resources and environments of a physical computer.More like creating a virtual instance on a guest operating system where applications can run.Examples softwares used for virtualization are VMWare, Oracle virtual box etc. These softwares are best known as HyperVisors. Here are some of the disadvantages that made engineers move to containerization.
- You cannot minimize cost when using Virtualizaton.
- Division of hardware resources of host machine.
- Reboot time takes long.
- loads of backlogs.
These are very few reasons why engineers switched to containerization.
Kubernetes is not a containerization tool but rather a container orchestration tool. orchestration simply means arrangement,planning or cordination of a situation to produce a desired effect. Containers on the other hand are seen or known as carriage for a full application broken down into microservices. See Microservices as pieces that makes a puzzle and the image that comes out after the pieces of puzzles are put together is the application while the pieces that make the image are containers. Each container carries a micro-service that makes up the application. The most popular or widely used containerization tool is the famous Docker. Docker is a cont- ainer runtime interface used as a carriage for application micro-services. It is a perequisite of Kubernetes,which technically means that for kubernetes to carry out tasks as a container orchestration tool it needs containers and thats where docker comes in.
Features of Kubernetes
Automation at its best; In terms of load balancing,storage optimization or orchestration and horizontal scaling.
Rollouts changes to applications or configuration made by developers without having a downtime or killing virtual- instances of the application.
Automatically place containers based on their resources requirements and other constraint.
Manage and Execute continuous intergration workloads.
Allocation of ip addresses to services.
self healing service,restarts containers when they fail, nodes when they die and killl containers when they don't respond to the predefined health check.
Thats all on the introduction of Kubernetes as a container orchestration tool please keep in touch for more updates on this particular topic. Thank you for reading be kind to drop a like if you find this interesting.
For more information about kubernetes visit spacelift.io/blog/kubernetes-tutorial