What is Kubernetes? Why should you use Kubernetes?


With the current era of explosive development of technology, having platforms and technologies for the construction of large-scale but time-saving software and applications will be an indispensable requirement in the future. now and future. Among them, Kubernetes is one of the open source platforms supporting Container application development that is gradually asserting its position. So, what is Kubernetes? Let's find out with Tino Group!

Learn about Kubernetes
What is Kubernetes?
Kubernetes is an open source technology platform that automates the management, scaling, and deployment of containerized applications. One of the most outstanding features is that Kubernetes has a large ecosystem with pre-developed service packages and tools for you to apply right away. Along with that, Kubernetes also has the ability to develop and scale rapidly.


Kubernetes in Greek means "navigator" or "pilot". And this Kubernetes "driver" was developed by a team of Google engineers based on more than 15 years of experience working with a huge workload in reality. This is also the technology behind the success of the Google Cloud service, and this internal software is called Borg. You can learn more about it here.

What can Kubernetes do?
Service discovery and load balancing - Discover service and ability to load balance
Kubernetes can expose container addresses using their DNS name or IP address. If there is too much traffic to the Container, Kubernetes automatically balances the load and distributes the traffic for a more stable deployment.

Storage orchestration – Storage orchestration capabilities
With Kubernetes, you have the choice to automatically store where, in a physical system, a public cloud, or any other form of storage.

Automated rollouts and rollbacks – Automated rollouts and rollbacks
You can set the state for each Container when using Kubernetes to replace the actual state to the state you desire at a controlled rate.

For example, you can delete an existing Container, create a new Container, and put all the resources into a new Container.

Automatic bin packing
By providing Kubernetes with a cluster node that Kubernetes can use for container tasks, and you tell Kubernetes how much ram the Kubernetes CPU can use; Kubernetes will automatically install nodes for optimal use of the resources you provide.


Self-healing - the ability to self-heal
Kubernetes will automatically restart failed Containers. In cases where you check and do not see those containers responding, Kubernetes will automatically replace or remove the Kubernetes Container. Then, Kubernetes will send information to the user when the Container has become available.

Secret and configuration management – ​​security and configuration management
With Kubernetes, you can store or manage highly secure information such as passwords, SSH keys or OAth tokens. You can deploy applications, update highly secure information without having to build or reconfigure Containers.

Why should you use Kubernetes?
To better understand the Container deployment technology - Kubernetes, we will go back in time to the previous 2 periods and compare to better understand why we should use Kubernetes!

Traditional Deployment – ​​traditional deployment
Virtualized Deployment – ​​deploying virtualization technology
Container Deployment – ​​deploying Container technology


Traditional Deployment – ​​traditional deployment
With this implementation, the application will run on physical machines and there is no resource allocation that makes the application take up the resources of other applications, leading to the inefficient performance of many other applications. .

To solve this, users will need to run the application on each physical machine. However, this solution is extremely expensive and not economically viable.

Virtualized Deployment – ​​deploying virtualization technology
With virtualization technology known to be very popular at the moment, this technology supports you to be able to run multiple virtual machines on 1 physical server. Applications will be better divided, not encroaching on each other's assets and increase security.

Virtualization technology will virtualize all resources and operating systems on the physical server . Therefore, each virtual server will not be lightweight.

Container Deployment – ​​deploying Container technology
Containers are like virtual machines with full components such as CPU, file system, memory, process space, etc. However, Containers share the operating system with each other between applications. So Containers are much lighter than virtual machines.

Not only stopping there, Kubernetes can also:

Containers can be moved and deployed across various operating system distributions between the Cloud and between operating systems.
Consistency in development and testing environments
Use resources in the most efficient way
Microservices applications are distributed and broken into many independent parts making them independent, easy to deploy, easy to manage; no need to run with a huge complex block.
To better understand this Container technology, we will learn the components in the Kubernetes cluster.

Components of a Kubernetes . cluster
When you deploy Kubernetes, you will get back a cluster and we will have components like in the image:


API server – kube-apiserver: The API server is a component of the Kubernetes control plane.
etcd (persistence store): this is the primary, high-availability store used as a backup for all cluster data.
Scheduler – kube-scheduler: controls and monitors newly created Pods but without a node, they will automatically assign a node to run.
Cloud controllermanager – kube-controller-manager: this is a control plane that is responsible for making the process run.
Controller manager – cloud-controller-manager: this is a controller developed specifically for the cloud.
Node Components : are the components of the node including: kubelet, kube-proxy, Container runtime.
At this point, Tino Group has provided you with a lot of knowledge so that you can understand what Kubernetes is, as well as why you should use Kubernetes to develop applications. Hopefully, these knowledge will help you in developing your programming career! Good luck on your chosen path!

The article has reference to content from: Kubernetes.io

Frequently asked questions about Kubernetes
What is Container Resource Monitoring?
Container Resource Monitoring – Monitors Container resources, this component has the function of recording time data about Containers in a central database and providing users with an interface to browse those data. You can learn more about Monitoring Resources in the official Kubernetes documentation.

What is Cluster-Level Logging?
Cluster-level Logging or Cluster-level logging . This component is responsible for recording the logs of the Clusters into a central log repository so that they can be easily searched by the search and web browsing interface.

Where to learn more about Kubernetes Nodes?
Node is one of the extremely important components of Kubernetes. If you want to learn more about how to manage and use Node most effectively, you can learn more about Node .

Where is the free Kubernetes online course?
Kubernetes is one of the core components of cloud native. So learning more about Kubernetes will make your cloud native development easier. Knowing the importance of Kubernetes, the Linux Foundation and its partners developed a free training and certification program for students!

To learn more about how to learn online for free and get a certificate for free, visit Kubernetes Training and Certification !

Address: 107 Dong Nai - Vietnam. - Email: services@cmt8.net - Phone: 18001119
Copyright © 2012 - BlogMe. All rights reserved