Monday, June 10, 2019

Kubernetes Introduction



Kubernetes is an open source platform for automating the deployment, scaling, and management of containerized applications and services. It was developed in response to the challenges of deploying and managing large fleets of containers at Google, which open sourced the project and donated it to the Cloud Native Computing Foundation (CNCF). That foundation fosters the cloud native computing ecosystem. Kubernetes was the first graduated project for CNCF, and it became one of the fastest growing open source projects in history. Kubernetes now has more than 2,300 contributors and has been widely adopted by companies large and small, including half of the Fortune 100.

1) Kubernetes is a production-ready, open source platform designed with Google's accumulated experience in container orchestration,

With modern web services, users expect applications to be available 24/7, and developers expect to deploy new versions of those applications several times a day.
Containerization helps package software to serve these goals, enabling applications to be released and updated in an easy and fast way without downtime.
Kubernetes helps you make sure those containerized applications run where and when you want,
and helps them find the resources and tools they need to work.

2) One can say Kubernetes is a Multi Container management solution
3) Kubernetes gives containers their own IP addresses and a single DNS name for a set of containers, and can load-balance across them.
4) Automatically mount the storage system of your choice, whether from local storage, a public cloud provider such as GCP or AWS or a network storage system
5) Kubernetes progressively rolls out changes to your application or its configuration,
   while monitoring application health to ensure it doesn’t kill all your instances at the same time
6) If something goes wrong, Kubernetes will rollback the change for you
7) In addition to services, Kubernetes can manage your batch and CI workloads, replacing containers that fail, if desired.
8) It Automatically places containers based on their resource requirements and other constraints,
9) It Restarts containers that fail, replaces and reschedules containers when nodes die, kills containers that don’t respond to your user-defined health check,
10) Deploy and update secrets and application configuration without rebuilding your image and without exposing secrets in your stack configuration.

Kubernetes is cluster orchestration system.
Kubernetes coordinates a highly available cluster of computers that are connected to work as a single unit.
Kubernetes allow you to deploy containerized applications to a cluster without tying them specifically to individual machines.
Kubernetes automates the distribution and scheduling of application containers across a cluster in a more efficient way.
Kubernetes is an open-source platform and is production-ready.

-> A Kubernetes cluster consists of two types of resources:
Master: The Master coordinates or manage the cluster
Node: Nodes are the workers that run applications.

-> The master coordinates all activities in your cluster:
- Scheduling applications
- Maintaining applications' desired state,
- Scaling applications
- Rolling out new updates.

-> A Pod represents a unit of deployment: a single instance of an application in Kubernetes, which might consist
of either a single container or a small number of containers that are tightly coupled and that share resources.

No comments:

Post a Comment

Scrum and Scrum master

Scrum  Scrum is a framework which helps a team to work together.  It is like a rugby team (the scrum name comes from rugby game). Scrum enco...