Directory Image
This website uses cookies to improve user experience. By using our website you consent to all cookies in accordance with our Privacy Policy.

Basic concepts of Kubernetes

Author: Epaenetu Peruka
by Epaenetu Peruka
Posted: Apr 18, 2020

What is Kubernetes

Kubernetes is a container orchestration system that manages your container effectively. It is arguably the most crucial container management technology in the world and used a lot in a real production environment where you have many containers to manage.

It's essential from the scalability perspective and also to manage your resources effectively. Even though it's not from Google, Its origin is. It's created as an open-source by engineers who work on a similar tool in Google. You can understand that if it can work on the scale of Google, it's definitely well tried and tested.

What Kubernetes do

Imagine you've an application which has multiple services and each of these services configured in a very container. Let assume those two services as Service A and Service B. Also, Service A use Service B to get done some works. So, we can represent service dependency as follows.

When high availability required, then we must scale the machine so that each service have a copy of a unique and run these copy in another node( separate physical/ virtual machine).

Here, load balancer used to distribute force between servers. In this method, single point failure handled by routing traffic to other node if one node is getting down.

In lager system which has plenty of nodes and services, hardware utilization might be not efficient since every one of service requires different hardware requirements. Therefore hardwiring services right into a specific node is not that efficient. Kubernetes provide an elegant way to fix this resource utilization issues by orchestrating container services in multiple nodes.

Kubernetes cluster maintains by the master including scheduling applications, maintaining applications’ desired state, scaling applications, and rolling out new updates. A node is just a VM or a physical computer that serves as a worker machine in a Kubernetes cluster. Node and master communicate with one another through the Kubernetes API. A Kubernetes pod is a small grouping of containers which are deployed together on a single host.

Pod

A pod is a collection of containers and the unit of deployment in Kubernetes cluster. All the pod having its own IP address. Meaning, each containers in exactly the same pod have same IP address so that they'll find one another with localhost.

Services

Since pods are dynamically changing, it is hard to reference individual pod. Services providing an abstraction over Pods and provide an addressable method of communicating with pods.

Ingress

The majority of the time pods and services are encapsulated in inside the Kubernetes cluster so that external client cannot call these servers. An Ingress is a collection of rules that allow inbound connections to attain the cluster services.

Docker

A Docker Daemon is running in each node to pull images from the Docker registry and runt it.

Kubelet

Kubelet is the node agent that runs periodically to checks the health of the containers in a pods. API server sends instruction that required to operate containers and kubelet make certain containers in desired state.

Kube-proxy

Kube-proxy distribute force to the pods. Load distribution predicated on either iptable rules or round robin method.

Deployment

The deployment is what you use to describes your preferred state to Kubernetes.

Features of Kubernetes

Kubernetes provide multiple features so that application deployer can quickly deploy and maintain the entire system.

  • Control replication

This component allows maintaining how many replicated pods that want to help keep in Kubernetes cluster.

  • Resource Monitoring

Health and the performance of the cluster can be measure by using add ons such as for instance Heapster. This can collect the metrics from the cluster and save stats in InfluxDB. Data can be visualized by using Grafana which can be ideal UI to analyze these data.

  • Horizontal auto scaling

Heapster data also useful when scaling the machine when high load makes the system. Amount of pods can be increase or decrease according force of the system.

  • Collecting logs

Collecting log is very important to check the status of the containers. Fluentd used along side Elastic Search and Kibana to see the logs from the containers.

For more details about Docker and Kubernetes online course CLICK HERE

Contact us for more details +919989971070 or visit us www.visualpath.in

About the Author

Visualpath training institute is offering one of the best AWS Training by highly experienced and certified professionals with real-time projects. For more information Contact us@+919989971070.

Rate this Article
Leave a Comment
Author Thumbnail
I Agree:
Comment 
Pictures
Author: Epaenetu Peruka

Epaenetu Peruka

Member since: Jul 19, 2019
Published articles: 12

Related Articles