Kubernetes: Introduction and Components
The name Kubernetes comes from a Greek word, the word means helmsman or vessel pilot.
Useful to solve problem of-
· Monolith application.
· VM and clouds are expensive.
· With advent of microservice , monolith has obsolete.
· Job scheduling
· Load balancing
· Fault tolerance
Kubernetes uses containers. Kubernetes host applications running in container.
Multiple containers can run on same os. Application and dependencies are placed in their own container.
Deployment and installation of container orchestrator can be performed on many types of infrastructures. A very popular model is installing Kubernetes on infrastructure as a service solutions like Amazon Web Services, Google, or Azure.
Kubernetes features to support container orchestration-
· Fault tolerance( back up of container)
· Bin packaging to maximize resource utilisation
· Dynamically adding clusters
· Automatic recovery and roll-back.
. Storage for containers
CNCF ;Cloud Native Computing Foundation is about as close as we can get to a vendor for Kubernetes. It is a community. For Kubernetes, CNCF offerings include licensing and proper use, scanning for any proprietary code, marketing and conferences, legal guidance, and certification standards. The CNCF hosts other projects besides Kubernetes such as Prometheus.
Kubectl- The Kubernetes command-line tool, kubectl, allows you to run commands against Kubernetes clusters. You can use kubectl to deploy applications, inspect and manage cluster resources, and view logs.
Master Node- Master node provides connection to the user which includes dashboard, cli, api.
For redundancy replica of master node is created. Master note runs the four components controller API server and the key store. ( ETCD).
API server receives rest calls from users. It does all administrative jobs. It also interacts with Etcd to get state of clusters. Etcd Also gives state of clusters.
The controller component manages the state of the Kubernetes cluster and the currently running pods. The controller manages a configuration called a deployment. So every application is deployed to Kubernetes, using a deployment. A pod is a group of one or more containers. Everything in Kubernetes, interestingly enough, runs as a Pod. So deployments, replicas all run as pods.
Pod is a group of containers. Controller acts when pot goes down and recreates it controller also takes care of balancing load.
worker nodes also have four components. The container run time, the kubelet, kube-proxy, and plug-ins for the DNS dashboard, cluster monitoring and cluster logging.
More info about components-