What Is Kubernetes?
Kubernetes is basically a system designed specifically to manage containerized applications of distinct kinds across a cluster of nodes. It was designed to address the disconnect between the way in which the modern, clustered infrastructure is designed. Almost all cluster technologies strive hard to provide a platform that’s distinctive or application deployment.
Kubernetes Features
- Automated Scheduling
- Self-Healing Capabilities
- Automated rollouts & rollback
- Horizontal Scaling & Load Balancing
- Offers environment consistency for development, testing, and production
- Infrastructure is loosely coupled to each component can act as a separate unit
- Provides a higher density of resource utilization
- Offers enterprise-ready features
- Application-centric management
- Auto-scalable infrastructure
- You can create predictable infrastructure
Basics of Kubernetes
Cluster:
It is a collection of hosts(servers) that helps you to aggregate their available resources. That includes ram, CPU, ram, disk, and their devices into a usable pool.
Master:
The master is a collection of components which make up the control panel of Kubernetes. These components are used for all cluster decisions. It includes both scheduling and responding to cluster events.
Node:
It is a single host which is capable of running on a physical or virtual machine. A node should run both kube-proxy, minikube, and kubelet which are considered as a part of the cluster.
Namespace:
It is a logical cluster or environment. It is a widely used method which is used for scoping access or dividing a cluster.
Kubernetes Architecture
Master Node
The master node is the first and most vital component which is responsible for the management of Kubernetes cluster. It is the entry point for all kind of administrative tasks. There might be more than one master node in the cluster to check for fault tolerance.
The master node has various components like API Server, Controller Manager, Scheduler, and ETCD. Let see all of them.
API Server: The API server acts as an entry point for all the REST commands used for controlling the cluster.
Scheduler
The scheduler schedules the tasks to the slave node. It stores the resource usage information for every slave node. It is responsible for distributing the workload.
It also helps you to track how the working load is used on cluster nodes. It helps you to place the workload on resources which are available and accept the workload.
Etcd
Etcd components store configuration detail and wright values. It communicates with the most component to receive commands and work. It also manages network rules and port forwarding activity.
Worker/Slave nodes
Worker nodes are another essential component which contains all the required services to manage the networking between the containers, communicate with the master node, which allows you to assign resources to the scheduled containers.
- Kubelet: gets the configuration of a Pod from the API server and ensures that the described containers are up and running.
- Docker Container: Docker container runs on each of the worker nodes, which runs the configured pods
- Kube-proxy: Kube-proxy acts as a load balancer and network proxy to perform service on a single worker node
- Pods: A pod is a combination of single or multiple containers that logically run together on nodes
Video Tutorial
In the video below, Network Chuck takes you through some key concepts of Kubernetes and will give you an idea of how to run Kubernetes using a cloud provider (in this case Linode):
For more information on Kubernetes, be sure to check out their website. <=====