If you spent the last six years lost in the interstellar void between Jaglan and the Axel nebula, maybe you have never heard of Kubernetes. Otherwise, chances are you have at least basic knowledge of this container orchestration system. It offers a lot of feature to deploy services on pods, hosted on nodes which, then, are managed by the control plane and the kube API server.
k8s -> kubernetes ( Starts with K ends with s and have 8 alphabets between it ) That’s why “k8s” .
The Ship -> container , controller -> k8s Kubernetes: Kubernetes is software that automatically manages, scales, and maintains multi-container workloads in desired states
Configuration Management : At runtime , no changes can be made to any other app . If u want to make changes to any other application then you have current application will go down and other will come up !
Immutability : Cant make changes to the current or working application
Package Managers : One for py2 and py3 other ,came Containers !
Managing containers :
Monolithic Applications : a website have frontend , backend , networking component , chat message , data base ……It’s a bundle application means it contains all this features in a bundle !! if you want to scale frontend part to ten servers then u have to update backend and others too!
Thats the drawback of this working , Then come into the picture !->
Microservices : Instead of deploying as bundles all are default as individual .. Changes and scaling would be made individually !!
Lack of package managing is solved by docker now ..
Fault Isolation :
Orchastrators : An orchestration layer steps in when multiple API services need to be coordinated. It adds the ability to manage data formating between separate services, where requests and responses need to be split, merged or routed.
Helps us in managing and deploying apps dynamically !(means multiple user are working on that app and you update or scale then its catchable to them and is efficient too !)
Zero Downtimes updates
These are all features of cloud native application tooo !
Like a orchastra the one who guides with a stick to the performer is the orchastrator / k8s and the performers are microservices !
Cloud Native VS Cloud
Cloud native are those which can follow those four modern day demands !and main part , Application that can run on top of Kuberenetes are cloud native application !
You can’t run containers directly , you need some shedulers which k8s provide to the containers !
Kubernetes >>>>> Orchastrators !
Run it on ur own cloud
Migrate it !
Store password using Secrets
Docker Vs Kubernetes
While Docker is a container runtime, Kubernetes is a platform for running and managing containers from many container runtimes. Kubernetes supports numerous container runtimes including Docker, containerd, CRI-O, and any implementation of the Kubernetes CRI (Container Runtime Interface).
K8s is good , best whatever you like to say by seeing these components and other stuffs but the best part about it that infact of having this much of components and other stuffs , it maintains abstraction at its peak !
You can know what it does , but How …… Its a mystery !
K8s Cluster : Control Plane + Nodes ! (Now what the hell are those)
Now Nodes are those VM’s and Control Plane is the master plane
Control Node and worker node ! Individually you can see these nodes as servers !
Worker Node is the place where your application would be running and Control plane is going to control these worker nodes or we can say as it is controlling these servers
Kubectl: Kubectl is a command line tool used to run commands against Kubernetes clusters.
Kubectl simply passes the commands or tell the Control plane like hey control plane I want to start 8 servers , so kubectl will tell control plane that which worker node is empty and will allot you to run those 8 containers wherever it is possible
You can control it by two ways :
1> Declarative 2> Imperative
Declarative way is in which we give kubectl with some manifest files like YAML files and on the basis of that it takes action whereas the imperative one is the one in which we contact through some commands !