- Views: 9
- Report Article
- Articles
- Reference & Education
- Online Education
Basic concepts of Kubernetes
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
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.