Skip to main content

Kubernetes - Quick Reference



Kubernetes (K8s) is a orchestration solution – It is also called Container Management Tool

Kubernetes written in GOLANG Language.

Kubernetes manifest with JSON and XYML code 

It is donate to CNCF by Google  --  (Cloud Native Computing Foundation)

 OCX, LXI Docker is used to create image of container

POD is a small logical unit.

Similar Applications: Kubernetes,  Apache Marathon,  Docker Swarm


VMware Hypervisor

ESXi – is a hypervisor that installs on a physical server (servers) without an operating system and allows you to run multiple operating systems on one host computer. Operating systems run on virtual machines that have their own virtual hardware.

What are the Challenges without Kubernetes?

Challenges without Kubernetes

Container cannot communicate each other

Auto-scaling is not possible

Container had to be managed and deployed carefully


Benefits with Kubernetes

K8s support hybrid cloud

It manages vertical (to increase the resources) and horizontal (to add more containers) Autoscaling 

Load-balance between the containers

Fault tolerance - k8s create a new POD if any POD fails.

Roll back to previous versions

Back execution


Docker has become the industry standard for containerization. 

A Docker container is made up of layers of images, binaries packed together into a single package. The base image contains the operating system of the container, which can be different from the OS of the host.

The OS of the container is in the form an image. This is not the full operating system as on the host, and the difference is that the image is just the file system and binaries for the OS while the full OS includes the file system, binaries, and the kernel.

Containers also serve as a great tool to implement micro service architecture, where each microservice is just a set of co-operating containers.

Pods are simply the smallest unit of execution in Kubernetes, consisting of one or more containers, each with one or more application and its binaries. When a Pod runs multiple containers, the containers are managed as a single entity and share the Pod's resources.

Nodes are the physical servers or VMs that comprise a Kubernetes Cluster.. 

No more than 5000 nodes. No more than 150000 total pods. No more than 300000 total containers.

256 Pods per node is a hard limit, you can reduce the number of Pods on a node. 

Each Node runs Pods and is managed by the Master. On a Node you can have multiple pods.

  1. Kubernetes communicate with POD only.
  2. POD communicate with container.
  3. Multiple node can be created in a cluster.
  4. Multiple POD can be created in a Node.
  5. Multiple containers can be created in a POD.
  6. Containers contain applications/microservices


Node is also called Worker
Master controls communicate with POD only. Master is a server where Kubernetes is installed.
Controller manager -- Control the process/services
etcd hold the information of POD/containers/resources. It stores metadata and status of cluster.
Kube scheduler takes the job for action, when user make request for the creation and management of PODs.
Kubelet controls the container and share the information to Control manager. It first gives the information to API server.
Kubeproxy provide an IP address to POD
The API server is a front-end and interacts directly with user.





Generally mobile networks are much slower that WAN networks and also WAN is slower than LAN. So if we are making multiple API calls in a LAN based application, the performance impact might not be as obvious, but if we do the same thing in a mobile app, the user experience will be degraded. User raise a request to API Gateway and it further connect to required microservices which increase the performance of application on the mobile.








 

Comments