You are on page 1of 4

What is kubernetes

• Is a open source container management tool(orchestartion) which automates container


deployment, container scaling and container load balancing

• It is Google developed product(brain child of Google) written in go language and donated to


CNCF (cloud native computing foundation)

Features of kubernetes

• 1.Automatic Binpacking: is basically kubernetes packages your application and automatically


places containers based on their requirements and the resources that are available

• 2. Services discovery and load balancing : automatically assign containers their own IP address
and probably a single DNS name for a set of containers which are performing a logical operation
and of course there will be load balancing across them

• 3. storage orchestration: you can automatically mount your storage system of your choice you
can choose that to be either a local storage or may be on a public cloud provider such as DCP
AWS or even on a network storage system such as NFS

• 4. Self-healing: whenever kubernetes realizes that one of your container has failed then it will
restart the container on hit own right and we create a new container in place of crashed one
and in case your node itself fails then what kubernetes will do in that case is whatever
containers running in failed node those container would be started in another node

• 5. Batch execution: along with services kubernetes can also manage your batch and CI workload
which is same as devops role.

• 6. Secret and configuration management: concept of where you can deploy and update your
secrets and application configuration without having to rebuild your entire image and without
having to expose your secrets in your stack configuration or anything so if you want to deploy in
a bit your secrets only that can be done so its not available with other tools

• 7. Horizontal scaling: you can scale your applications up and down with simple command that
can run on command

• 8. Automatic rollbacks and rollouts: when ever there is update in your application which you
want to release kuernetes progressively rolls out these changes and updates to the application
or its configuration by this ensuring that one instance after the other is sent these updates and it
makes sure that not all instances are updated at same time thus ensuring yes there is high
availability even if something goes wrong then the kubernetes will roll back that change for
Kubernetes architecture

Master node:

• Responsible for managing the kubernetes cluster

• It is the entry pint for all administrative tasks

• Can be more than one master node in the cluster for faulty tolerance purpose

• Only one of them will be a leader doing all the actions other master node would follow them

• Kubernetes used etcd all the master nodes connected to it, etcd is a distributed key value store.

Components of master node

• API server

• Scheduler

• Controller manager

• Etcd

• API server: all the administrative tasks are performed via the API server within the master node
a user sends the rest commands to the API server which then validates and processes the
request after executing the request the resulting state of the cluster is stored in the distributed
key value store

• Scheduler :schedules the work to different worker nodes the scheduler has the resource usage
information for each worker node and also known about the constraints that the users may
have said before scheduling the work the scheduler also takes into account quality of service
requirements ,data locality ,affinity and many other such parameters and then scheduler
schedules the work in terms of pods and services.

• Controller manager: manages different non terminating control loops which regulates the state
of kuberbetes .

• Now each of control loops known about their desired state of the object it manages and then
they watch their current state through the API server now in a control loop if the current state
of the object it manages does not meet the desired state then the control loop itself takes the
corrective steps to make sure that the current state is same as desired state

• ETCD: used to store cluster state so either it should be part of kubernetes master or you can
configure it externally

WORKER NODE

• Is a machine, physical server, virtual machine which runs the applications using pods and is
controlled by the master node

• Pods are scheduled on the worker node which have necessary tools to run and connect them
pod is basically a scheduling unit in kuberbetes it is logical connection of one are more
containers which was always schedule together and to access the applications from external
world we have to connect the worker node and the master node

Components of worker node

Kublet: is an agent which runs on each worker node communicates with the master node, it receives the
pod definition while radius mean and runs the container associated with that pod

Kublet connects to the container runtime using the container runtime interface which consists of various
protocol buffers GRPC APIs and libraries

Kube proxy: is the network proxy which runs on each worker node and then listens to API server for
each service point creation or deletion so foe each service point kube proxy sets the rote that it can
react to it

Container runtime: can run and manage a continuous life cycle on the worker

ETCD
To store cluster state , is a distributed cluster store based on the raft consensus algorithm this allows
collection of machines to work as a coherent group that can survive the failure of some of its members,
one of them in group will be master and others slave

kubernetes Vs Docker

You might also like