Kubernetes From Scratch

Kubernetes 

What is Kubernetes? 

Kubernetes is an open source orchestration tool developed by Google for managing microservices or containerized applications across a distributed cluster of nodes. 

Kubernetes provides highly resilient infrastructure with zero downtime deployment capabilities, automatic rollback, scaling, and self-healing of containers (which consists of auto-placement, auto-restart, auto-replication, and scaling of containers on the basis of CPU usage). 

Kubernetes created from Borg & Omega projects by google as they use it to orchestrate they data center since 2003. 

Google open-sourced Kubernetes at 2014.

What is Orchestration Do?

  • Configuring and scheduling of containers.
  • Provisioning and deployments of containers.
  • High Availability of containers.
  • Configuration of the applications that run in containers.
  • Scaling of containers to equally balance the application workloads across infrastructure.
  • Allocation of HW resources between containers.
  • Load balancing, traffic routing and service discovery of containers.
  • Health monitoring of containers.
  • Securing the interactions between containers.

Famous Container Orchestrator

  • Docker Swarm
  • Mesos (Mesos Sphere)
  • Normand
  • Cloud Foundry
  • Cattel
  • Cloud (Azure, Amazon, Google, Alibaba, IBM)

Kubernetes Components and Architecture

  • K8s Master Node: the master server that will create the cluster and it has all the components and service that manage, plan, schedule and monitor all the worker nodes.
  • Worker Node: the server that has host the applications as Pods and containers. 
  • Can make more than master server to make HA for the K8s components 



Kubernetes Master Node Components

Below are the main components on the master node:

API server – is the primary management components of kubernetes and is responsible
for orchestrating all operations (scaling, updates, and so on) in the cluster. It also acts as
the gateway to the cluster, so the API server must be accessible by clients from outside
the cluster integration with CLI and GUI.

Controller-manager - The Controller Manager is the engine that runs the core control
loops, create Pods, watches the state of the cluster, and makes changes to drive status
toward the desired state.

Replication-Controller - A ReplicationController ensures that a specified number of pod
replicas are running at any one time. It makes sure that a pod is always up and available.

Node Controller - The node controller is a Kubernetes master component which
manages various aspects of nodes.

Scheduler - is identify the right node to place a container on based resource limitations
or guarantees, taints, tolerations and affinity/anti-affinity roles.

etcd cluster - etcd is a critical part of the Kubernetes. etcd database that stores the state
of the cluster, including node and workload information in a key/value format.

Add-ons:

DNS: all Kubernetes clusters should have cluster DNS to resolve name of the containers
inside master node as all the above components is containers inside master node

Web UI: web-based UI for Kubernetes clusters. It allows users to manage and
troubleshoot applications running in the cluster, as well as the cluster itself.

Container runtime: The container runtime is the software that is responsible for running
containers. Kubernetes supports several container runtimes: Docker , containerd , CRI-O


















Comments

Popular posts from this blog

What is Microsoft SharePoint ?

General Cybersecurity

Well-Architected Framework | Solution Architect