About Kubernetes

by:

Uncategorized

Fundamentally, Kubernetes is about taking a bunch of virtual machines (or physical machines, virtual machines are mostly about cloud) and transforming them into unified API Service that a developer can interact with and orchestrate an application without thinking of machines that lie below. Kubernetes API presents a bunch of different pieces,  the core ones are :

  • Cluster – a building block of Kubernetes architecture. Cluster is made up of Nodes, each Node represent a single compute host (virtual or physical machine). Each Cluster consists of multiple worker nodes that deploy, run and manage containerized applications and one master node that controls and monitors the worker nodes. Each worker node includes the tool that is being used to manage the containers – such as Docker – and a software agent called a Kubelet that receives and executes orders from the master node.
  • Pods– a collection of containers collocated on a single machine. Pod is known as the unit of scalability in Kubernetes : the smallest logical unit that can be deployed into a Kubernetes cluster
  • Service – load balancer that can bring traffic down to collection of pods
  • Deployment (which under the hood uses Replica Set) – used for replicating a container multiple times

User interacting with Kubernetes use kubectl command line tool.

Suppose that there is docker image based on a simple web app. To run an application on the Kubernetes API, a Kubernetes Pod must be created. To do that, a Deployment has to be created. Deploying containers based on images is created using *.yaml file (kubectl apply *.yaml , it sends *.yaml file through to the API server). In the wake it creates some number of pods (defined in *.yaml) in the Kubernetes API, which will result in the scheduler placing defined number of containers (virtual machines) on the host machines.

Leave a Reply

Your email address will not be published. Required fields are marked *