Kubernetes in simple terms can be understood as an open source software that helps in automating the deployments and management of the containerised applications.
Basic Building Blocks of Kubernetes
A Pod can be understood as a combination of one or more containers. It provides a IP , memory and manages how the underlying containers should function. Pods are also the smallest unit(or Smallest Deployable unit)in Kubernetes.
As mentioned earlier Pods are the smallest unit in Kubernetes. Pods do not provide any sort of fault tolerance on its own. if a pod is destroyed Kubernetes won’t take any redeploy mechanism unless controllers like ReplicaSet is attached to it. As its name suggest the role of ReplicaSet is to ensure that at any given time the number of pods (or replica of pods) should match the config provided. In a way ReplicaSet ensures scalability of the pods in kubernetes.
Deployment in Kubernetes doesn’t always mean releasing a new state of application. Deployments allow to specify a state for your pods and ReplicaSets. With the declarative syntax in Kubernetes it is very easy to specify how the containers should be run and managed. It is Deployments where this desired state and characteristics are defined. Kubernetes uses this, and ensures that the state specified matches the current state of the system.
Services can be understood as providing a mechanism through which a communication can be set up between two different pods. Multiple containers running in a pod can interact with each other but there is no way for two pods two interact without a communication channel setup by services
A Node is a worker machine in Kubernetes and may be either a virtual or a physical machine, depending on the cluster
Clusters could be simply understood as A Kubernetes cluster is a set of nodes that run containerised applications.
NameSpaces in Kubernetes provides virtual or logical cluster inside your Kubernetes cluster. The major use case lies where different teams share same Kubernetes cluster for their use. With Namespaces it could be made sure that work of one team doesn’t impact other. It also provides a Roles system through which users are limited to only namespaces they are authorized to access.