Defined Kubernetes in Mohit Aneja’s words!!

  • What is Kubernetes?
    • Kubernetes is an open sourced platform for managing containers.
    • K8s is developed by Google but now it is managed by CNCF.
    • It is written in Go/Golang
    • It overcomes the docker challenges like managing networking, self healing and managing containers.
    • Maintains desired state of the application.
  • Why we need Kubernetes?
    • Highly scalable and manged application.
    • Speed of deployment. Deployments are quick and easy to manage.
    • It has the ability to respond over the changes, in seconds.
    • It has the ability to fast recover the application/pods who went in down state.
    • Most important, all of this complexity is not be managed by the user. It is all managed by Kubernetes and its components.
  • How Kubernetes works?
    • It has two main components.
      • Master
      • Node
    • Master: Master manages all the nodes under it and it has four components which can transform any ec2 into master node.
      1. API -Server/Kube: It is the only entry/exit point to communicate with master and its components and every components of master communicate itself connecting via api-server only.
      2. Controller Manager: It controls the controller who is responsible to keep all the checks updated like no of nodes are up and running and how many PODS are running for an application(which is specified in the YAMLs)
      3. Cluster Storage: it is also be called as etcd which stores all the value of all the resources and backup strategy should be always be implemented for this.
      4. Scheduler: It keeps watching the API server and schedule all the resources accordingly. It is responsible for the assignment of work to nodes/workers.
    • Node: This is also called as workloads/minions, they are the ones where PODS and its respective containers will run and serve the application. it has the following components.
      1. Kubelet: It is the most important kubernetes agent which help to register node with cluster.It helps to instantiates the pods in the respective nodes mentioned in YAMLs. Exposed on port 10255.
      2. Container Engine: Which helps to run a container like pulling images and executing respective commands.
      3. Kube Proxy: Responsible for assigning an IP to PODs and all the pods can communicate via all registered nodes under master.
  • What is POD?
    • POD is the most basic unit of worker.
    • Atomic Unit of scheduling.
    • It can have more than one container.
    • Kubernetes manages PODs like VMware manages VMs and docker manages its containers.
    • Last but not least, we cannot ever redeployed a POD but can get a similar pod in k8s.