Kubernets: Why adopting it?
Kubernetes (k8s), is an open-source platform, pioneered by Google, which started as a simple container orchestration tool but has grown into a cloud-native platform.
Why “k8s” has become so widely used?
Because it is able to answer very well the common requests of quality of service designed by the cloud architects and checked by the operations.
They can be recapped as:
- Quick Development
Let’s see how every single point has been studied and designed by k8s developers:
1– Reliability to the IT environment means an architecture able to work even though a piece of it is no longer available. k8s have been created with a native cluster approach.
2– Scalability is needed to handle any peak workload. In other words, it is capable of responding to requests for new resources on demand.
The architectural model on which it is based is decoupling. Each individual component has its own characteristics and can be easily added to the k8s environment.
Through the configuration files, the various objects are authorized to communicate with each other.
The main components of the k8s architecture are the nodes, the components of the k8s services are the load balancers, name-spaces, and so on (see next articles)
3– Healing: K8s takes action to ensure that the current state match with the desiderate state of the architecture automatically.
4- Quick: K8s is able to deploy components very fast. In this way, it is possible to answer a request of managing overload and/or needs to deploy fast new services.
5- Efficiency is the ratio between the useful work and the total amount of energy used to get the result. K8s for his architecture has the best ratio because it has the essentiality in his DNA.
6- Security works closely with k8s.
a- The images run in the containers are by their definition immutable. This approach has a great advantage because:
–No changes are implemented at the system (container) level.
– Nothing can change the core of the service unless the entire image is deleted and redistributed.
Let’s compare this approach with a standard environment, where there is a Linux VM.
If we wanted to install, modify, update an application, we would have to act via apt-get on the necessary packages.
In this way, we will change the environment, opening a breach in the security field.
In K8s the image can’t be modified, it must be deleted and recreated.
b- Another big advantage is that configuration changes are managed through declarative files (configuration files). These files have a description of the final state of the system. The result is that they show the effect of the configuration before it is performed.
7- Agility means greater ease and efficiency in creating container images than using VM images. The developer can write code regardless compatibility issues.
8– Portability is standardizing the software development life cycle.
Note1: The first release of Kubernetes dates back to 2014 and was created to answer the need to implement a robust clustering solution for the container environment.
Take care and see you soon